Altri hanno fornito risposte che ho votato per necessità . Il motivo per cui scrivo un'altra risposta è perché ciò che voglio dire probabilmente non si adatta a un commento, e perché bisogna dire qualcosa 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 delle loro pratiche di sviluppo software, integrazione, test, controllo della versione e gestione della configurazione, dei team e delle responsabilità, della tecnologia e della progettazione. È stata un'intervista di un'intera giornata che includeva il pranzo con la gente che mi ha intervistato. Col senno di poi, si trattava di adattarmi in modo produttivo a ciò che stavano già facendo.
Da allora, le buone interviste sono state tutte lunghe, da una a due ore di conversazioni sullo sviluppo del software. Non ci sono state domande per la risoluzione di problemi, enigmi e sfide di programmazione.
Se dovessi intervistare qualcuno per un lavoro di programmazione oggi, procederei come. Richiederei opinioni su una vasta gamma di argomenti e lascerei da parte la profondità:
- Quali sono le tue preferenze sul linguaggio di programmazione? Perché?
- Come affrontare la gestione delle eccezioni?
- I vantaggi del design a strati non sono forse un mito?
- L'integrazione continua non è un peso per l'efficienza?
- Chiunque abbia scritto un pezzo di codice dovrebbe possederlo, giusto?
- Cosa fai per entrare nel "flusso".
- Come dovrebbero essere inclusi i difetti segnalati in un piano di progetto?
- ...
Queste sono domande con più di una risposta, e riguardano tutti argomenti su cui uno sviluppatore di software dovrebbe avere un'opinione informata. Concordo pienamente con le risposte che menzionano problemi reali precedenti vissuti come argomento di conversazione (non come domande).
Gli studi più scientifici sullo sviluppo efficace del software dal momento che Peopleware affermano che i migliori programmatori sono quelli che comprendono le dinamiche dello sviluppo del software, anche se non hanno i QI più alti. Preferirei prendere un novellino desideroso di imparare rispetto a qualcuno con n
anni di esperienza che si riduce a 1
anni di esperienza ripetuti n
. La mia propensione personale è verso i candidati che tendono a pensare fuori dagli schemi, e allo stesso tempo sanno come adattarsi all'attuale (mio) riquadro.