Vai al contenuto
cookie

Una guida per gli studenti · Dall’autunno all’inverno del penultimo anno

Colloqui per stage in ingegneria del software

La maggior parte dei colloqui per stage in ingegneria del software prevede una prova di programmazione online, seguita da uno o due colloqui di programmazione dal vivo. Ognuno si basa su uno o due problemi con domande di approfondimento, oltre ad alcune domande sulla tua esperienza passata. Gli intervistatori valutano come capisci il problema, arrivi a una soluzione funzionante, ne spieghi la complessità temporale e spaziale e la metti alla prova. Si aspettano anche di darti suggerimenti.

Le fasi

Molte grandi aziende iniziano con una prova online: un test di programmazione a tempo da svolgere a casa. Amazon, per esempio, dice che la sua prova online per gli stage dura circa 90 minuti e valuta la programmazione, la capacità di risolvere problemi tecnici e i suoi Leadership Principles. La parte di programmazione dura circa 70 minuti. Seguono colloqui dal vivo in video, durante i quali risolvi problemi mentre un ingegnere ti osserva e ti fa domande.

La guida di Meta ai colloqui per gli stage, aggiornata l’ultima volta nel 2022, descrive due fasi: un primo colloquio telefonico e poi altri colloqui, con le stesse aspettative per entrambi. In ogni colloquio si passano circa 30-35 minuti a programmare su uno o due quesiti. Google dice che ai candidati potrebbe essere chiesto di svolgere un esercizio di programmazione, che tutti vengono valutati secondo criteri chiari e che non ci sono rompicapi. I dettagli cambiano, quindi leggi la pagina ufficiale dell’azienda quando ricevi l’invito.

Cosa valutano gli intervistatori

Conta soprattutto il modo in cui arrivi alla risposta. Google dice che l’intervistatore valuta il tuo processo di ragionamento tanto quanto la risposta e farà domande di approfondimento. La guida di Meta ti chiede di parlare della complessità big-O delle tue soluzioni e di fare domande per chiarire il problema; dice anche che è meglio avere un codice funzionante ma non ottimale che avere solo un’idea. Aggiunge che, se ti blocchi, dovresti iniziare con una soluzione a forza bruta e poi migliorarla, e che i suggerimenti dell’intervistatore non sono una cosa negativa.

In pratica, significa fare cinque cose: capire il problema (riformularlo e chiedere informazioni sui casi limite e sulle dimensioni dell’input), trovare una soluzione corretta, spiegarne la complessità temporale e spaziale, migliorarla se puoi e provarla analizzando un esempio e i casi limite a mano. La comunicazione è importante in ogni fase, perché l’intervistatore può valutare solo quello che dici.

Un esempio svolto: two sum

Data una lista di numeri e un valore obiettivo, restituisci le posizioni di due numeri la cui somma è uguale al valore obiettivo. Inizia facendo domande: ci può essere più di una risposta? Si può usare due volte lo stesso numero? La lista è ordinata? Quanto può essere lunga? Poi spiega a voce l’approccio a forza bruta: controllare ogni coppia. È corretto, ma per una lista di n numeri richiede un tempo proporzionale a n al quadrato.

Poi miglioralo. Scorri la lista tenendo una mappa hash che associa ogni numero già visto alla sua posizione. Per ogni nuovo numero, controlla se nella mappa c’è già il risultato di valore obiettivo meno quel numero. Così trovi la coppia in un unico passaggio, con un tempo proporzionale a n e memoria aggiuntiva proporzionale a n. Infine, prova la soluzione a voce su un piccolo esempio, su una lista senza risposta e su una con numeri ripetuti. Spiega cosa cambieresti se la lista fosse già ordinata: useresti due puntatori, uno per ciascuna estremità, senza memoria aggiuntiva.

Argomenti da conoscere e linguaggio da usare

