Quanto aiuto dovrei dare durante le interviste tecniche? [chiuso]


83

Mi viene chiesto di esibirmi o di sedermi durante molte interviste tecniche. Facciamo domande logiche e semplici problemi di programmazione che l'intervistato dovrebbe essere in grado di risolvere su carta. (Preferirei avere accesso a una tastiera, ma questo è un problema per un'altra volta.) A volte sento che le persone sanno come affrontare un problema, ma sono bloccate dal nervosismo o da una seconda ipotesi della domanda ( non intendono essere domande a trabocchetto).

Non ho mai sentito il mio capo dare alcun aiuto o suggerimenti. Ringrazia semplicemente l'intervistato per la risposta (non importa quanto sia buona o cattiva) e passa alla domanda o al problema successivo. Ma so qualcosa sulla tana del coniglio che la sconfitta e i nervi possono portarti giù, e come disabilita la tua mente, e non posso fare a meno di chiedermi se fornire un piccolo aiuto ora e poi alla fine ci aiuterebbe a finire con programmatori più capaci invece di più interviste fallite.

Dovrei fornire suggerimenti e assistenza agli intervistati confusi (e in tal caso, fino a che punto dovrei andare pur essendo equo con i candidati più preparati)?


30
Saresti un grande professore. Dicono che uno studente impari di più durante una prova orale, rispetto all'intero semestre.
superM

2
Detesto il potenziale del numero di opportunità che ho perso a causa dei nervi ...
Chad Harrison,

Risposte:


111

Quando mi trovavo in una posizione simile, direi all'intervistato: "Fai finta di essere Google. Se hai bisogno di cercare qualcosa, dillo."

In una domanda gli intervistati dovevano essere in grado di capire il volume di un cilindro, quindi non mi importava se qualcuno dicesse: "Dovrei Google per la formula per il volume di un cilindro". Mi interessava sapere se sapevano come attaccare il problema, non se avessero memorizzato le formule. Per il lavoro, dovevano avere una buona conoscenza di come tradurre il mondo reale in software, quindi era un concetto importante.

D'altra parte non avevo intenzione di dire loro che avevano bisogno di quella formula.

Hai ragione sul fatto che i nervi possono essere un problema, ma mi aspetto ancora che le persone siano in grado di esprimere il loro processo di pensiero, anche se sono nervose. Semplicemente non dare una risposta era inaccettabile.


35
@Job, ho imparato il volume di un cilindro 40 anni fa e da allora ho programmato, risolvendo problemi di business reali ma non ho mai dovuto usare quella formula, quindi l'ho dimenticato ma posso cercarlo su Google 5 (forse 6) secondi. Perché non mi assumere?
Michael Durrant,

16
@MichaelDurrant perché è una formula così banale, è quella che tutti dovrebbero conoscere, come il Teorema di Pitagora. E anche se riuscissi a dimenticare, dovresti comunque prenderlo in testa in pochi secondi.
whatsisname

52
@whatsisname, questo è un approccio incredibilmente arrogante alla situazione. si presume che i programmatori di computer stiano risolvendo problemi, non memorizzando ogni singola formula matematica (non importa quanto banale) arrivi. È il modo in cui finiscono per risolvere il problema che conta, non quanto non sapessero all'inizio.
ardente

14
@whatsisname, sicuramente in virtù della necessità di destreggiarsi tra conversioni da byte a KB in MB per ecc. potrei dirti modi rapidi e sporchi per capire 2 ^ 32, ovvero 4 GB o 4096 MB. Ma non saprei il volume di un cilindro, dato che potrei derivarlo rapidamente in base a ciò che so su cerchi e calcolo, ma potrei anche cercarlo rapidamente su di te per te e risparmiarci entrambi i tempi.
ardente

13
@Job, hai ragione. Stavo pensando in termini di volume generale, e quindi ho complicato il problema. Alla fine, tuttavia, diventa ancora un problema. Se questa è l'unica cosa che li appende e hanno una grande comprensione di come risolvere il problema, perché non assumerli? Non vorrei assumere qualcuno che potesse estrarre immediatamente 2 ^ 67 in una frazione di secondo, ma non posso dirmi come farebbero per implementare un tipo di inserimento rapido e sporco nella lingua che preferiscono.
ardente

28

