Che tu stia programmando da quando il tuo pigiama aveva i piedi addosso o che stai affrontando la canna della tua prima caccia al lavoro dopo la scuola, il colloquio tecnico può essere un terrificante ostacolo tra te e il lavoro dei tuoi sogni.
Ma non temere: preparati a mettere in mostra le tue abilità. Di seguito troverai alcuni suggerimenti utili per completare qualsiasi colloquio tecnico.
Prima dell'intervista
Prendi un libro
Prima possibile prima del colloquio (anche se sono riuscito solo due settimane), inizia a prepararti. Lavorare attraverso un libro di preparazione non solo aggiornerà i tuoi algoritmi e le tue conoscenze sulla struttura dei dati, ma ti metterà anche nella giusta mentalità di risoluzione dei problemi.
Ancora più importante, scegli il libro di preparazione giusto per il tuo livello e interessi. Cracking the Coding Interview è una grande risorsa, ma se non sei già un programmatore abbastanza esperto, non compenserà l'esperienza. Se hai appena iniziato, ci sono altri libri da cui otterrai più chilometri, come Programmare le interviste esposte: segreti per lo sbarco del tuo prossimo lavoro . E ci sono molti libri più specializzati e avanzati per quelli con più esperienza.
La pratica rende perfetti
Poche cose battono il panico come fa la pratica, quindi inizia la lavagna ogni volta che puoi, anche con problemi davvero piccoli. I libri di interviste di programmazione offrono quasi infiniti problemi di esempio, ma puoi usare anche problemi a cui stai già lavorando. Poni il problema a te stesso (o chiedi a un amico tecnicamente incline di proporlo a te, per una configurazione più realistica), traccia la tua strategia e metti il segnalino su una lavagna a secco. Più ti senti a tuo agio nel segnare quella lavagna vuota a casa, meno esitante sarai al colloquio.
Se hai poco tempo e vuoi superare rapidamente i frullati, puoi aggiungere pressione che non sarà presente nell'intervista reale. Se ti concedi un limite di tempo o hai qualcuno che rispetti nel ruolo del tuo intervistatore, il vero affare sembrerà un gioco da ragazzi.
Non sovraccaricarti
Quando pianifichi le interviste, assicurati di lasciare almeno un paio d'ore tra una e l'altra. Sembra un problema del primo mondo, ma ogni volta che ho avuto più interviste in un giorno, non mi sono esibito come avrei potuto. O ero preoccupato di arrivare al prossimo in tempo o avevo già raggiunto il massimo della mia logica ore prima.
Oh, e dormi un po '. Sembra qualcosa che ti direbbe tua madre, ma ci sono alcune cose che ti gettano fuori dal gioco come la privazione del sonno. È paragonabile a presentarsi ubriaco.
Nell'intervista
Sii pronto a tutto
Dopo aver superato l'intervista, dovresti essere pronto per alcuni diversi tipi di risoluzione dei problemi. I tuoi intervistatori potrebbero chiederti di parlare di come risolveresti un problema, potrebbero aprire un computer e chiederti di guidarli attraverso la creazione di codice o potrebbero averti scritto tu stesso su una lavagna. Preparati alla variazione e non lasciarti incantare dai dettagli! Indipendentemente dal metodo utilizzato dai tuoi intervistatori, sono le tue abilità di problem solving che stanno davvero testando.
Fare domande
Quando ti viene presentato un problema, riflettilo e assicurati di comprendere appieno ciò che ti viene chiesto di restituire. Non abbiate paura di fare domande in anticipo se qualcosa non è chiaro. Se ci sono casi limite, ad esempio, chiedi come i tuoi intervistatori vogliono che vengano gestiti. Dovresti lanciare un'eccezione? Rompere?
Assicurati inoltre di porre domande procedurali per capire cosa cercano gli intervistatori e quali sono i tuoi vincoli, ad esempio "Esiste una lingua specifica in cui desideri che ti dia la mia soluzione?" O "Posso presumere di avere accesso in qualsiasi libreria Python? ”
E non fare ipotesi. Anche se sei abbastanza sicuro che sia sicuro, menziona ad alta voce cosa stai pensando in modo che gli intervistatori possano farti sapere se ti stai perdendo qualcosa.
Prenditi il tuo tempo
Dopo aver compreso la domanda che ti viene posta, non aver paura di dedicare un minuto a pensare ed elaborare prima di iniziare a risolvere il problema. Fintanto che non vieni sbarrato con domande rapide e basate sulla conoscenza, fare una pausa dopo averle poste è una buona cosa. Ovviamente, assicurati di non impiegare 10 minuti per risolverlo in testa senza dire una parola! Il punto è usare il tuo tempo in anticipo per strutturare il tuo approccio, non per provare a scrivere tutto il codice nella tua testa prima di toccare l'indicatore sulla lavagna.
Pensa al quadro generale
Pensa prima al quadro generale del problema. Va bene pseudo-codificare la struttura generale, purché dica agli intervistatori che cosa stai facendo e che intendi tornare indietro e in realtà codificarlo in seguito. È un buon modo per scaricare l'organizzazione del problema in modo che il tuo cervello abbia più spazio per l'elaborazione. Questo aiuterà anche se alla fine si esaurisce il tempo; gli intervistatori sapranno almeno come avresti pianificato di completare l'attività anche se non avessi ottenuto i dettagli.
Inoltre, non preoccuparti all'inizio di trovare il modo più efficiente per risolvere il problema, a meno che non ti si insinui naturalmente nella testa. Scegli una soluzione meno efficiente e poi discuti sul perché sia meno che ideale. Quindi, se hai tempo o vedi un modo migliore per risolverlo, passa a un algoritmo più adatto al tempo o allo spazio. Anche se tutto quello che hai tempo da fare è finire la tua versione meno efficiente e poi spiegare come lo faresti meglio, non è una cattiva risposta.
Parlalo
Ancora più importante: parlare. Porta i tuoi intervistatori insieme a te nella risoluzione dei problemi. Questo può essere semplice come delineare ciò che stai per fare quando lo stai facendo ("Quindi, avrò bisogno di un ciclo continuo per scorrere tutti gli elementi in questo elenco") o porre problemi a te stesso come te go ("Questo significa che avrò bisogno di un modo migliore per accedere alle informazioni; hmm, ci tornerò più avanti").
Parlare attraverso il tuo processo di pensiero offre ai tuoi intervistatori una finestra su come pensi, e questo è in definitiva il punto dell'intervista. Anche se pensi che la tua soluzione sia sorprendente, è meglio per loro sapere come hai affrontato il problema e arrivare alla tua risposta piuttosto che vedere la risposta a tutti gli effetti e non avere idea di cosa ti abbia portato lì. Dà anche agli intervistatori la possibilità di aiutarti se sei bloccato o stai percorrendo un sentiero che è un vicolo cieco.
Porta anche la tua abilità personale
Solo perché stai andando per un lavoro di ingegneria non significa che puoi perdere tempo a essere simpatico e responsabile. Ho sentito storie horror di programmatori fantastici che non sono stati assunti perché non erano adatti alla cultura o avevano un cattivo atteggiamento. Sono sicuro che anche tu. Non essere quella persona.
La curiosità e l'entusiasmo sono apprezzati in ogni dipendente e gli sviluppatori non sono diversi. Fai domande sul team di progettazione dell'azienda, sul suo stack e sui problemi più difficili che sta affrontando per il prodotto. Certo, c'è una linea sottile tra l'entusiasmo e l'essere un sicofante, quindi mantienilo genuino, ma tutti amano un candidato che è interessato al prodotto su cui lavorerà.
Impara qualcosa di nuovo
Infine, una cosa che manca spesso agli intervistati è l'opportunità di apprendimento. Si spera che imparerai qualcosa di nuovo in ogni intervista: acquisirai una nuova idea o un nuovo strumento o otterrai una panoramica di prodotti e tecnologie interessanti. Più pensi alle tue interviste in questo modo, più prezioso sarà quel tempo per te a lungo termine.




