La scorsa settimana, stavo solo guardando questa fantastica intervista di Kevin Rose di Phillip Rosedale, di Second Life.
E hanno avuto una straordinaria discussione su come trovare, assumere e identificare i buoni programmatori e quanto sia difficile trovarne di buoni.
Il che mi ha portato a pensare davvero al modo in cui apprendiamo i programmatori. Per la maggior parte di noi, me compreso, siamo autodidatti. Il che è grandioso di essere un programmatore, chiunque può imparare e sviluppare abilità.
Ciò significa anche che non esistono standard reali su cosa sia / sia un buon programmatore e che tipo di ambiente incoraggi la crescita delle capacità di programmazione.
Questa non è tanto una domanda, ma solo un desiderio in me, di vedere come possiamo cambiare la cultura della programmazione e i responsabili della programmazione, in modo da incoraggiare l'educazione e l'auto-miglioramento.
Ci sono molte strade per la formazione continua, i video di YouTube, i libri, le conferenze, ma a causa della natura esperienziale di ciò che facciamo, non è sempre chiaro ciò che è importante imparare e padroneggiare.
Diamo un'occhiata a The Joel 12 Steps.
Il test Joel
Usi il controllo del codice sorgente?
Puoi creare una build in un solo passaggio?
Realizzi build giornaliere?
Hai un database di bug?
Correggi i bug prima di scrivere un nuovo codice?
Hai un programma aggiornato?
Hai una specifica?
I programmatori hanno condizioni di lavoro silenziose?
Usi i migliori strumenti che il denaro può comprare?
Hai tester?
I nuovi candidati scrivono codice durante il loro colloquio?
Fai test di usabilità in corridoio?
Penso che tutti questi abbiano un valore importante, ma a causa di qualcosa che chiamo il gap esperienziale, se un programmatore o un manager non ha mai avuto alcuna delle conseguenze negative per non aver fatto gli articoli nell'elenco, non vedrà mai la necessità di fare alcun di loro.
Il gap esperienziale, è la mia teoria di base, secondo cui ognuno di noi ha diversi lavori ed esperienze diverse. Quindi per alcuni di noi, che hanno sempre lavorato con dozzine di programmatori, il controllo del codice sorgente è un must. Ma per le persone che sono sempre state l'unico programmatore, non possono immaginare la necessità del controllo del codice sorgente.
Ed è a causa di questo grande difetto nel modo in cui apprendiamo, che valutiamo le persone in base alle migliori pratiche che fanno o meno, e il motivo di entrambi può iniziare una guerra di fiamma.
Valutiamo sempre le persone nel nostro campo in base a ciò che fanno, e pensiamo "Oh, se questo ragazzo / ragazza non sta facendo le migliori pratiche xyz, non può essere un buon programmatore, quindi non perdiamo tempo o energia a parlare con loro ".
Questo è esattamente il motivo per cui abbiamo così tante guerre di fuoco programmabili, che a causa del divario esperienziale non possiamo immaginare che le persone non abbiano preso le decisioni che abbiamo dovuto prendere.
Quindi questo mi ha portato a pensare che dobbiamo assolutamente ripensare il modo in cui formiamo, educiamo e gestiamo i programmatori.
Ad esempio, quale percentuale di voi ha avuto l'incoraggiamento del proprio manager di andare alle conferenze e persino farle pagare?
Per me e per molte persone, questo è estremamente raro, molti di noi vorrebbero andare alle conferenze, per saperne di più, ma i soldi non sono lì per farlo.
Quindi il punto di questa domanda è davvero quello di scatenare come possiamo allenarci, imparare e gestire meglio?
Come possiamo creare una nuova cultura dell'apprendimento che non insulti le persone per non avere le stesse esperienze lavorative.
Sì, abbiamo tutti un lavoro e un lavoro da svolgere, ma la nostra capacità di svolgere bene il nostro lavoro dipende dal nostro desiderio, interesse e supporto nel migliorare la nostra padronanza delle nostre capacità.
In questo momento, vedo la nostra cultura piuttosto disorganizzata, sosteniamo l'élite, ma quelle tonnellate di noi che vogliono migliorare, semplicemente non hanno abbastanza supporto per imparare e migliorare noi stessi.
Voglio dire, come industria, vogliamo essere percepiti come solo ingranaggi sostituibili?
Grazie...