Hai due approcci che funzionano sia per la risoluzione dei problemi sia per brevi domande tecniche:

  1. Il primo è usato dal tuo capo: non fornire alcun aiuto per testare il comportamento della persona in un contesto stressante. È un approccio perfettamente valido e può dare alcuni suggerimenti sulla persona. Dopotutto, una volta assunta questa persona, non sarà in grado di ricevere un aiuto costante da tutti i suoi colleghi.

  2. Il secondo è quello di fornire suggerimenti e supporto. Il livello di supporto non ha importanza; l'unica cosa che conta è che più aiuto fornisci alla persona, meno devi valutare il suo successo.

Personalmente, credo che dovresti impiegare abbastanza tempo per essere sicuro che la persona non sia in grado di risolvere un problema da sola e per far sentire la persona che non è in grado di risolverlo senza aiuto. Ma poi, puoi fornire un aiuto progressivo fino a quando non dici alla persona la risposta stessa.

Esempio:

- Puoi dirmi come si creano proprietà di sola lettura in C #, ovvero proprietà con un valore che può essere inizializzato solo all'interno di un costruttore e non può essere modificato in un secondo momento?
- Ovviamente. Uso solo la parola chiave readonly.
- Sei sicuro? Puoi spiegarmi la differenza tra una proprietà e un campo?
- Hm. Una proprietà è ... vedi ... ottieni e imposta ...
- Ok. Quindi un campo è una variabile dichiarata all'interno di una classe o di una struttura e valida nell'ambito della classe / struttura, mentre una proprietà è come un campo, ma fornisce anche un meccanismo per leggere, scrivere o calcolare un valore. E adesso readonly? È usato con proprietà?
- Credo che sia usato solo per i campi ...
- Giusto. E le proprietà?
- Non possono essere letti solo.
- Sei sicuro? Che dire delle proprietà che hanno solo getter?
- Sono di sola lettura.
- Significa che il loro valore rimarrà sempre lo stesso?
- Sì.
- No, non proprio. Il fatto che tu abbia una proprietà con un getter non significa che il suo valore non cambi durante la durata dell'istanza della classe. Se il getter si riferisce a un campo che viene incrementato ogni volta che si accede alla proprietà, il valore restituito aumenterà continuamente.
- Giusto.
- Così? Hai un'idea di come puoi implementare una proprietà con un valore che non cambia mai?
- No.
- Bene, puoi usare un campo di supporto di sola lettura. Sai cos'è un backing field?
[...]

Dare la risposta è una buona idea in tutti i casi. Ci sono stati diversi casi in cui l'intervistato ha commentato la mia risposta in modo interessante, dimostrando che anche se non era in grado di rispondere alla domanda in primo luogo, sapeva ancora cose correlate.

Inoltre, ponendo semplicemente una domanda senza ulteriore aiuto, non si hanno troppe informazioni sulla persona, a parte il fatto che lei conosce o non conosce la risposta . Fornire un aiuto progressivo può consentire di vedere come la persona sta pensando a un problema.

Potrebbe anche mostrare altre cose che la persona non conosce. Prendi l'esempio sopra: se mi fermassi alla prima risposta, non avrei saputo che la persona non può spiegare la differenza tra un campo e una proprietà o che non sa cosa sia un campo di supporto.

Se la persona risponde immediatamente, va bene. Se ha bisogno di assistenza, non c'è niente di sbagliato in questo. Se finisci per rispondere tu stesso alla domanda, è un brutto segno e speriamo che l'intervistato sia in grado di rispondere agli altri.


1
Il tuo secondo punto porta alla conclusione che la persona che non cerca aiuto dovrebbe ottenere il lavoro. Non sempre il caso, soprattutto se la domanda è ambigua.
riwalk

1
@ Stargazer712 - non necessariamente. Alcune persone hanno bisogno di un po 'di assistenza per ricordare elementi di riferimento. Penso che il punto principale di MainMa sia che va bene adescare un po 'la soluzione poiché ti permetterà di vedere come risolvono il problema. Come funziona il candidato è un'informazione molto più preziosa della risposta. Il suo punto è che se devi fornire un sacco di aiuto, probabilmente le loro capacità di problem solving non sono così buone. Il gradiente va da "alcuni / nessun aiuto" a "necessario molto aiuto".

1
Una nota sul primo punto: sono già in una situazione stressante: un colloquio di lavoro!
Matthew Flynn,

2
+1 per il tuo esempio - con questo approccio come intervistatore, ottieni una visione molto più profonda della comprensione REALE dell'argomento da parte dei candidati.
StuartLC

