Se ti fa sentire meglio i programmatori cattivi esistono praticamente in ogni paese. Come eliminarli è il problema.
La prima diserbo è il curriculum. Una cosa che cerco è l'esperienza linguistica rivendicata e nulla per descrivere ciò che hanno fatto in quella lingua. Ho visto i curriculum che sostengono praticamente che conoscono ogni lingua mai inventata e tuttavia la loro esperienza mostra che hanno lavorato solo con Access e Visual Basic. Quelli vanno proprio nella spazzatura. I curriculum di 10 pagine vanno nella spazzatura (in particolare dieci pagine riprendono da persone con meno di 2 anni di esperienza che ho ottenuto). Dai recenti laureati con poca esperienza, devi essere davvero pignolo su come si presentano. I migliori candidati sono attenti con i loro curriculum, non hanno errori. Stai davvero cercando qualcuno a cui importa così poco che non si sia preso la briga di correggere il suo curriculum?
Anche i curriculum preparati professionalmente vanno nella spazzatura. Una volta che hai letto centinaia di curriculum, puoi selezionarli mentre usano lo stesso identico fraseggio. Non puoi fidarti del contenuto in un curriculum preparato professionalmente e sai che la persona non ha fatto la propria preparazione. Questo è il tipo di persona che si affida agli altri per risolvere i suoi problemi per lui, lo vuoi davvero in una posizione di programmazione?
Cerca le cose che fanno risaltare la persona per quelle che scegli. È più difficile ovviamente con quelli appena usciti dalla scuola, ma cerca risultati, contributi all'open source, ecc.
Il prossimo estirpare è l'intervista telefonica. Chiedete dei concetti di base che riguardano il lavoro reale che avete. Se le persone non hanno una conoscenza di base dei concetti di cui hanno bisogno, non valgono la pena di prendere in considerazione un colloquio personale. I giovani spesso pensano che questo sia ingiusto perché possono cercare tutto su Internet, ma la verità è che non ho mai incontrato un buon programmatore che ha dovuto cercare tutto su Internet. Dovresti avere una certa conoscenza della tua professione che non devi cercare ogni volta.
Dopo l'intervista telefonica dovresti scegliere i migliori 4-5 candidati e intervistare. Naturalmente se hai solo 1-2 buoni candidati, non preoccuparti di intervistare persone che hai già eliminato. Ora stai per fare le domande difficili e avere un'idea di come affrontano i problemi. Non userei mai il test fizzbuzz perché è troppo conosciuto e le risposte non ti dicono nulla. Risolvete invece alcuni problemi dal vostro codice base. Potrei dare loro un requisito e un pezzo di codice e chiedere loro se il codice soddisfa i requisiti e se no perché no e cosa potrebbero fare per soddisfare il requisito. Vorrei chiedere loro di descrivere il problema di programmazione più difficile che hanno dovuto risolvere e quali misure hanno preso per trovare la risposta. Vorrei porre alcune domande tecniche più approfondite. Ricorda che stai cercando di farti un'idea della loro competenza tecnica, della loro capacità di risolvere problemi e debugging e della loro capacità di adattarsi al tuo team esistente. Faccio anche domande che probabilmente non conoscono la risposta per giudicare quanto bene gestiscono lo stress, è un lavoro stressante, non voglio qualcuno che si piega nell'intervista perché lo stress del lavoro è maggiore dello stress dell'intervista . Cerco punti di forza nelle aree in cui attualmente siamo deboli e la capacità di lavorare in team e di presentarsi ai clienti (i nostri sviluppatori si occupano ampiamente degli utenti), l'elenco potrebbe essere diverso.