Codice più veloce: 53 suggerimenti dai professionisti

Vuoi sapere come programmare più velocemente in modo da poter fornire software più velocemente? Certo, chi non lo fa? Internet è pieno di consigli per gli sviluppatori—centinaia, migliaia, forse anche milioni di loro. Il problema è che ci sono molto più là fuori di quanto chiunque abbia il tempo di leggere, quindi li ho bolliti per te.

Ecco 53 suggerimenti che rappresentano il miglior consiglio che ho trovato là fuori. Ma, prima di dirvi quello che ho trovato, ho bisogno di spiegare cosa intendo per “programmazione più veloce,” e “suggerimenti.”

Il problema con”faster”

Per codificare più velocemente, bisogna essere efficienti; cioè, nessuno sforzo o movimento sprecato. Questo può significare tutto, dalla digitazione agli strumenti al pensiero. Ma la maggior parte del nostro lavoro come programmatori non sta scrivendo o compilando—sta pensando. Per pensare più velocemente, devi imparare più modelli e relazioni. Questa è la conoscenza e la saggezza che l’esperienza costruisce. Ciò di cui hai bisogno per andare più veloce cambierà nel tempo.

Il problema con “suggerimenti”

La maggior parte dei suggerimenti che leggo si applica solo in determinati punti del mio viaggio e non si applica necessariamente a tutti. Molti di questi rientrano nelle categorie” viaggio personale “o” cosa ha funzionato per me”. Ma il mio percorso probabilmente non è il tuo percorso. Mentre alcune delle cose meccaniche che funzionano per me probabilmente funzionerà per voi, molte delle scelte di dominio e modello che ho fatto può essere di alcuna utilità.

La roba meccanica è abbastanza facile da ottimizzare; le opzioni sono limitate. Ma la roba di apprendimento non ha limiti. Nessuno saprà mai tutto. È necessario fare scelte strategiche e tattiche, ed essere pronti a sfruttare le opportunità quando si presentano.

L’utilità delle punte cade in funzione della specificità. I suggerimenti più specifici non si applicano a tutti, ma i suggerimenti generali sono troppo, beh, generali. Sono molto più difficili da trasformare in azione. Quindi cosa vuoi veramente quando dici che vuoi ” andare più veloce?”Te lo dirò.

Quello che vuoi è flow

Quello che ogni programmatore vuole, specialmente nell’era di DevOps, è flow. Lo stato di flusso massimizza il throughput e aumenta il godimento incorporando il giusto livello di sfida; si rimane pienamente impegnati nel momento e nel lavoro (questo non deve essere confuso con il picco Ballmer). Sostenere lo stato di flusso richiede un ambiente adatto e un processo senza attrito.

Lo stato del flusso quando si accoppia è come se ognuno di voi avesse un cervello in più. Sfortunatamente, molti ambienti di sviluppo, come gli uffici aperti, sono ostili al flusso.

Le tue opzioni possono essere limitate

Quando trovi qualcosa di sub-ottimale sul tuo processo o su te stesso, le scelte su come affrontare tali vincoli sono limitate:

  • Ignoralo. Forse andrà meglio da solo.
  • Evitalo. È davvero necessario?
  • Automatizzalo. Fai in modo che la macchina lo faccia.
  • Delegalo. Raramente possibile, questo sta passando il dollaro. Ma è un’opzione legittima quando disponibile.
  • Macinare giù. Tutti dobbiamo farlo di volta in volta (ogni giorno). Alcuni lavori sono più grandi di altri.

Se la digitazione è più lenta di quanto desideri, prenditi un po ‘ di tempo e sali di livello. Se il tuo ambiente di sviluppo integrato è confuso e inutile (o forse troppo utile), prova qualcosa di diverso o più semplice. Se non è possibile ottenere lontano da esso, saperne di più; si può trovare un altro modo, o almeno imparare i limiti.

Ci sono numerosi modi per imparare. Google è tuo amico, così come libri, video, post di blog, domande di overflow dello stack e, naturalmente, altre persone. Alcune cose che vuoi imparare potrebbero essere nascoste; altre potrebbero essere più grandi di quanto appaiano. Bilancia il beneficio con lo sforzo e sii paziente con te stesso. Festeggia ogni risultato e continua a muoverti.

I migliori consigli per programmare più velocemente