2
@nonnb Probabilmente anche tu raccoglierai alcune altre cose lungo la strada. Come dice MatthewFlynn, sono già in una situazione stressante. Rendere l'intervista più di una discussione che di un esame può o meno dirti di un particolare punto di conoscenza del candidato, ma ti dirà molto sul loro approccio alla risoluzione di un problema che devono affrontare. Il che, francamente, in qualcosa come il 99% delle combinazioni di impieghi di programmazione e incarichi di lavoro, è molto più rilevante per la capacità di svolgere un lavoro di programmazione.
un CVn il

8

Mi piace sempre aiutare gli intervistati se sono bloccati su qualcosa di semplice (come il nome di un particolare schema se ovviamente sanno di cosa si tratta) e lasciandoli sorvolare su cose come i dettagli di stabilire una connessione al database. Se stanno cercando di progettare qualcosa, però, non dico molto perché non voglio guidarli o buttarli via se stanno pensando a qualcosa di diverso da dove sto immaginando che stiano andando.


8

Ricordo di aver ricevuto una particolare domanda di risoluzione dei problemi da un intervistatore che aveva in mente un risultato molto specifico, ma non era in grado di comunicarmi chiaramente la domanda. Questo descrive la situazione in cui si imbattono molti intervistati. A volte lo sguardo vuoto non è perché la persona non è un buon risolutore di problemi, ma perché la persona che pone la domanda non è chiara in ciò che sta chiedendo. In tal caso, l'approccio del tuo collega di dire e non fare nulla dimostra solo che il candidato non pensa come il tuo collega o non è nella testa del tuo collega. Penso che fornire chiarimenti sulla domanda con parole diverse potrebbe fornire risultati migliori per tutti i soggetti coinvolti.


5

Dato che i programmatori (almeno la maggior parte di noi) non lavorano nel vuoto e che le interviste sono abbastanza stressanti senza limiti artificiali, sarei propenso a offrire tutto l'aiuto di cui un intervistato chiede o ha bisogno.

Ma tieni tutto in considerazione quando esprimi un giudizio definitivo sul livello di competenza effettiva del candidato.

Qualcuno che è alla ricerca di una posizione senior ma ha bisogno di molto aiuto suonerebbe il campanello d'allarme.


5

Per le "persone anziane", offro domande brevi e aperte e prendo più attenzione alle domande che fanno della risposta. Trovo persone anziane che ascoltano, comunicano, usano l'ascolto attivo, chiariscono, quindi forniscono soluzioni del tipo che mi piace.

Per gli "ingegneri di linea", ho usato la tecnica per programmare i test in cui dai a un richiedente un computer e un problema e poche ore, poi torni. In tale situazione, abbiamo chiesto al richiedente in anticipo quale sistema operativo e strumenti preferissero (anche una parte interessante dell'esperienza di un programmatore). Quando hanno finito, come gruppo abbiamo chiesto loro di presentare la soluzione e perché era meglio di altre soluzioni: una revisione del codice. Tutte le competenze che mi aspetto da un ingegnere esperto il primo giorno.

È importante sottolineare che l'intero team di intervistatori aveva impiegato un pomeriggio per fare lo stesso test, quindi sapevamo che il test era giusto. Abbiamo trascorso un'ora a esaminare l'approccio di ogni persona come faremmo con un intervistato, il che ci ha dato un'idea di approcci diversi.

Questa seconda tecnica ci ha trovato alcuni dei migliori programmatori "non celebrati" (pessimo curriculum, pessime capacità di intervista) che io abbia mai trovato.


4

Preferisco iniziare le interviste con una semplice domanda di rafforzamento della fiducia per mettere il candidato a proprio agio nel processo. Quando funziona, ti consente comunque di raccogliere quante più informazioni possibili dalle domande successive senza dare vantaggi ai candidati che capiscono il linguaggio del corpo meglio del materiale relativo al lavoro.


A meno che non funzioni e quindi è solo triste, triste, triste per il resto dell'intervista. Personalmente, penso che le nostre prime domande siano terribilmente facili, ma non tutti i nostri candidati sembrano pensarlo.
Kojiro,

1
@kojiro, Yep. L'ho fatto succedere. Ho cambiato idea e li ho fatti parlare di qualcosa sul loro curriculum e questo ha aiutato un candidato a riprendersi al punto in cui sembravano meno sbilanciati durante il resto dell'intervista, ma in almeno un altro caso non è stato così. Con l'eccezione di alcuni studenti universitari che fanno domanda per uno stage, non ho incontrato molti candidati che non si rilassano quando ricevono un sorriso e una domanda sul softball.
Mike Samuel,

+1 buon approccio. Avevo un professore all'università che, quando prendeva uno studente per un esame orale, diceva sempre loro di preparare qualcosa per i primi 15 minuti. Quindi solo lo studente avrebbe parlato per i primi 15 minuti, solo allora il professore avrebbe iniziato a fare domande. Ciò ha permesso allo studente di avere un buon inizio e ha dato al professore dei punti da chiedere in seguito (anche se avrebbe anche posto altre domande sull'argomento). Mi piace molto questo approccio.
sleske,

