Come partecipare a uno stage in Google

Una settimana fa abbiamo parlato dei nostri programmi educativi , dove nei commenti ci hanno fatto notare l'importanza dei tirocini e dell'esperienza pratica. Non si può non essere d'accordo, poiché le conoscenze teoriche devono essere consolidate dalla pratica. Con questo post inauguriamo una serie di articoli sui tirocini estivi per studenti: come arrivano lì, cosa fanno e perché è una cosa positiva.

Nel primo articolo parlerò di come superare con successo tutte le fasi dei colloqui e ottenere uno stage in Google.

Come partecipare a uno stage in Google

Due parole su di me

Sono uno studente del primo anno di magistrale presso il campus di Peterburgo dell'Higher School of Economics, ho conseguito la laurea triennale presso l'Accademia Universitaria con specializzazione in Machine Learning. Durante il mio percorso di studi ho attivamente partecipato alla programmazione sportiva e a vari hackathon. Per saperne di più su questi eventi, leggi qui. qui, qui e qui.

Sul tirocinio

Per iniziare, voglio raccontarvi un po' di come è strutturato uno stage in Google dall'interno.

Ogni stagista che entra in Google è assegnato a un team. Questo può essere un team che si occupa dello sviluppo dell'infrastruttura interna, di cui una persona al di fuori dell'azienda non ha mai sentito parlare, oppure di un prodotto utilizzato da milioni di persone in tutto il mondo. Prodotti noti come YouTube, Google Docs e altri. Poiché decine, se non centinaia di sviluppatori lavorano a questi progetti, entrerai in un team che si specializza su una parte più specifica. Ad esempio, nell'estate del 2018 ho lavorato su Google Docs, aggiungendo nuove funzionalità per la gestione dei fogli.

Essendo un tirocinante in azienda, hai un manager chiamato host. Questo è un normale dipendente a tempo pieno che si occupa dello sviluppo dei prodotti. Se hai domande, non sai come affrontare una situazione o hai dei problemi, devi rivolgerti a lui. Di solito vengono fissati incontri settimanali one-on-one, dove puoi discutere la situazione attuale del lavoro sul progetto o parlare di argomenti completamente diversi. Inoltre, l'host è una delle persone che valuterà il lavoro svolto durante il tirocinio. A valutare sarà anche un secondo revisore aggiuntivo. Certamente, entrambi sono interessati a garantire il tuo successo.

In Google, they will guide you, but it's not certain; it’s a good practice to write a design document (dizdok) before you start doing anything. For those who don’t know, a dizdok is a document that outlines the essence of the existing problem and provides a detailed technical description of its solution. Dizdok can be written for an entire product or for a specific new feature. By reading such documentation, one can understand the purpose behind the product and how it was implemented. Often in the comments, you can see dialogues between engineers discussing various ways to implement a part of the project. This gives a good understanding of the reasoning behind each decision made.

The feature of the internship is that you will get to use wonderful internal development tools, of which there are a huge number at Google. Having worked with them and talked to many people who previously worked at Amazon, Nvidia, and other well-known tech companies, I can conclude that these tools are likely to be the best you will ever encounter in your life. For example, a tool called Google Code Search allows not only to browse the entire codebase and the history of changes for each line of code but also provides navigation through the code that we are used to in modern development environments, such as Intellij Idea. And for this, you only need a browser! A downside related to this feature is that outside of Google, you will miss these tools.

As for the perks, the company has great offices, good food, a gym, excellent insurance, and other nice amenities. I'll just leave a couple of photos from the New York office here:

Come partecipare a uno stage in Google
Come partecipare a uno stage in Google
Come partecipare a uno stage in Google

How to get an offer?

Panoramica

Now it’s time to talk about something more serious: how to land an internship?

Here, we won’t talk about Google, but rather about how it usually goes in general. I will write about the specifics of the selection process for interns at Google below.

The interview process at the company will likely look something like this:

  1. Internship application
  2. Hackerrank/TripleByte Quiz
  3. Screening interview
  4. First technical interview
  5. Second technical interview
  6. Onsite interview

Internship application

