Se ti fa sentire meglio, esistono programmatori cattivi in quasi tutti i paesi. Come eliminarli è il problema.
Il primo diserbo è il curriculum. Una cosa che cerco è molta esperienza linguistica dichiarata e nulla per descrivere ciò che hanno fatto in quella lingua. Ho visto riprendere che praticamente sostengono di conoscere ogni lingua mai inventata e tuttavia la loro esperienza dimostra che hanno effettivamente lavorato solo con Access e Visual Basic. Quelli vanno proprio nella spazzatura. I curriculum di 10 pagine vanno proprio nel cestino (in particolare dieci curriculum da persone con meno di 2 anni di esperienza che ho ottenuto). Da neolaureati con poca esperienza, devi essere molto esigente su come si presentano. I migliori candidati sono attenti ai loro curriculum, non hanno errori. Stai davvero cercando qualcuno a cui importa così poco che non si sia preso la briga di rileggere il suo curriculum?
Anche i curriculum preparati professionalmente vanno nella spazzatura. Dopo aver letto centinaia di curriculum, puoi sceglierli in quanto usano esattamente lo stesso fraseggio. Non puoi fidarti del contenuto in un curriculum preparato professionalmente e sai che la persona non ha fatto la sua preparazione. Questo è il tipo di persona che farà affidamento sugli altri per risolvere i suoi problemi per lui, lo vuoi davvero in una posizione di programmazione?
Cerca le cose che distinguono la persona da quelle che scegli. Ovviamente è più difficile con quelli appena usciti dalla scuola, ma cerca risultati, contributi all'open source, ecc.
La prossima uscita è l'intervista telefonica. Chiedi informazioni sui concetti di base relativi al lavoro effettivo che svolgi. Se le persone non hanno una conoscenza di base dei concetti di cui hai bisogno, non vale la pena preoccuparsi di partecipare a un colloquio personale. I giovani spesso pensano che ciò 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 intervista. Naturalmente se hai solo 1-2 buoni candidati, non preoccuparti di intervistare le persone che hai già eliminato. Ora farai le domande difficili e avrai un'idea di come affrontano i problemi. Non userei mai il test fizzbuzz perché è troppo noto, quindi le risposte non ti dicono nulla. Risolvi invece alcuni problemi dalla tua base di codice. Potrei dare loro un requisito e un pezzo di codice e chiedere loro se il codice soddisfa il requisito e, se no, perché no e cosa potrebbero fare per farlo soddisfare il requisito. Chiederei loro di descrivere il problema di programmazione più difficile che hanno dovuto risolvere e quali passi hanno preso per trovare la risposta. Vorrei porre alcune domande tecniche più approfondite. Ricorda che stai cercando di farti un'idea delle loro competenze tecniche, delle loro capacità di risoluzione dei problemi e di debug 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 pieghi nell'intervista perché lo stress del lavoro è maggiore dello stress dell'intervista . Cerco punti di forza in aree in cui siamo attualmente deboli e capacità di lavorare in team e di presentarsi ai clienti (i nostri sviluppatori si occupano ampiamente degli utenti), la tua lista potrebbe essere diversa. voglio qualcuno che ripieghi nell'intervista perché lo stress del lavoro è maggiore dello stress dell'intervista. Cerco punti di forza in aree in cui siamo attualmente deboli e capacità di lavorare in team e di presentarsi ai clienti (i nostri sviluppatori si occupano ampiamente degli utenti), la tua lista potrebbe essere diversa. voglio qualcuno che ripieghi nell'intervista perché lo stress del lavoro è maggiore dello stress dell'intervista. Cerco punti di forza in aree in cui siamo attualmente deboli e capacità di lavorare in team e di presentarsi ai clienti (i nostri sviluppatori si occupano ampiamente degli utenti), la tua lista potrebbe essere diversa.