Un modo per raggruppare e guardare i suggerimenti qui sotto è applicare alcune categorie di alto livello come un modo per disegnare generalizzazioni interessanti dalla collezione:

  • Rifletti. Cosa vuoi, cosa fai realmente; include la misurazione e l’ottimizzazione.
  • Flusso. Nessun attrito da strumenti, processi, ambiente o conoscenza; cerca una sfida continua ma non troppo.
  • Imparare. Fondamentale: lingue, strumenti, modelli, pratiche, ecc., da tutti (specialmente quelli disposti ad insegnare); impari come impari, e impari continuamente.
  • Insegnare. Insegnare agli altri. Dover spiegare le cose costringe alla semplificazione, e la trasformazione da pensieri a espressioni verbali o visive produce intuizioni.
  • Esprimere ed esplorare. Guardare fuori i vostri doveri normali; disegnare, scrivere, blog, andare a meetup, partecipare e dare presentazioni, parlare con Wilson la pallavolo, se necessario.

I suggerimenti qui sotto sono semplicemente punti dati, cose su cui riflettere—non un cheat-sheet per la vita o una lista di cose da fare per la tua carriera come programmatore. Ho iniziato con un elenco di 183 suggerimenti, li raggruppati in categorie, assegnato una priorità basata sulla ripetizione e pregiudizi personali, e ha preso i primi pochi da ciascuno.

Esatto, bias. So cosa rende uno sviluppatore buono o veloce programmatore, quindi tutto ciò che ho letto ho filtrato attraverso il mio pregiudizio. In particolare, sono di parte verso:

  • Metodi agili.
  • Progettazione basata sul dominio.
  • Test automatici.
  • Miglioramento continuo.
  • Soluzioni minime.
  • Utensili senza attrito.
  • Lavorare in stato di flusso, per quanto possibile.

E sono fortemente d’accordo con la dichiarazione di Robert C. “Zio Bob” Martin sulla “mediocrità veemente”:

“L’unico modo per andare veloce è andare bene. Ogni volta che cedi alla tentazione di scambiare la qualità con la velocità, rallenti. Ogni volta.”

Prendi i seguenti suggerimenti (e tutto il resto che leggi su Internet) con un pizzico di sale. Mantenere e adattare ciò che funziona; scartare ciò che è inutile.

Ed ecco il mio consiglio per la programmazione più veloce: concentrarsi sulla qualità e la velocità seguirà.

La riflessione è la chiave

La riflessione è la chiave per l’auto-miglioramento:

  • Migliora continuamente il tuo processo decisionale; impara dai tuoi errori senza rimproveri.
  • Elimina i punti ciechi nella comprensione dell’intero ambito dell’applicazione e del suo ambiente di esecuzione.
  • Non inseguire la coda; identificare ed eliminare i lavandini del tempo.

Misura oggettivamente

A volte sai qual è il tuo più grande vincolo e a volte devi misurarlo.

  • Considera di fare un controllo dettagliato di te stesso mentre lavori per un paio di giorni.
  • È proprio come ottimizzare qualsiasi pezzo di codice. Registra tutto, identifica gli hotspot e migliorali.
  • Dove va il tuo tempo? Molti programmatori passano molto più tempo a leggere il codice che a scrivere codice; come si impara a leggere il codice più velocemente?

Pratica, pratica, pratica

Non c’è modo di aggirare un certo livello di pratica, su una varietà di sfide.

  • Scrivere un sacco di software.
  • Scrivi programmi più grandi.
  • Scrivi codice pronto per la recensione dall’inizio.
  • Ci sono un sacco di posti per praticare, tra cui topcoder.com, progetto Eulero, hackerrank.com. Sceglie uno e andare avanti.

Design for success

Imparare le tecniche di progettazione dovrebbe essere un dato, parte della padronanza dei tuoi strumenti di pensiero. Inoltre:

  • Capire l’utente; capire il loro problema, il vero problema; e poi risolverlo. La conoscenza del dominio aiuta immensamente.
  • Parla con colleghi ed esperti di dominio del problema, della soluzione e del design.
  • Riduci il carico cognitivo disegnando o scrivendo mentre pensi e codifichi.
  • Quando si progetta per la longevità e la manutenzione, ricordare che i dati sopravvivono al codice.
  • Sapere quando reinventare la ruota, e quando non (di solito non).
  • Denomina le cose intenzionalmente; questo è l’unico collegamento dal codice al dominio.

Inchioda il processo