È chiaro che tutto inizia con il tuo desiderio di fare uno stage. Per questo, devi esprimerlo compilando un modulo sul sito dell'azienda. Se hai (o i tuoi amici hanno) conoscenti che lavorano lì, puoi provare a farti raccomandare da loro. Questa opzione è preferibile perché ti aiuta a distinguerti dalla massa degli altri studenti. Se non hai questa possibilità, candidati da solo.

Cerca di non sentirti troppo scoraggiato quando ricevi email con contenuti come "sei fantastico, ma abbiamo selezionato altri candidati". E a questo proposito ho un consiglio per te:

Come partecipare a uno stage in Google

Hackerrank/TripleByte Quiz

Se il tuo curriculum piace al reclutatore, riceverai un'email con il prossimo compito dopo 1-2 settimane. Probabilmente ti verrà chiesto di partecipare a una sfida su Hackerrank, dove dovrai risolvere problemi algoritmici in un tempo dato, oppure un quiz di TripleByte, dove dovrai rispondere a varie domande riguardanti algoritmi, sviluppo software e architettura di sistemi a basso livello. Questo passaggio funge da filtro iniziale nel processo di selezione dei candidati.

Screening interview

Se superi con successo questa prova, ti attende un colloquio di screening, durante il quale parlerai con un reclutatore delle tue passioni e dei progetti che l'azienda offre agli stagisti. Se mostri interesse e la tua esperienza passata è in linea con le aspettative dell'azienda, allora riceverai il semaforo verde. Dalla mia esperienza, questa è la fase più imprevedibile dell'intero processo e dipende molto dal reclutatore.

Se hai superato queste tre prove, la maggior parte del fattore casuale è già alle spalle. Resta da affrontare i colloqui tecnici, che dipendono di più da te, quindi puoi influenzare maggiormente il loro esito. Ed è una cosa positiva!

Colloqui tecnici

Dopo ci sono i colloqui tecnici, che di solito vengono condotti tramite Skype o Hangouts. Ma a volte si possono incontrare servizi più esotici che richiedono l'installazione di software aggiuntivo. Quindi assicurati in anticipo che tutto funzioni sul tuo computer.

Il formato delle interviste tecniche dipende molto dalla posizione per cui ci si candida. Se si tratta di una posizione da Software Engineering Intern, probabilmente vi verranno proposte alcune piccole sfide algoritmiche da risolvere in qualche editor di codice online, come ad esempio, coderpad.io. Potrebbe anche essere posto un quesito su design orientato agli oggetti, per valutare quanto bene comprendiate la progettazione del software. Ad esempio, potrebbero chiedervi di progettare un semplice negozio online. Tuttavia, personalmente non mi è mai capitata una domanda di questo tipo, la cui soluzione potesse effettivamente giudicare questa competenza. Alla fine dell'intervista, vi verrà sicuramente data l'opportunità di fare domande. Raccomando vivamente di prendere ciò sul serio, poiché grazie alle domande potete mostrare il vostro interesse per il progetto e dimostrare la vostra competenza nel tema. Di solito preparo in anticipo un elenco di domande potenziali:

  • Come avviene il lavoro su un progetto?
  • Qual è stata l'ultima sfida difficile che avete dovuto affrontare?
  • Qual è il contributo dello sviluppatore nel prodotto finale?
  • Perché avete deciso di lavorare per questa azienda?

Non sempre a condurre l'intervista è la persona con cui si lavorerà poi. Pertanto, le ultime domande possono dare un'idea di cosa accade in azienda nel suo complesso. Per me, ad esempio, è importante avere un'influenza sul prodotto finale.

In caso di esito positivo del primo colloquio, vi verrà proposto un secondo. Questo si differenzierà dal primo per l'intervistatore e, di conseguenza, per le domande. Il formato rimarrà probabilmente lo stesso. Dopo aver superato il secondo colloquio, potrebbe esservi offerto anche un terzo.

Onsite interview