Nei colloqui per gli stage si usano soprattutto gli argomenti di un primo corso di strutture dati e algoritmi: array e stringhe, mappe hash e insiemi, pile e code, liste concatenate, alberi e grafi con ricerca in ampiezza e in profondità, ordinamento e ricerca binaria, ricorsione e programmazione dinamica di base. Conoscere i costi temporali e di memoria di ogni operazione è importante quanto conoscere la struttura.

Usa il linguaggio che conosci meglio. La guida di Meta per gli stage dice di usare il linguaggio con cui ti senti più a tuo agio, mentre Amazon consiglia di ripassare e fare pratica con quello che intendi usare nella prova. Python è comune perché si scrive in poche righe, ma la padronanza conta più della scelta.

Ragionare a voce alta e IA nel colloquio

Di’ quello che stai pensando, anche se è «non ne sono ancora sicuro»: il silenzio non dà all’intervistatore niente da valutare né modo di aiutarti. Quando ti dà un suggerimento, accettalo e spiega come cambia il tuo approccio. Esercitarsi così da soli sembra strano, ed è per questo che fare pratica con un amico o registrarsi mentre si risolve un problema e si parla aiuta tanto.

Le regole sull’IA variano da un’azienda all’altra, quindi controllale prima del colloquio. Google dice che durante i suoi colloqui non si possono usare strumenti di IA, mentre Meta afferma che molti dei suoi colloqui includono ora un assistente IA integrato nell’ambiente del colloquio, che i candidati devono usare. Dove non è consentito, usarlo è barare; dove fa parte del colloquio, il modo in cui controlli e correggi le sue risposte rientra nella valutazione.

Domande comportamentali

La maggior parte dei colloqui tecnici include domande sul tuo passato: un progetto di cui vai fiero, un bug che hai faticato a risolvere o una volta in cui non eri d’accordo con un compagno di squadra. Amazon valuta i candidati secondo i suoi Leadership Principles, che iniziano con l’ossessione per il cliente: l’idea che i leader partano dal cliente e procedano a ritroso. Leggili e prepara un esempio per i principali.

Con un account, Interview prep di cookie simula un colloquio per il lavoro che indichi, con un selezionatore AI. Ti fa una domanda alla volta, approfondisce le tue risposte come farebbe un selezionatore vero e alla fine prepara un report su ciascuna risposta. Usa crediti e mostra prima una stima.

Dove verificare

Verificato in base a queste fonti il . Le regole cambiano di anno in anno, quindi, se qualcosa qui non corrisponde, fai riferimento alle pagine qui sopra.

Domande frequenti

Che cos’è una prova online?

Un test di programmazione a tempo da svolgere a casa, che molte aziende usano prima dei colloqui dal vivo. Amazon dice che la sua prova per gli stage dura circa 90 minuti e consiste soprattutto in esercizi di programmazione.

Quale linguaggio dovrei usare in un colloquio di programmazione?

Quello che conosci meglio. Meta consiglia di usare il linguaggio con cui ti senti più a tuo agio, mentre Amazon consiglia di fare pratica con quello che intendi usare. Quindi la padronanza conta più di quale linguaggio scegli.

Quanto sono difficili le domande di programmazione per gli stage?

Di solito si basano sugli argomenti del primo anno di strutture dati e algoritmi: array, mappe hash, alberi, grafi, ordinamento e ricorsione, con domande di approfondimento che ti chiedono di migliorare o ampliare la soluzione.

Cosa faccio se mi blocco durante un colloquio di programmazione?

Spiega dove ti sei bloccato, prova prima una soluzione a forza bruta e poi migliorala. Accetta qualsiasi suggerimento ti venga dato. La guida di Meta dice che i suggerimenti dell’intervistatore non sono una cosa negativa.

Posso usare l’IA durante un colloquio di programmazione?

Dipende dall’azienda. Google dice che durante i suoi colloqui non si possono usare strumenti di IA; Meta dice che molti dei suoi colloqui includono un assistente IA integrato che i candidati devono usare.