Assumere uno sviluppatore junior, cosa devo chiedere? [chiuso]


56

Al momento stiamo assumendo uno sviluppatore junior per aiutarmi, poiché ho più progetti di quanti ne possa gestire attualmente. Non ho mai assunto nessuno che non fosse un amico o almeno un conoscente. Ho un'intervista telefonica con l'unico richiedente che in realtà mi ha fatto notare (sulla carta), ma non l'ho mai fatto prima.

I nostri progetti sono tutte applicazioni web ad alta scalabilità e ad alta intensità di dati che elaborano milioni di transazioni all'ora, su più server e client. Per essere specifici di lingua / stack, utilizziamo ASP.Net MVC2, WebForms e C # 4, MSSQL 2008 R2, tutti in esecuzione su Windows Server 2008 R2

Cosa dovrei chiedergli? Come devo strutturare la telefonata?


5
Perché uno sviluppatore junior e non uno senior?
Giobbe

10
Costo; la compagnia è diventata redditizia in questo trimestre ... e il mio ego è fragile;)
Jeremy Boyd,

48
In molti modi, uno sviluppatore "economico" può essere più costoso di uno sviluppatore esperto / costoso. Il fragile commento dell'ego è decisamente spaventoso. Se non assumi mai persone più intelligenti di te, allora sei sempre l'insegnante e mai lo studente. Rimarrai nella polvere in quel modo.
JohnFx

6
Ci sono alcuni falsi juniors là fuori (<3 anni di esperienza ma molte abilità). L'età è importante?
James P.

2
Se stai assumendo Junior Developers, significa che non sei in grado di valutare la loro esperienza. Perché non hanno molta esperienza nella loro breve carriera. D'altra parte puoi valutare le loro capacità di programmazione e anche vedere come scrivono il codice. Quindi il primo passo può essere un test di abilità, come http://tests4geeks.com Nel secondo passo puoi chiedere loro di scrivere semplici programmi a casa. Nel tuo caso potrebbe essere l'applicazione MVC che mostra l'elenco di alcuni dati utilizzando JSON e AJAX. L'elenco si aggiorna automaticamente da un timer in modo che l'elemento pubblicato possa essere visualizzato senza referesh ..
duro

Risposte:


49

Chiedi quali blog di tecnologia leggono, chiedi cosa trova interessante il candidato nella tecnologia attuale e perché.

In sostanza, per un'intervista telefonica vuoi capire se questo è qualcuno che è entusiasta della tecnologia e della programmazione ed è interessato a imparare e saperne di più.

Dal momento che questo è un junior, non puoi aspettarti che conoscano molti argomenti avanzati, ma vuoi essere sicuro che possano pensare come un programmatore: dai loro un semplice problema e fatti guidare attraverso come lo risolverebbero. Ti darà un'idea di come pensano e risolvono i problemi.


Vorrei poter scegliere due risposte, perché sia ​​la tua che quella di Peter K. sono un'ottima combinazione.
Jeremy Boyd,

5
Questa risposta è limitata e danneggerà le persone che seguono solo questo consiglio. Per lo schermo del telefono, segui i consigli di Steve Yegge su di esso . Per una persona, affronta sfide di programmazione e segui la guida alle interviste di Joel Guerilla . Hai una domanda di progettazione: "quali sono tutti i passaggi necessari per rendere <inserire un software comune e non banale>?" Scoprirai che, indipendentemente dall'esperienza, tutti i buoni assunti hanno risposte buone e veloci a questi problemi.
Robert P,

Vorrei poter +3 i blog di @RobertP di persone del settore come Yegge, Joel e Atwood sono tesori per chiunque intervista o in qualsiasi posizione di leadership. o chiunque nel settore davvero, ma soprattutto se si è posizionati per fornire assistenza o valutare altri ingegneri.
Jimmy Hoffa,

26

Adotto un approccio aperto alle interviste telefoniche, ma per mettere una struttura su di esso di solito chiedo alla persona di parlare attraverso il curriculum che hanno presentato. Spesso, il modo in cui passano attraverso il loro curriculum farà sorgere altre domande e avrai una migliore comprensione di come sono.

L'altra cosa a cui pensare durante l'intervista telefonica è chiedere: potrei lavorare con questa persona? Sono energici? Fastidioso? Precise?


20

Codice con loro.

Dovresti assolutamente fare le solite cose dell'intervista. Ma non assumo nessuno senza fare una sessione di programmazione in coppia con loro.

