Ho pensato a cosa separa i grandi programmatori dai programmatori semplicemente bravi. Ecco alcuni pensieri. Se avete altre idee, vi preghiamo di effettuare il login e commentare questo post,
1. Non si tratta della fase di codifica.
Certo, i grandi programmatori sono anche grandi programmatori. Ma c'è di più. Penso che i grandi programmatori siano anche grandi ingegneri. Un ingegnere conosce i suoi strumenti. Un ingegnere sa come scomporre un problema complesso in pezzi che può risolvere, e poi sa come riassemblare i pezzi per formare un tutto. Un ingegnere conosce intimamente il dominio del problema. Nel contesto della programmazione, questo significa che capisce il problema che sta cercando di risolvere; capisce come si inserisce nel quadro più ampio; e capisce i limiti della tecnologia.
2. Si tratta della fase di codifica.
Leggere un grande codice è come leggere un romanzo ben scritto. La storia fluisce fuori dalla pagina. Le strutture dei dati sono esattamente ciò che serve per risolvere il problema. Il codice è suddiviso in procedure la cui funzione è chiara dal nome, dall'uso e dal codice. I nomi sono descrittivi. Il codice è costantemente frastagliato. I commenti sono posizionati strategicamente, utili, seri e non ridondanti con il codice eseguibile. I commenti non mettono in discussione il comportamento del codice vicino (se siete tentati di farlo, fermatevi e prendetevi il tempo di capire cosa sta succedendo!) Il codice non viene mai duplicato inutilmente; ogni azione viene implementata una sola volta. Le funzioni eseguono un compito senza effetti collaterali gratuiti. Si è pensato a ovvi miglioramenti futuri, e si è provveduto ragionevolmente ad anticiparli nel disegno attuale.
3. Sono impavidi.
Un programmatore che non vuole lavorare su un pezzo di codice perché pensa che sia troppo complicato o troppo fragile, probabilmente ha ragione. Ma non si riferiscono al codice. Si riferiscono alle proprie capacità! I grandi programmatori, quando si trovano di fronte ad un pasticcio, sanno quando e come costruire un caso al management che è il momento di reimplementare il codice nodoso in questione. I peggiori programmatori si tuffano semplicemente e peggiorano il disordine.
4. I grandi programmatori pensano sempre alle prestazioni.
Sanno che se scelgono la struttura dei dati giusta per il compito da svolgere, hanno già evitato la maggior parte dei problemi di performance. Ma non fanno supposizioni sulle prestazioni. Quando fanno il debugging del loro codice, si prendono il tempo di eseguire i test di stress e di scuoterlo al massimo. Capiscono che far funzionare il codice a 1 TPS non è la stessa cosa che farlo funzionare a 1000 TPS. Capiscono anche che farlo funzionare per 15 minuti non è lo stesso che farlo funzionare per giorni e settimane.
5. I grandi programmatori non indovinano.
Quando arrivano a qualcosa che devono sapere, e non sanno, capiscono come acquisire le conoscenze necessarie, senza indovinare e senza perdere tempo.
Spero che troviate questa lista intrigante e anche utile.