Gli altri hanno fornito le risposte che ho promosso a causa di devono . La ragione per cui scrivo un'altra risposta è perché quello che voglio dire probabilmente non rientra in un commento, e perché qualcosa deve essere detto su come può essere un buon colloquio di lavoro di programmazione.
Nella prima buona intervista che ricordo, abbiamo parlato molto, senza fretta. Prima per un'ora, al telefono, sulla progettazione orientata agli oggetti e sui pro e contro dell'implementazione in C ++. Poi, sul posto, ho parlato con diverse persone sulle loro pratiche di sviluppo del software, integrazione, test, controllo della versione e gestione della configurazione, su team e responsabilità, sulla tecnologia e sulla progettazione. Era un'intervista di un'intera giornata che includeva il pranzo con le persone che mi hanno intervistato. Con il senno di poi, si trattava del fatto che avrei adattato produttivamente quello che stavano già facendo.
Da allora, le buone interviste sono state lunghe conversazioni da uno a due ore sullo sviluppo del software. Non ci sono state domande di risoluzione dei problemi, nessun enigma e nessuna sfida di codifica.
Se dovessi intervistare qualcuno per un lavoro di programmazione oggi, procederei con simili. Richiederei opinioni su una vasta gamma di argomenti e lasciamo da parte la profondità:
- Quali sono le tue preferenze di lingua di programmazione? Perché?
- Come avvicinarsi alla gestione delle eccezioni?
- I vantaggi del design a strati non sono forse un mito?
- L'integrazione continua non rappresenta un onere per l'efficienza?
- Chi ha scritto un pezzo di codice dovrebbe possederlo, vero?
- Che cosa fai per entrare nel "flusso".
- In che modo i difetti segnalati devono essere inclusi in un piano di progetto?
- ...
Queste sono domande con più di una risposta, e riguardano argomenti su cui uno sviluppatore di software dovrebbe avere un'opinione informata. Sono pienamente d'accordo con le risposte che menzionano i precedenti problemi reali vissuti come argomento di conversazione (non come domande).
Gli studi più scientifici sull'efficace sviluppo del software poiché Peopleware dicono che i migliori programmatori sono quelli che capiscono le dinamiche dello sviluppo del software, anche se non hanno il QI più alto. Preferirei prendere un debuttante che sia impaziente di imparare di qualcuno con n
di anni di esperienza che si riduce a 1
anno di esperienza ripetuto n
volte. Il mio pregiudizio personale è nei confronti dei candidati che tendono a pensare fuori dagli schemi, e allo stesso tempo sanno come adattarsi alla casella (mia) attuale.