4

A volte fornire minor hintsdurante l'intervista orale aiuta a vedere quanto il candidato capisce l'argomento / i. Tuttavia, dovrebbero essere no hintsprevisti test standard che ciascun candidato deve sostenere.

Fondamentalmente, two main thingspotresti voler conoscere il potenziale candidato:

a) Caratteristiche personali : si adatta bene alla tua azienda o squadra

b) Competenze tecniche - ha una buona preparazione tecnica e interesse nel raccogliere nuove cose?

Per conoscere questi punti citati devi coinvolgere il potenziale candidato in una conversazione. È anche importante assicurarsi che il candidato sia comfortable during the interviewal fine di ottenere la massima comprensione delle sue attuali competenze (sia soft che tecnologiche) nonché il suo potenziale per svolgere il lavoro.

Inoltre, le capacità comunicative del potenziale candidato sono importanti quanto le sue capacità tecniche e competenza per risolvere i problemi.


4

Parte di ciò che dovrebbe essere guardato è abilità comunicative. Se il candidato non è chiaro sulla domanda, dovrebbe porre domande per chiarire. Questa è una buona cosa, secondo me. Troppo spesso vengono prese decisioni sbagliate perché vengono prese alcune ipotesi durante la lettura delle specifiche o, in questo caso, durante l'elaborazione di una domanda di intervista. Il candidato può rispondere in base a questi presupposti e perdere totalmente il punto previsto. La domanda potrebbe essere difettosa o potrebbe essere il candidato. In entrambi i casi, consentire chiarimenti tramite la comunicazione dimostra un'abilità preziosa, quella che i datori di lavoro dovrebbero cercare.


3

Penso che alla fine ciò dipenda dalla tua personalità di intervistatore e da ciò che pensi sia importante e quindi sta davvero valutando il candidato.

Personalmente, apprezzo le capacità pratiche / pragmatiche rispetto alle curiosità accademiche / esoteriche. Sono molto più interessato a un candidato che può entrare, mettersi al lavoro e contribuire efficacemente in qualche modo prezioso ai progetti su cui sono stati assunti per lavorare rispetto a quanto io sia su quanto sia buona la loro memoria per la minutia.

Quindi, mi allenerò un po 'se il candidato è bloccato su qualcosa di esoterico, o una sfumatura usata raramente o un caso limite che potrebbe essere rilevante in una domanda di intervista inventata ma raramente è mai rilevante nella vita reale. Soprattutto tutto ciò che potrebbero ottenere con un paio di minuti su Google o con un comodo riferimento da scrivania, oppure "imposta e dimentica" digita cose.

Tuttavia, non li istruirò su cose del mondo reale, comuni, tradizionali, fondamentali, lavorative al giorno. Queste sono le cose che voglio essere innate nei loro confronti.


2

Penso che dipenda dalla situazione dell'intervista e dalle domande. Ho usato entrambe le tecniche.

Perché dovrei voler non porre domande di follow-up? Quando sto cercando di scoprire la risposta della persona allo stress. Ho intervistato persone per alcuni lavori che si trovavano in ambienti altamente stressanti e quanto bene potevano gestire lo stress è stato un fattore critico nelle nostre valutazioni, quindi abbiamo posto alcune domande estremamente difficili a cui nessuno poteva rispondere senza stress.

Quando sto cercando di scoprire le loro conoscenze tecniche, faccio domande di follow-up che possono contenere suggerimenti su ciò che sto cercando. Contrariamente al pensiero del manager che ha detto che devi porre a tutti le stesse domande per essere giuste, credo che ciò sia giusto fintanto che sono soddisfatte diverse condizioni. Innanzitutto a tutti viene posta la stessa domanda di base. In secondo luogo, non dovresti porre domande di follow-up per aiutare solo una persona. Se hai lasciato che altri si dimenassero senza aiuto, devi lasciare che tutti si dimenino senza aiuto. In secondo luogo, dovresti confrontare la performance dei candidati sulla domanda, non solo in termini di risposta finale, ma in termini di quanto sia stato difficile trascinarli fuori da loro. Questo processo tratta ancora tutti in modo equo.


1
-> concordato. "Giusto" non significa necessariamente "sterile". Ogni candidato avrà un'esperienza leggermente diversa.
Ed Hastings,