Se fino ad ora non ti hanno rifiutato, sei atteso per un colloquio in sede, durante il quale il candidato viene invitato a un colloquio presso l'ufficio dell'azienda. Di solito consiste in diversi colloqui tecnici e uno comportamentale. Durante il colloquio comportamentale parli con il manager dei tuoi progetti, delle decisioni che hai preso in diverse situazioni e simili. In altre parole, l'intervistatore cerca di comprendere meglio la tua personalità e di approfondire la tua esperienza. Alcune aziende, che svolgono 3-4 colloqui tecnici, offrono al posto del colloquio in sede di partecipare a un solo colloquio comportamentale da remoto.

Ora non ti resta che aspettare la risposta del reclutatore. Se tutto è andato bene, riceverai sicuramente una mail con l'atteso offerta. Se non arriverà l'offerta, non ti preoccupare. Le aziende rifiutano sistematicamente buoni candidati. Prova a candidarti di nuovo per uno stage il prossimo anno.

Colloquio di coding

Aspetta... Non abbiamo ancora sostenuto alcun colloquio. Abbiamo appena appreso come appare l'intero processo e ora dobbiamo prepararci bene per i colloqui, in modo da non perdere l'occasione di trascorrere un'estate gradevole e utile.

Esistono risorse come Codeforces, , di cui ho già parlato. Su queste piattaforme puoi trovare un gran numero di problemi algoritmici e inviare le loro soluzioni per la verifica automatica. È tutto fantastico, ma mi ricorda piuttosto sparare a un passero con un cannone. Molti problemi su queste risorse richiedono un periodo di tempo prolungato per essere risolti, necessitano della conoscenza di algoritmi avanzati e strutture dati, mentre i problemi nei colloqui di solito non sono così complessi e sono previsti per 5-20 minuti. Pertanto, nel nostro caso, una risorsa come e Hackerrank, che è stata creata come strumento di preparazione per i colloqui tecnici, è molto più adatta. Se risolverai 100-200 problemi di diversa complessità, è probabile che tu non abbia problemi durante il colloquio. Tra le risorse degne di nota c'è anche LeetCodeFacebook Code Lab , dove puoi scegliere la durata della sessione, ad esempio, 60 minuti, e il sistema ti proporrà un insieme di problemi, che in media richiedono non più di un'ora per essere risolti.Molti consigliano anche di leggere il libro «

Molti consigliano di leggere il libro «Cracking the Coding Interview». Personalmente, ho letto solo alcune parti selezionate. Tuttavia, devo sottolineare che ho risolto molte problematiche algoritmiche durante gli anni a scuola. Chi non ha avuto questa esperienza, dovrebbe comunque dare un'occhiata a questo libro.

Inoltre, se nella tua vita hai avuto poche interviste tecniche in aziende straniere, è consigliabile svolgere un paio di prove. Ma più ne fai, meglio è. Questo ti aiuterà a sentirti più sicuro durante il colloquio e a essere meno nervoso. Le interviste di prova possono essere organizzate su Pramp.

Interviste comportamentali

Come ho già accennato, durante un'intervista comportamentale, l'intervistatore cerca di conoscere meglio la tua esperienza e capire il tuo carattere. Cosa succede se sei un ottimo sviluppatore, ma non riesci a lavorare in squadra? Temo che a molti questo non piacerebbe. Ad esempio, potrebbero farti una domanda del tipo: «Qual è il tuo punto debole?» Oltre a domande di questo tipo, ti verrà chiesto di parlare dei progetti in cui hai ricoperto un ruolo chiave, dei problemi che hai affrontato e delle relative soluzioni. Va detto che nei primi minuti delle interviste tecniche potrebbero chiederti anche questo. Di come prepararsi a tali colloqui è scritto bene in uno dei capitoli di “Cracking the Coding Interview”.

Google

Ora che è chiaro come si presenta il processo di selezione dei tirocinanti in generale e come prepararsi per i colloqui, è tempo di parlare di come funziona nel caso di Google.

L'elenco delle offerte di tirocinio disponibili può essere trovato qui. Se pianifichi di andare a un tirocinio estivo, dovresti iniziare a candidarti già a settembre.

Colloqui