Il mio approccio: impiegherò 2-3 ore e un problema con il giocattolo (ad esempio, "Costruiamo Twitter v 0.1" per uno sviluppatore full-stack, o "Implementiamo Elenco dai primitivi" per una persona di back-end). Ci sediamo allo stesso computer e discuteremo di come affrontarlo. Scriverò il primo test unitario e dirò "fai quel passaggio". Forse scriverò il prossimo paio di test per aiutarli ad andare avanti. E poi generalmente li lascio correre, saltando dentro solo occasionalmente. Quando siamo in ritardo, li fermerò e chiederò dove lo porteranno dopo e cosa vorrebbero fare prima di metterlo in funzione.

Cose che cerco:

  • Possono collaborare bene?
  • Capiscono le basi?
  • Possono scomporre un problema in parti?
  • Apprezzano il codice pulito?
  • Catturano i loro stessi bug?
  • Provano a fare cazzate quando non sanno qualcosa?
  • A loro piace programmare?

17
Dubito seriamente che uno Junior stia andando bene in una sessione di programmazione in coppia con la moda in stile TDD, o anche in unit test in generale.
Martin Blore,

3
Dipende dal background del programmatore junior. Ho appena assunto un'ultima settimana che è stata bravissima. Più in generale, tuttavia, fa parte di ciò che sto cercando di scoprire durante l'intervista. Se non sono bravi nella parte di test, allora scriverò i test da solo o li lascerò caricare in anticipo senza test. In entrambi i casi mi permette di vedere quali sono i loro punti di forza e di debolezza.
William Pietri,

2
Non vorrei farlo ora, dopo 10 anni di esperienza, non importa quando ero un giovane. Un pensiero orribile!
AnthonyBlake,

3
Mi considero un programmatore junior e accolgo con favore questo approccio per mostrare come e cosa posso fare. Troppo spesso mi imbatto in domande che richiedono definizioni perfette del dizionario con scarso riguardo al loro uso e implementazione complessiva. Preferiresti citare un elenco memorizzato degli usi della staticparola chiave da Wikipedia o mostrare come posso usarlo in un contesto praticabile e applicabile?
amcc

7

What's your Stack Overflow account name?

Uno dei modi migliori per conoscere l'aspetto del codice di qualcuno è vederlo in prima persona. Uno dei modi migliori per farlo è tramite SO.

Altrimenti, si applicano domande standard. Fai domande su situazioni difficili e su come le hanno superate. Chiedi quali nuove lingue stanno imparando o pensando all'apprendimento e perché. Chiedi loro quale IDE usano e perché l'hanno scelto? Quale controllo del codice sorgente?

Puoi imparare molto ponendo domande aperte che potrebbero non riguardare un progetto specifico, ma che invece permetteranno loro di lavorare con te nel loro processo di pensiero.


Meglio chiedere il proprio account github, anche se probabilmente avrebbero condiviso quelle informazioni se avessero avuto un account.
Giobbe

7
Questa volta ho effettuato l'accesso a SO e mi sono reso conto che il 90% delle persone lì si preoccupava solo dello sviluppo web ... poi ho lasciato ... così tanto per il mio rappresentante.
Pemdas,

3
Mentre questo può funzionare, non è necessariamente accurato. Si può fare uno sforzo significativo nel loro lavoro retribuito che nella consulenza casuale fornita.
NoChance,

5
Per quello che vale, alcuni dei migliori sviluppatori della mia azienda o non hanno un account SO o hanno una reputazione <100. Naturalmente è fantastico se hanno un account con un alto rappresentante, ma non puoi leggere molto in loro non ne hanno uno alto.
Jeremy Wiggins,

In realtà, se il candidato è in qualche modo attivo su SO (o se era attivo a volte in passato), probabilmente troverai il link ad esso nel suo CV. D'altra parte, gli intervistatori raramente hanno il tempo di guardare qualcosa del genere. Che in alcuni casi può essere buono per te, perché ad esempio non sono orgoglioso di ogni domanda / risposta che ho pubblicato su SO.
Radu Murzea,

6

Una cosa che non ho visto qui nella mia lettura veloce è la necessità di chiedere loro:

1 - Disponibilità a imparare

2 - Capacità di autoapprendimento vs. allenamento formale

3 - Esempio di qualcosa che hanno imparato da soli in passato

4 - Un esempio di aree con cui non si trovano a proprio agio

5 - Domanda generale di alto livello come "se hai il compito di creare un'applicazione web su ... quali compiti devono essere svolti e chi dovrebbe svolgerli" - Questo dovrebbe darti un'idea delle loro attuali conoscenze sul processo di sviluppo - Si non deve essere preciso, ma almeno conoscerai il loro punto di vista come lo è oggi.


4