2

Dipende dal tipo di programmatore che desideri. Un introverso che può scrivere ben 20 righe di codice su carta starà bene al tuo capo. Uno sviluppatore di software che può lavorare su milioni di basi di codici di linea all'interno di un team per produrre in modo efficiente un buon software probabilmente non farà molto bene. Adoro questo tipo di interviste come candidato: mi raccontano molto su come il capo tratta il suo staff e qual è la cultura del lavoro. In un caso come questo, mentre lasciavo l'intervista, dissi "Grazie - Permettici di risparmiare un po 'di tempo a entrambi, se non mi chiami, non ti chiamerò". Alla domanda sul perché, ho fatto notare che non volevo lavorare per un'azienda che mi aveva insegnato a fallire.

È probabile che il tuo approccio ottenga selezioni migliori per lo sviluppo del software. L'approccio dei tuoi capi funzionerebbe bene per i collezionisti di rifiuti e per i ragazzi che detengono i lecca-lecca Stop / Go durante i lavori stradali.

Lo sviluppo del software è uno sforzo di squadra, non un gioco solista / lettura della mente / non interattivo. Quanti progetti falliscono perché il software fa ciò che è stato richiesto, non ciò che era desiderato.


1
L'approccio dei tuoi capi funzionerebbe bene per i collezionisti di rifiuti e per i ragazzi che detengono i lecca-lecca Stop / Go durante i lavori stradali. L'approccio del mio capo ha portato lui e molti altri sviluppatori eccellenti. Il motivo per cui ho posto la domanda è che il suo approccio è lento e finiamo per non assumere sviluppatori che potrebbero essere stati fantastici. (Inoltre, i bravi programmatori sono i garbage collector.);)
kojiro il

1
Per mio riferimento, il tuo posto di lavoro è una cultura in cui il team si comporta ben oltre la somma delle capacità degli individui o è un gruppo di individui che lavorano sullo stesso prodotto che si esibisce in base alle loro capacità individuali?
mattnz,

Il mio team ricopre due ruoli: sviluppo di soluzioni off-platform e salvataggio di progetti disastrosi. Non lavoriamo tutti sullo stesso progetto contemporaneamente, ma raramente è una persona sola per un progetto. Da dove sono seduto è il miglior team dell'azienda perché mi piace il mio lavoro e la compagnia, ma non posso onestamente dirti se superiamo le nostre capacità individuali.
Kojiro,

1

Di recente mi sono trovato in una situazione simile. La direzione che ho preso dal mio manager e risorse umane è stata che dovevamo essere completamente onesti con tutti e 6 gli intervistati, quindi ho dovuto porre la stessa serie di domande tecniche con il minimo aiuto per vedere come si comporta ogni intervistato. A volte quando conoscevano la risposta ma rimanevano bloccati con un termine tecnico o qualcosa del genere, li aiutavo indirettamente con alcune domande che li guidavano a quel termine. C'è stato un secondo round di intervista dopo il round tecnico sulla personalità e sui tratti comportamentali se sono riusciti a superare il primo round.


1

Parte di ciò che vuoi in un dipendente è qualcuno che può interagire con il resto del team. Hai bisogno di qualcuno con l'abilità richiesta, vero. Ma hai anche bisogno di qualcuno che sappia quando hanno bisogno di aiuto e ha la sua conoscenza di sé e abilità sociali per farlo. Quest'ultimo set di davanzali costruirà la società nel lungo periodo meglio di qualsiasi Du-jour in linguaggio informatico.


1

Per come la vedo io, un'intervista è una sessione di coworking di prova, non un test . Sto principalmente cercando di rispondere alla domanda "come ci si sente a lavorare con questa persona?" A volte faccio persino finta di aver dimenticato la risposta alla domanda, per rendere l'esercizio più collaborativo.

Hai mai lavorato con qualcuno con cui non riuscivi a trovare la stessa pagina ogni volta che hai affrontato un problema? O qualcuno che ha posto troppe domande invece di saltare e risolvere i problemi? In un'intervista mi assicuro soprattutto che la persona con cui sto parlando non sia una di quelle. C'è un forte elemento di chimica lì.

Ovviamente imparerò anche cose come "scrive codice pulito", "ha familiarità con i concetti richiesti" e "può abilmente inventare un problema per arrivare a intuizioni?" Il candidato sarà comunque quello "guida" e scrivere il codice. Ma lungo la strada si spera che sarà più rilassata e vedrò una sua versione più vicina a quella che vedrei ogni giorno come collega.

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.