Per rimanere in tema, una lunga e accurata classificazione (con caratteristiche e sintomi) del buon programmatore e, ovviamente, per contro anche del cattivo programmatore. Gli articoli sono lunghissimi, ne riassumo solo i punti principali.
Segni distintivi del buon programmatore
- Instinto di sperimentare le cose (verificare che funzionino)
- Distacco emotivo dal codice e dal progetto
- Desiderio di riparare ciò che non funziona
- Fascino per l’incomprensibile
- E’ costretto a insegnare
Segni distintivi del “fantastico” programmatore
- Pazienza incorruttibile
- Ricerca distruttiva della perfezione
- Conoscenza enciclopedica della piattaforma
- Pensiero in codice
- A Roma, si comporta da romano (per ogni linguaggio e ogni progetto sa scegliere il giusto approccio)
- Creazione dei propri tool
Segni distintivi di chi è destinato a compiti superiori
- Indifferenza alla gerarchia
- Eccitazione per i fallimenti
- Indifferenza alle circostanze
- Ininfluenza agli obblighi
- Dedizione all’impegno
- E’ guidato dall’esperienza
E per continuare, c’è anche l’altra faccia della medaglia:
Segni distintivi del cattivo programmatore
- Incapacità di ragionare sul codice
- Scarsa comprensione del modello di programmazione del linguaggio
- Scarsa conoscenza della piattaforma e capacità di ricerca
- Incapacità di comprendere i puntatori
- Difficoltà a ragionare sulla ricorsione
- Creazione di codice “fuorviante”
Segni distintivi del programmatore mediocre
- Incapacità di pensare per insiemi o blocchi
- Mancanza di spirito critico
- Programmazione “flipper” (un colpo a destra e un colpo a sinistra finchè le cose funzionano)
- Scarsa familiarità con i principi di sicurezza
- Creazione di codice “incasinato”
Segni distintivi di chi non avrebbe mai dovuto programmare
- Incapacità di determinare l’ordine di esecuzione di un programma
- Insufficiente capacità di pensare in modo astratto
- Sindrome dei “Collyer brothers” (accaparramento compulsivo)
- Senso di causalità non funzionante
- Indifferenza ai risultati
Leggi anche gli articoli originali: good e bad.