Passiamo molto tempo nei processi della nostra costruzione; non aver paura di cambiarli.

  • Rendi i bug impossibili dalla progettazione. Fail fast, utilizzare eccezioni anziché controlli null, utilizzare il sistema di tipo per evitare errori di dati e utilizzare test automatici.
  • Se sei in perdita su dove cominciare, iniziare con la parte che si capisce meglio.
  • Scrivi il codice che renderebbe effettivamente un prodotto per primo, non importa quanto sia stupido o piccolo quel prodotto.
  • Non ignorare gli errori; ogni errore significa qualcosa.
  • Seguire un approccio agile allo sviluppo.
  • Estrai le astrazioni solo se hanno senso e sarebbero effettivamente riutilizzate.
  • Stai sulle spalle dei giganti; usa librerie open source, soluzioni di terze parti e così via.
  • Ottimizza per semplicità; il codice migliore è il codice che non devi scrivere.
  • Automatizza i test e pratica lo sviluppo basato su test (TDD)
  • Usa strumenti intelligenti come IDE, utilità di generazione del codice, ecc., ma non abbia paura a down-shift se loro stanno ottenendo nel Suo modo.
  • Sii estremamente familiare con la tua lingua e la tua libreria standard. Meno tempo passi a strisciare nella documentazione, meglio è.
  • Usa il controllo del codice sorgente, anche da solo.
  • Utilizzare un profiler. Ottimizzare solo ciò che è necessario
  • Imparare a toccare-tipo. I programmatori digitano molto e non solo codice; questo riduce il carico cognitivo della digitazione a zero e migliora la velocità e la precisione

Crea il giusto ambiente di lavoro

Interruzioni costanti, circostanze scomode e riunioni infinite scoraggiano il flusso.

  • Assicurati di trovarti in un ambiente che non ti distragga; rendi impossibile che le distrazioni ti interrompano.
  • Conosci te stesso e lavora durante il tuo tempo di punta-non di qualcun altro.

Esplora al di fuori del lavoro

Non tutto ciò che potresti voler sapere è nel tuo ufficio o su Internet.

  • Esporsi a nuovi strumenti e tecniche. Mantenere ciò che funziona.
  • Lavora su progetti collaterali e progetti open source.

Mantenerlo sano

I morti non scrivono codice. Le persone malate scrivono codice cattivo. Abbi cura di te.

  • Conoscere il valore di allontanarsi dal codice.
  • Dormire di più, mangiare meglio e lavorare meno ore.
  • Medita.

Sviluppare buone abitudini di apprendimento

L’apprendimento è un processo per tutta la vita per i programmatori, ma abbiamo avvertito: Internet è pieno di cose lucenti.

  • Padroneggia i fondamenti: paradigmi e pratiche di programmazione come DRY (don’t repeat yourself) e SOLID (single responsibility, open-closed, sostituzione di Liskov, segregazione dell’interfaccia e inversione delle dipendenze)per OOP), pattern e anti-pattern,algoritmi, teoria dei dati, teoria dei grafi, ecc.
  • Impara facendo. Gioca sempre con il codice durante l’apprendimento.
  • Trova un mentore.
  • Esplora diversi modi di imparare a vedere cosa funziona per te.

La qualità non è costante

La qualità copre molto terreno, dalla leggibilità del codice alla sua struttura modulare e complessità, al modo in cui esprime le sue intenzioni di dominio.

  • Concentrarsi sulla qualità, non sulla velocità.
  • Accetta che il codice ” qualità “in un dato momento sia” il meglio che puoi fare con ciò che hai e conosci.”
  • Fai sempre del tuo meglio; è una buona pratica.
  • Solo in estremo (cioè prototipazione/esplorazione / codice usa e getta) e circostanze temporanee dovresti lasciare che la qualità del tuo codice scenda al di sotto del livello di “il meglio che puoi fare” (e dovresti vergognarti un po ‘ di farlo.)

Le soft skills matter

Non ho trovato molti suggerimenti sulle abilità delle persone, ma le persone sono praticamente inevitabili; quelli che ho trovato sono stati abbastanza utili.

  • Saper interagire con le persone ti permetterà di imparare e insegnare a chi ti circonda con meno attrito e più gioia.
  • Imparare a scrivere e parlare chiaramente vi aiuterà a ottenere le vostre idee attraverso più veloce.

Vai avanti e codice

Quindi è così, il mio riassunto dei migliori consigli là fuori per programmare più velocemente. Segui questi suggerimenti e sarai sulla buona strada per migliorare le tue capacità di programmazione e codificare più velocemente.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.