
L'anno scorso, ho dedicato gli ultimi mesi alla preparazione per un colloquio di tirocinio in Google (Google Internship). È andato tutto bene: ho ottenuto il lavoro e un'esperienza fantastica.
Ora, a distanza di due mesi dal tirocinio, voglio condividere il documento che ho utilizzato per la preparazione ai colloqui. Per me è stato un po' come un promemoria prima dell'esame. Ma il processo di creazione del documento e la costante verifica passo-passo mi hanno aiutato a memorizzare tutto ciò che è più importante.
Sono sicuro che chiunque possa superare con successo i colloqui nelle grandi aziende tecnologiche, è solo necessario un po' di tempo per capire come sono strutturati questi colloqui e prepararsi per essi.
I miei appunti ti basteranno per prepararti a qualsiasi colloquio tecnico, che sia Google, una startup o il tuo primo tirocinio. Ti aiuteranno a sentirti più sicuro sia durante la preparazione che durante il colloquio stesso.
Consigliamo corsi intensivi gratuiti di programmazione per principianti:
— 8–10 agosto;
— 12–14 agosto;
— 15–17 agosto
Appunti per un colloquio tecnico
Siti
Su questa piattaforma puoi esercitarti a sostenere colloqui. I partecipanti si intervistano a turno (ci sono canali audio e video) e possono utilizzare un editor di codice condiviso. Probabilmente, all'inizio non sarà facile e ti sentirai in imbarazzo. Ma più ti alleni, più li superi con sicurezza e un vero colloquio dopo questo ti sembrerà semplice.
Buone domande da colloqui reali in Facebook, Google, Microsoft, ecc. Consiglio di utilizzare questo sito insieme a risorse per la pratica della programmazione, compreso lo studio della complessità algoritmica.
Libri
Cracking the Coding Interview
Le mie parti preferite: Interview Preparation Grid (pag. 32), la sezione dedicata al comportamento durante il colloquio, e Interview Questions: Data Structures (pag. 88–107). Se non hai mai sentito parlare di "complessità algoritmica", è il momento giusto, il libro introduce l'argomento in modo eccellente.
Cosa fare durante un colloquio?
- Non scollegatevi dalla comunicazione e rispondete con sincerità. Quando riflettete su una domanda, pensate ad alta voce e descrivete il vostro ragionamento.
- Aggiungete un po' di umorismo nella comunicazione, non abbiate paura di scherzare. Provate a divertirvi durante la conversazione.
- Annotate le informazioni importanti.
- Fate domande e cercate di utilizzare ciò che avete appreso dall'intervistatore.
Colloquio passo dopo passo
Ecco un checklist per prepararsi a rispondere durante il colloquio. Non è necessario utilizzare tutti i punti; saltate quelli che vi sembrano irrilevanti. L'importante è basarsi sul buon senso. Anche se non raggiungete la fine della lista, non succederà nulla di grave.
- Leggete la domanda.
- Analizzate tutti i dati, sia in ingresso che in uscita, e prestare attenzione agli effetti collaterali.
- Chiarite il senso del compito e comunicate le vostre ipotesi, in modo che l'intervistatore comprenda il vostro modo di pensare. Ad esempio, quali saranno i volumi di dati e chi sarà l'utente.
- Cercate un esempio e condividerlo con l'intervistatore per essere certi di aver compreso correttamente il compito. Non abbiate paura di dedicare tempo a comprendere le condizioni del problema. Più lo capirete, più velocemente troverete la soluzione ottimale.
- Sviluppate un algoritmo. Provate a risolvere un compito simile, ma meno complesso. Annotate le vostre riflessioni e analizzate esempi su un foglio di lavoro.
- Ripercorrete il vostro algoritmo con esempi per assicurarvi che il codice funzioni correttamente. Controllate tutti i casi critici e al limite.
- Valutate la complessità dell'algoritmo sia in termini di tempo che di memoria.
- Se siete riusciti a trovare una soluzione più efficace al problema, tornate al punto 4.
- Scrivete la soluzione utilizzando l'algoritmo scelto. Suddividete il problema in più metodi, se possibile nel caso specifico.
- Controllate il codice per errori.
- Pensate a come l'implementazione dell'algoritmo gestisce i casi critici e ai limiti.
- Verificate l'implementazione con un esempio, esaminando il codice per errori.
- Una volta che siete certi che il codice funzioni correttamente, controllatene la pulizia e lo stile.
Ecco, tutto qui!
Fonte: habr.com