Qui il processo appare un po' insolito. Avrai un colloquio di screening e due tecnici. Se ti comporti bene in questi, passerai alla fase di ricerca del progetto. Dovrai compilare un modulo piuttosto lungo, in cui indicherai tutte le tue attuali competenze e esprimerai le tue preferenze riguardo al tema del progetto e alla localizzazione in cui desideri svolgere il tirocinio.

È molto importante compilare questo modulo bene e con attenzione! I potenziali host che cercano persone per i loro progetti esaminano i tirocinanti disponibili e colloquiano con i candidati che hanno attirato la loro attenzione. Possono filtrare gli studenti in base alla posizione, parole chiave, selezioni nel modulo e ordinare per punteggio nei colloqui.

Durante il colloquio, l'intervistatore parla del progetto su cui si dovrà lavorare e scopre anche l'esperienza del candidato. Qui c'è un'ottima opportunità per capire come sarà realmente il processo di lavoro, poiché si sta interagendo con una persona che sarà il vostro host. Dopo il colloquio, scrivete una lettera al reclutatore con le vostre impressioni sul progetto. Se il progetto vi è piaciuto e l'intervistatore è rimasto colpito, riceverete un'offerta. In caso contrario, potreste aspettare ulteriori chiamate, che potrebbero essere 2-3-4 o anche più, ma potrebbero non arrivare affatto. Vale la pena chiarire che anche se avete passato bene i colloqui, ma nella fase di ricerca del progetto nessun team vi ha scelto (e forse nessuno ha nemmeno parlato con voi), purtroppo rimarrete senza offerta.

America o Europa?

Inoltre, dovrete decidere dove svolgere il vostro tirocinio. Il mio choix era tra gli USA e EMEA. Ed è importante conoscere alcune peculiarità. Ad esempio, c'è la sensazione che sia più difficile entrare negli Stati Uniti. In primo luogo, dovrete affrontare una contestazione aggiuntiva della durata di 90 minuti, dove dovrete risolvere compiti di programmazione, oltre a un altro questionario di 15 minuti che cerca di rivelare il vostro carattere. In secondo luogo, dalla mia esperienza e da quella dei miei amici, nella fase di ricerca della squadra avete meno interesse. Ad esempio, nel 2017 ho avuto solo un colloquio, dopo il quale il team ha scelto un altro candidato e non ho ricevuto un'offerta. Mentre i ragazzi che hanno fatto domanda per l'Europa hanno avuto 4-5 progetti. Nel 2018 mi hanno trovato un team a gennaio, che è abbastanza tardi. I ragazzi lavoravano a New York, mi è piaciuto il loro progetto e ho accettato.

Come vedete, con gli Stati Uniti è tutto un po' più complicato. Ma desideravo entrarci più che in Europa. Inoltre, negli Stati Uniti pagano anche di più.

Come partecipare a uno stage in Google

Cosa fare dopo?

Alla fine del tirocinio avete due opzioni:

  • Ricevere un tirocinio per l'anno successivo.
  • Superare due colloqui tecnici per ottenere una posizione a tempo pieno.

Queste due opzioni sono disponibili a condizione che tu abbia gestito con successo il tuo attuale progetto. Se questa non è la tua prima esperienza di tirocinio, potrebbero anche offrirti una posizione a tempo pieno senza colloqui.

Pertanto, si verifica la seguente situazione, che può essere descritta con un'immagine:

Come partecipare a uno stage in Google

Poiché questo era il mio primo tirocinio, ho deciso di affrontare due colloqui tecnici per ottenere una posizione a tempo pieno. A seguito dei loro risultati, mi hanno proposto di unirsi e hanno iniziato a cercare un team, tuttavia ho rifiutato questa opzione poiché ho deciso di completare il master. È improbabile che Google svanisca in 2-3 anni.

Conclusione

Amici, spero di aver spiegato in modo chiaro e comprensibile il percorso da studente a tirocinante (e poi di nuovo...), e questo materiale troverà il suo lettore, che lo troverà utile. Come vedete, non è così difficile come potrebbe sembrare, bisogna solo mettere da parte la propria pigrizia, le proprie paure e iniziare a provare!

P.S. Ho anche qui un canale su Telegram, dove potete dare un'occhiata.

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS - ProHoster