Parlami di un progetto a cui hai lavorato in passato

  • Descrivere l'architettura generale del progetto. L'alto livello va bene.
  • Qual è una cosa che ti è piaciuta del progetto.
  • Qual è una cosa che non ti è piaciuta del progetto.
  • Qualcosa che, col senno di poi, avresti fatto diversamente?

Questa è un'ottima domanda per le interviste secondo me, per telefono o altro. Se riescono a parlare in modo intelligente di un progetto a cui hanno lavorato, è probabile che "capiscano". Stai assumendo uno sviluppatore di livello junior, quindi non è importante che siano ancora degli esperti, ma almeno dovrebbero capire il loro campo abbastanza bene da parlarne. Di solito le persone che vorresti assumere non avranno problemi a correre con questo, mentre le persone a cui potresti voler stare lontano risponderanno in un paio di frasi o meno.

Cosa fai per rimanere aggiornato?

  • Quali blog leggi?
  • Quali libri hai letto / stai leggendo?
  • Qualunque altra cosa?

In un settore in costante evoluzione, penso che sia importante che rimangano aggiornati. Questa non è la domanda più importante che faccio in un'intervista, ma se non riescono a trovare nulla da dire, non è un grande segno.

Dimmi come scriveresti una lezione di biciclette

Forse una domanda migliore per un colloquio di persona in modo che possano effettivamente scrivere un pseudo codice, ma penso che potrebbe funzionare anche per un colloquio telefonico ... Descrivi una bicicletta (ha manubrio, ruote, ecc. Qualcuno lo pedala. ) e li descrivono come modellerebbero le classi. Niente di innovativo qui, ma se lottano con questa domanda, probabilmente sono ancora TROPPO junior per essere un vantaggio.


2

Ci sono già molti buoni consigli per l'intervista già scritti, ma non credo che tu possa occupare questa posizione finché non sai esattamente cosa faranno ogni giorno. Se il tuo primo pensiero è stato "Qualunque cosa io abbia bisogno che facciano". semplicemente fermati. Trova un blocco di codice specifico da sottoporre a revisione. Scegli il codice migliore e peggiore per loro da guardare e vedere se conoscono la differenza. Dare loro aree su cui lavorare per un primo progetto rapido che potrebbe essere stato trascurato.

Spero che tu abbia assunto il miglior programmatore, ma ognuno ha aree in cui è meglio / più esperto di altri. Approfittane e definisci il loro ruolo di conseguenza.

Oh, e assumi qualcuno con una storia di cose fatte.


0

Quando sei in una discussione uno contro uno con lo sviluppatore, puoi conoscerlo e quindi verificare se sono onesti con te.

Per fare ciò, lo si può porre la seguente domanda per sapere come onesti è veramente

  1. Se hanno fatto delle certificazioni, come una certificazione Microsoft, verifica con loro per sapere se hanno davvero studiato per questo e cancellarlo.

  2. Alcuni sviluppatori junior che hanno realizzato i loro progetti dell'ultimo anno, non avrebbero fatto il progetto da soli, cioè i loro amici avrebbero dovuto farlo per loro ecc.

Essere onesti svolge un ruolo molto importante quando lo sviluppatore junior è incaricato di progetti riservati.

Se ritieni di poterti fidare di loro, allora puoi dare un questionario su quali tecnologie vengono reclutate seguito da un testo pratico con alcuni scenari per verificare se hanno la capacità logica, cioè per verificare se hanno un contatto costante nella programmazione.


1
assumendo il peggio delle persone?
1111

+1 per l'assunzione. @ tp1 Mantenendo aperte tutte le opzioni. : D
Karthik Sreenivasan,

0

Il CEO di Sandglaz, Nada Aldahleh, ha recentemente scritto un post sul blog, basato sulla sua esperienza di assunzione di sviluppatori per la sua startup. Ecco alcune delle cose che cerca:

  • mentalità di problem solving
  • spiccate doti comunicative
  • porre domande sull'architettura e sugli algoritmi; uno sviluppatore junior dovrebbe essere in grado di progettare nuove piccole funzionalità e le domande dell'algoritmo che possono essere poste sulla mentalità di problem solving e sul tipo di fondamento che hanno
  • puzzle per isolare le capacità analitiche

E, naturalmente, il test di programmazione, che non dovrebbe consistere nella domanda di Fizz Buzz. Un compito nella vita reale che può essere completato entro un paio d'ore nel tuo ufficio sarebbe il miglior tipo di test.

Puoi leggere ulteriori consigli qui: http://blog.sandglaz.com/how-to-interview-and-hire-junior-developers/

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.