Come devo prepararmi per il mio colloquio con Google se mi resta 1 mese e sto facendo domanda per un ruolo di ingegnere del software?

Con oltre dieci anni di esperienza nella programmazione e una laurea in CS, mi ci sono voluti circa un mese e mezzo di pratica quotidiana per prepararmi al colloquio. “Pronto”, per me, è ambiziosamente definito come la capacità di affrontare quasi ogni domanda di intervista tecnica in 30 minuti o meno e raggiungere una soluzione ottimale. Quanto segue si basa su ciò che ho fatto per prepararmi: il tuo chilometraggio può variare.

Ingredienti:

  • Circa due anni di solida esperienza di programmazione
  • Matita e carta
  • Cracking the Coding Interview ( CTCI )
  • Il tuo libro sugli algoritmi preferito
    • Introduzione ad Algorithms, The Algorithm Design Manual e Programming Pearls sono alcune buone scelte. Potrei suggerirti di andare a bassa tecnologia e acquistare copie fisiche?
  • Due o tre ore al giorno
  • Altamente raccomandato: lavagna
  • Altamente raccomandato: grado CS
  • Opzionale: MIT OpenCourseware o un altro sito di apprendimento

Indicazioni :

1) Scopri il più possibile sulla procedura di intervista di Google (giorni 1–2)

Proprio come una comprensione incompleta di una domanda tecnica ti rovinerà durante l’intervista vera e propria, la disinformazione deraglierà la tua preparazione che ti porta ad essa. L’ho imparato nel modo più duro quando ho fallito al mio primo tentativo dopo aver enfatizzato i rompicapo nello studio di algoritmi e strutture di dati.

Inizia con la fonte: controlla google.com/careers per informazioni su come Google assume. Quindi guarda questo video di Google su ciò che gli intervistatori cercano nell’intervista e infine guarda un’intervista di esempio con veri ingegneri di Google.

Una volta che hai una solida base, ti consiglierei di leggere leggendo CTCI . Concentrarsi in particolare sui capitoli 5 e 6 intitolati Domande comportamentali e domande tecniche .

Quando finalmente leggerai il mio breve articolo sulle sei cose che devi assolutamente fare durante l’intervista vera e propria, dovresti avere una buona comprensione di come appare un candidato ben preparato.

2) Benchmark te stesso (giorni 3-5)

Ora che sai quanto devi essere preparato, scopri dove sei adesso. Usa CTCI per questo. Prendi un paio di domande da ogni sezione e risolvile usando i sei passaggi che ho menzionato in precedenza. Tieni traccia di quanto tempo impieghi per raggiungere una soluzione ottimale per ogni problema che risolvi.

Se e solo se hai risolto il problema da solo, dai un’occhiata alla soluzione di accompagnamento per valutare come hai fatto. Hai raggiunto la soluzione ottimale o almeno progressi oltre la risposta della forza ingenua / bruta? Quanto ci hai messo? Il tuo codice è stato scritto nel minor numero di righe possibile?

Fallo per ogni sezione. Al termine, puoi dare la priorità alle sezioni che non hai fatto così bene in anticipo nel tuo regime di pratica e lasciare le altre sezioni per dopo. Dovresti ripetere questo esercizio appena prima del colloquio in modo da conoscere i punti deboli che vanno nel giorno del colloquio.

3) Crea un elenco di studio (giorni 3-5)

Utilizzando i dati acquisiti dal passaggio precedente, crea un elenco prioritario delle cose che devi studiare. Questo elenco dovrebbe includere:

  • Memorizzare due buoni algoritmi di ordinamento e il loro Big-O
  • Memorizzare la ricerca binaria
  • Memorizzare come implementare strutture di dati di base come hashmap, elenco collegato, stack, coda e alberi (n-ary, trie, heap) e le loro complessità Big-O
  • Memorizzazione di algoritmi di attraversamento di grafici (BFS, DFS e un algoritmo di percorso più breve come quello di Dijkstra)
  • Poteri memorizzanti di 2
  • Esercitati a manipolare i bit (lavorando con bit map, bit shifting)
  • Terminologia della programmazione orientata agli oggetti (astrazione, eredità, coesione, accoppiamento)
  • Conosci le raccolte e le API matematiche per il tuo linguaggio di programmazione specificato
  • Ricorsione, backtracking e memoization
  • Rivedi i principi della matematica e delle statistiche discrete di base

Tutto questo è trattato in CTCI e nel tuo libro sugli algoritmi preferito. Nota: il punto della memorizzazione è capire! Probabilmente non ti verrà mai chiesto di scrivere un algoritmo alla lettera. Piuttosto, dovresti conoscerli abbastanza bene da poterli usare in modo creativo per risolvere un problema che non hai mai visto.

4) Pratica algoritmi e strutture dati ogni giorno (giorni 6–30)

Scegli due o tre voci dal tuo elenco e impegnati circa due o tre ore al giorno lavorando su queste cose (ad esempio 1 ora prima del lavoro, pausa pranzo, 1 ora dopo il lavoro). Mentre memorizzi le cose, mettiti alla prova scrivendo un algoritmo o una struttura di dati su carta o su una lavagna. Annota il caso peggiore e le complessità dello spazio Big-O per l’algoritmo quando hai finito. Controlla sempre il tuo lavoro, sempre!

Ora copia ciò che hai scritto sul tuo IDE preferito e compila. Prendi nota di eventuali errori di compilazione in modo da poterli evitare quando ripeti nuovamente l’esercizio. Puoi e dovresti anche creare unit test per verificare la correttezza del tuo codice.

Continua fino a quando non puoi trascrivere e compilare il codice senza errori logici o sintattici.

5) Affrontare quante più domande di programmazione possibile (giorni 16–30)

A questo punto, dovresti avere una buona padronanza delle competenze necessarie per avere successo sulla domanda dell’intervista. A partire da CTCI, affronta ogni singolo problema di programmazione che puoi, sempre usando i sei passaggi. Dedica circa la metà del tuo tempo di studio a questo mentre trascorri l’altra metà a rivedere gli articoli dal tuo elenco di studi.

Se stai andando bene, probabilmente inizierai a rimanere senza domande nel libro. Puoi trovare tonnellate di campioni reali online da siti come CareerCup o Interview Cake. Oppure usa il tuo motore di ricerca preferito. Ne conosco uno abbastanza buono che puoi usare;).

Esercitati alcune volte con un’altra persona, sia con qualcuno tecnico che con qualcuno non tecnico. Chiedi loro se:

  • Sembravi rilassato
  • Sembravi un risolutore di problemi disciplinato
  • Hai continuato a pensare ad alta voce durante l’intero esercizio

6) Rilassati e dormi bene (giorno 30)

Congratulazioni! Hai lavorato molto duramente. Non c’è nient’altro che tu possa fare. Rilassati ed entra nel tuo buon posto. Sei arrivato così lontano. Ciò significa che o ti piace davvero la programmazione o che non ti fermerai davanti a nulla per ottenere quel lavoro su Google. Penso che apprezzerai davvero la tua esperienza di intervista. Assicurati di divertirti! Non vedo l’ora di vederti nella sala riunioni.

Trova questo e altri articoli su https://anthonydmays.com .

( Esempio: è possibile utilizzare il seguente approccio, per un piano di un mese – circa 120 ore (30X4) – se 4 ore al giorno o 240 ore (30X8) Se 8 ore al giorno)

È necessario seguire un approccio molto organizzato e disciplinato per preparare il lavoro di ingegneria del software su Facebook / Google / Amazon / Microsoft ecc.

In realtà tutte queste società, ad esempio MS, Google, Amazon, Facebook, Apple seguono un approccio su cui misurare il processo di pensiero di un candidato.

E usano diversi mezzi per valutarlo, ma sì, la maggior parte di loro usa algoritmi / Strutture dati / Domande aperte (se hai fatto domanda per un lavoro di ingegneria del software) come uno degli approcci per valutare il talento. base per sviluppare le tecnologie).

Per abituarsi ad algos / struttura dati / codifica, è necessario aver compreso / praticato il minimo, ad esempio:

(Step-1): dovresti avere una comprensione pratica degli algoritmi (ad esempio quando usare BackTracking, quando usare Divide and Conquer, Perché è richiesto il doppio hash ?, Dove è possibile applicare il concetto di forza bruta?) ( 50 o 25 ore).

(Passaggio 2): è necessario avere una comprensione pratica delle strutture dati, ad es. (Casi d’uso pratici relativi a: quando utilizzare il buffer circolare o quando utilizzare l’elenco adiacente o la combinazione di entrambi o qualcos’altro per risolvere il problema).
(50 o 25 ore)

(Passaggio 3): è necessario praticare diversi problemi di codifica per implementare le cose apprese dal passaggio 1 e dal passaggio 2 (è possibile effettuare le seguenti operazioni scegliere qualsiasi linguaggio di codifica per la propria scelta (C, C ++ o Java o Python o PHP o chiunque altro).
(50 o 25 ore)

(Step-4): Risolvere il problema non significa solo risolverlo, ma capire il modo migliore per risolverlo, ad es. Il problema tecnico dato può usare vari modi per arrivare alla soluzione, e potresti voler usare quello ottimale . (Come connettere la soluzione data con le risorse di elaborazione / memoria, ad es. Memoria / potenza di elaborazione)
(50 o 25 ore)

Più importante.

Tuttavia, oltre alla programmazione, potrebbe essere necessario comprendere il concetto principale per l’intervista è mantenere l’intervista attiva e ciò richiede alcune azioni da parte vostra, come le seguenti:

Devi parlare.

Devi spiegare.

Devi discutere.

Devi esprimere le tue opinioni.

Devi capire chiaramente le domande che ti vengono poste.

È necessario comprendere l’espressione e la mentalità dell’intervistatore per comprendere tali domande.

Potrebbe essere necessario porre domande appropriate per comprendere la domanda o qualsiasi altro argomento di discussione. (50 o 25 ore)

E anche :

Prepara: “Per favore, parlami di te stesso”, “Le tue abilità hanno riguardato un ulteriore interesse positivo / negativo”, Nozioni di base per i concetti di informatica più necessari o qualsiasi cosa tu abbia presentato nel tuo “CV / Riprendi”.
(10 o 5 ore)

Sopra c’è solo un piano di esempio, puoi personalizzare il modo che desideri (ad esempio da 50 ore a 10 ore o qualcos’altro) – Fai clic su Amazon per trovare i libri migliori di cui potresti aver bisogno (ad esempio algoritmi di cormen)

(Qui Google non significa Google, significa qualsiasi azienda che è molto creativa per introdurre i prodotti relativi all’informatica).

A questa domanda hanno risposto innumerevoli volte reclutatori, impiegati e candidati a pieno titolo. Ma lo riassumerò per te in base a ciò che ho fatto e ai miei errori.

    1. Revisionare il funzionamento e l’uso di strutture di dati popolari come elenco collegato, alberi (binario, treap, (rosso nero, avl: opzionale)), code prioritarie, heap (min, max heap), stack, hashtable
    2. Impara l’equivalente di queste strutture di dati teorici nella lingua che preferisci. ad es. in Java hai HashMap, LinkedHashMap, TreeSet, HashSet, ecc.
    3. Scopri le differenze di implementazione in questi come devi scrivere codice reale, non pseudo codice durante l’intervista.
    1. Passa attraverso algoritmi standard che apprendi a scuola, ad esempio diversi algoritmi di ordinamento, traversate grafiche, MST, percorso più breve, ecc.
    2. Scopri la notazione Big O e assicurati di poter dedurre la complessità temporale di qualsiasi algoritmo (almeno quelli che scrivi)
    3. Prestare attenzione alla complessità dello spazio. Modifica 1: questo è davvero importante. Ti renderai conto di questo quando scrivi effettivamente il codice. La quantità di spazio sprecato in strutture di dati ausiliari e array e hashap casuali per vari scopi è fenomenale.
    1. Esercitati a implementare 1 , 2 nella lingua che preferisci. Durante l’implementazione, prova a scrivere codice senza riferimento esterno per cose come ottenere l’input della console, operazioni sui file e così via. Se fai riferimento, assicurati di non dover guardare di nuovo. Modifica 1: Questo ti porterebbe davvero nella zona di comfort della lingua in cui, fino ad oggi, pensavi di essere un esperto.
    2. Implementa versioni diverse ciascuna ottimizzata per la complessità del tempo o dello spazio poiché ti verranno dati problemi in cui l’input richiede molto spazio e richiede molto tempo per l’analisi. Quindi devi pensare in 2 dimensioni (tempo e footprint di memoria. Modifica 1: ad esempio, prova ad implementare versioni sul posto dei vari algoritmi di ordinamento che hai studiato.
  1. Pratica domande di intervista. Prendi un libro come Cracking the coding colloquio o Programming Challenges di Skiena e risolvi un numero considerevole di problemi sia su PC con IDE che su carta / lavagna. Sforzati di risolverlo fino alla fine, indipendentemente da quanto sia lenta la tua risposta. Modifica 1: Inizia con una soluzione di forza bruta. Sempre. Dopo averlo annotato, sarai in grado di trovare cose che possono essere fatte più velocemente. Credo che l’ottimizzazione sia più strutturata se eseguita in modo incrementale. Questo dà anche all’intervistatore la possibilità di vedere la tua logica. Infine, NON dimenticare la fottuta parentela HashMap, perché è semplicemente fantastica. Un esempio di ottimizzazione incrementale sarebbe: fare una forza bruta n ^ 2 ricerca -> n log n sort, seguita da ricerca binaria -> HashMap,
  2. Esercitati a risolvere i problemi sulla lavagna e prova a esprimere la tua logica non appena arrivi alla soluzione. Devi avere spiegazioni valide per scegliere un particolare algoritmo o una struttura di dati. Modifica 1: dopo averlo fatto alcune volte, prenditi il ​​tempo da solo. Semplicemente perché non puoi prenderti per sempre. La mia ultima intervista è stata sbagliata perché ho impiegato troppo tempo e non ho articolato chiaramente le mie idee.
  3. Queste sono le cose più importanti dell’IMO. Ho fatto un errore non praticando molto. Prova a completare i passaggi 1,2 in 1,5 settimane max. Trascorri almeno una settimana per risolvere problemi a te sconosciuti su carta o blocco note (senza codice completo). 1/2 giorni sulla codifica della lavagna.

    Preparazione mentale

    1. È altrettanto importante non farsi prendere dal panico. Potrebbe essere utile se cerchi intenzionalmente di pensare di essere migliore degli standard di Google.
    2. Se sei preso dal panico o sei intimidito dalla straordinaria bellezza del lavoro che svolgono o dagli informatici rockstar che hanno a bordo, sicuramente non ce la farai.
    3. Mantieni la calma, rimani concentrato. Non perdere tempo.
    4. Supponiamo che le cose andranno male. In questo modo, l’unica emozione che potresti mai provare durante l’intervista è l’eccitazione di aver capito come risolvere il problema.
    5. Poni domande probanti su quale squadra e su quali tecnologie l’intervistatore sta lavorando / su. Questo dà loro la possibilità di parlare e sentirsi bene con se stessi. Mostra un po ‘di interesse ..

    Sii gentile con il reclutatore, non in modo da leccare le scarpe, ma sii gentile e cortese. Rispondi alle mail in tempo. Sii gioviale, visto che vedono un sacco di fanatici di Google ogni giorno.

    La mia risposta potrebbe non essere perfetta. Ma penso che farai bene se pianifichi la tua preparazione in questo modo.

    Dipende in gran parte da quanto tempo hai in questo mese, ma supponiamo che tu possa dedicare la maggior parte della giornata.

    Per una posizione di ingegnere del software ci si può aspettare principalmente domande di progettazione algoritmica e di sistema. Quindi è necessario assicurarsi di poter risolvere i problemi algoritmici di base e codificare rapidamente le soluzioni corrette. Inoltre, è necessario creare alcuni retroscena nel campo dei grandi sistemi distribuiti come quelli creati e utilizzati da Google.

    Come puoi farlo?

    Per gli algoritmi esiste una serie di argomenti di base che è assolutamente necessario conoscere per essere preparati a ciò che potrebbe venire durante un’intervista. Devi essere in grado di valutare la complessità del tempo e dello spazio di una soluzione e anche di sapere come utilizzare determinati algoritmi e strutture di dati.

    Ecco un elenco di esempio: ordinamento, ricerca binaria, algoritmi di stringa, grafici, programmazione dinamica, array, elenchi, stack, heap, alberi binari, alcune tecniche di manipolazione dei bit e matematica semplice come GCD, numeri primi, geometria semplice.

    Ho sempre detto che TopCoder è un ottimo posto per imparare su questi e anche esercitarsi a usarli in problemi algoritmici reali. In HiredInTech abbiamo raccolto un elenco di importanti argomenti algoritmici, che sono principalmente coperti dai tutorial e dai problemi di TopCoder: http://www.hiredintech.com/learn … (richiede la registrazione gratuita).

    Certo, ci sono molti grandi libri che possono insegnarti algoritmi ma, dato il tuo tempo limitato, potrebbero essere difficili da coprire. Uno di questi libri è, ovviamente, “Introduzione agli algoritmi”.

    Tieni presente che non basta imparare gli algoritmi o aggiornare le tue conoscenze. Devi dedicare la maggior parte del tuo tempo a risolvere problemi reali. Direi che in TopCoder i problemi della divisione 2 sono molto adatti. Anche i problemi più semplici (250 punti) della Div 1 possono essere fatti.

    Esistono altri sistemi giudiziari online. Alcuni di questi sono elencati nei link che ho dato sopra. Altri argomenti sono discussi in questo thread Quora: dove posso trovare problemi di algoritmo / struttura dei dati difficili?

    Se puoi, passa la maggior parte dei tuoi giorni a sbattere contro i problemi del tuo giudice online preferito. Esegui le tue soluzioni contro i test e guarda come va. In TopCoder ci sono soluzioni a tutti i problemi, quindi anche questo è molto utile.

    Ricorda che durante le interviste in loco codificherai su una lavagna bianca , quindi assicurati di esercitarti a farlo. È molto diverso dall’uso di un IDE.

    Per quanto riguarda le domande sulla progettazione del sistema , è necessario dedicare un po ‘di tempo a quelle che dipendono dal proprio background attuale. Acquisisci familiarità con alcune domande di esempio che puoi trovare online. Queste domande di solito non sono così complicate in termini di dichiarazioni, ma ti permettono di avere una discussione molto ampia e hanno lo scopo di testare la tua capacità di vedere il quadro generale e i sistemi di progettazione al livello superiore.

    Esercitarsi per questi includerebbe pensare a come risolverli ciascuno. Se riesci a discutere le tue soluzioni con un altro professionista, ciò sarebbe molto utile. Impara a porre tutte le domande di chiarimento necessarie, poiché questa è una cosa molto importante. Impara a non assumere nulla. A mio avviso, c’è meno, se non la codifica, mentre mi preparo per le domande sulla progettazione del sistema.

    Infine, dedica un po ‘di tempo ad accertarti di poter parlare del tuo curriculum e di domande non tecniche relative a te.

    Nelle ultime 1-2 settimane, se possibile, chiedi a un tuo amico di condurre una falsa intervista con te . In questo modo imparerai a valutare te stesso durante una vera intervista e ti mostrerà dove ti trovi. Durante le interviste reali è molto importante essere ben preparati a risolvere i problemi, ma è anche necessario disporre di una strategia su come agire. Questo viene fornito con finte interviste.

    Infine, se puoi fare almeno 1-2 interviste con altre aziende, solo per acquisire esperienza, anche questo sarebbe utile.

    Va bene, se rimane solo un mese, sembra che l’unica cosa che puoi fare è aspettare e tenere le dita incrociate. Tuttavia, ci sono tonnellate di cose che potresti fare per migliorare le tue possibilità di essere assunto. Consentitemi di condividere la mia esperienza, è più di un mese, ma comunque una linea temporale molto breve.

    • Acquisire familiarità con la struttura e l’algoritmo dei dati di base. Questa è la base di tutte le interviste ai software engineer e la maggior parte degli intervistatori presume che tu abbia già avuto una buona conoscenza e una volta scoperto che non hai familiarità con alcune cose di base, potresti essere nei guai.
    • Immergiti nelle domande per l’intervista. Ci sono così tante fonti come http://www.glassdoor.com dove puoi trovare tonnellate di domande sul colloquio che puoi preparare. È quasi impossibile per te finirli tutti, ma una volta che ti senti debole in un particolare tipo di domande, fai qualche indagine, che ti aiuterà a risolvere un sacco di domande. Anche in questo periodo di preparazione, prova a scrivere il codice sulla lavagna o almeno sui documenti, che ti renderai conto di quanto sia diverso dalla scrittura con i tuoi editor di testo preferiti.
    • Fai pratica con finte interviste. È una grande esperienza per te praticare in un modo in cui non puoi fallire. Puoi farlo con i tuoi amici e intervistarli. Ho anche ricevuto la mia finta intervista da http://www.gainlo.co i cui intervistatori lavorano su Google, Facebook ecc. E mi hanno dato tonnellate di feedback.

    Personalmente trovo l’intervista simulata il modo più efficace perché avrai una sensazione completamente diversa quando pensi e risolvi i problemi di fronte a una persona. Sarai nervoso e potresti fallire anche alla domanda più semplice. Tuttavia, se non disponi di una buona base per la struttura e l’algoritmo dei dati di base, torna al suggerimento n . 1 .

    Ecco un piano di tre settimane che avevo redatto mentre apparivo per le mie interviste. Mi ha aiutato a garantire un’offerta da Google. Spero che possa essere utile anche a te.

    Alcune informazioni su di me, sono stato selezionato per le interviste sul posto di Google dopo aver eliminato Google APAC durante il mio ultimo anno di laurea (settembre 2016). Il tempo tra l’invito in loco e l’intervista è stato di circa tre settimane . A ciò sono seguite tre settimane di intenso impegno per prepararmi al D-Day.

    Sfondo precedente:

    • Corsi: ho avuto una precedente esposizione agli algoritmi attraverso i miei corsi universitari
    • Programmazione competitiva: usato per competere in concorsi di programmazione competitiva fino alla fine del mio secondo anno (anche se rigorosamente come un hobby; mi classificherei come sopra-noob). Questo mi ha aiutato a sviluppare un talento per pensare rapidamente e codificare soluzioni.
    • Progetti: progetti multipli. Ho sempre cercato di esplorare e conoscere nuovi campi; principalmente lavorando a progetti stimolanti. Se necessario, puoi fare riferimento alla mia risposta su possibili progetti secondari per creare un buon profilo per un’azienda tecnologica.
    • Familiarità con la programmazione: aveva appena partecipato a Google APAC e aveva un grado decente. Inoltre, data la mia precedente esperienza di programmazione competitiva, sono riuscito a programmare abbastanza comodamente.

    Questa sarebbe stata la mia prima (corretta) intervista in una società tecnologica, quindi ero nervoso a causa della mancanza di tempo per la preparazione. Mi sono avvicinato al seguente piano per le prossime tre settimane. Si noti che questo piano dovrebbe essere valido anche quando il periodo di tempo è maggiore, ad esempio mesi.

    Prima settimana:

    Questa settimana si occupa principalmente di dare il via ai preparativi e di entrare nel vivo. Ci concentriamo principalmente sull’essenziale in questo momento.

    • Ricerca sul processo di intervista: leggi le esperienze di intervista di altri candidati e familiarizza con il processo di intervista. Alcune risorse includono:
    • Sito ufficiale di Google , Blog
    • Libri di aiuto per l’intervista (ad es Sezione I-II di Cracking the Coding Interview ) (scelta personale)
    • quora
  4. Revisionare le strutture dei dati e gli algoritmi: Nel mio caso, ho sfogliato le diapositive delle lezioni del corso sugli algoritmi insegnati nel nostro college. Mi sono concentrato principalmente su quanto segue,
    • Rivedi la tua conoscenza delle strutture dati . Presta particolare attenzione a pile, code, mucchi, mappe hash e alberi .
    • Passa attraverso i paradigmi algoritmici standard ( Greedy Algorithms, Dynamic Programming, Divide and Conquer, ecc .).
    • Risolvi i relativi compiti e corsi

    Seconda settimana:

    Le cose iniziano a diventare serie a partire da questa settimana. Ormai avremmo dovuto finire di costruire le nostre basi.

    • Scelta del linguaggio: scegli il linguaggio di programmazione ( C ++ (Personal Choice), Python e Java sono scelte popolari tra i candidati) che utilizzerai per codificare le soluzioni durante le tue interviste. Spazzola le basi del linguaggio e osserva le interfacce / funzioni di strutture di dati comuni come array, stack, code, heap e mappe hash .
    • Codifica lavagna: esercitarsi nella codifica su lavagne bianche (o Google Docs ) nella lingua scelta in precedenza.
    • Targeting di domande di intervista: inizia a risolvere i problemi sui siti contenenti banche di domande di intervista. Compilano i problemi utilizzando input di altri candidati che li rendono un luogo molto popolare per esercitarsi nei problemi specifici dell’intervista. Esempi di tali risorse sono,
    • InterviewBit (scelta personale)
    • LeetCode
    • GeekForGeeks
    • Libri di esercitazione di intervista (ad es. Cracking the Coding Interview ) (scelta personale)

    Terza settimana:

    Entriamo nell’ultima settimana che è principalmente per il consolidamento di ciò che abbiamo imparato fino ad ora. Se necessario, puoi anche estendere parzialmente la fase di pratica del problema a questa settimana (la pratica extra non fa mai male a nessuno!).

    • Interviste di progettazione del sistema: ormai dovremmo essere abbastanza a nostro agio con problemi algoritmici. Ora ci concentriamo su un’altra classe di problemi: la progettazione del sistema . Personalmente amo questi problemi, poiché penso che aiutino a dare un giudizio molto migliore al candidato. Come suggerisce il nome, questi problemi riguardano la progettazione di sistemi. Ci sono molte risorse a cui puoi fare riferimento,
    • Risorse gratuite: HiredIn , Gainlo (scelta personale)
    • Corsi a pagamento: Grokkin
    • Libri di esercitazione di intervista (ad es. Cracking the Coding Interview ) (scelta personale)
  5. Devo dire che non avevo un round di progettazione del sistema nella mia serie di interviste (Google mi ha trollato) ma ho affrontato tali domande durante l’intervista per altre società (come Microsoft e Uber ) e hanno guadagnato rapidamente trazione.
  6. Esercitati a risolvere le domande “ad alta voce”: esercitati a pronunciare i tuoi pensieri mentre affronti i problemi, poiché questo è ciò che dobbiamo fare durante le interviste. Convinci un amico a rivedere la tua esibizione (un pezzo di cioccolato dovrebbe fare il trucco).
  7. Interviste simulate: non si può sottolineare l’importanza di un’intervista simulata prima della cosa reale.
  8. Il giorno prima dell’intervista:

    • Fai le valigie, sali a bordo di un volo e fai il check-in nel tuo delizioso hotel (tutto sponsorizzato da Google).
    • Ormai avresti dovuto fare abbastanza, rilassati e lascia che le cose scorrano da sole.
    • Riposati e goditi alcune attività che non distraggono (Uscire a fare una passeggiata, viaggiare per la nuova città).
    • Infine, la cosa più importante di tutto il viaggio. Goditi il ​​fantastico buffet offerto dal fantastico hotel che Google ha prenotato per te! (Scelta personale)
    • Dormi bene. Ti auguro il meglio!

    Google sembra chiedere a ciascun candidato di scegliere una lingua in cui sei bravo. Assicurati di sceglierne uno che conosci. Ciò significa che se scegli Java, conoscerai meglio generici, iteratori, eredità ecc. Gli intervistatori vengono selezionati in base alla lingua scelta.

    Avevo programmato il mio colloquio esattamente un mese dopo essere stato informato. Ho analizzato i miei vari algoritmi. Usato il famoso libro CLRS. Conoscere l’algoritmo è una cosa, codificarla è un’altra. Assicurati di poter scrivere un programma per ogni algoritmo.
    Gli intervistatori si aspettano che tu codifichi ogni domanda che ti pongono e penso che questo codice sia inviato anche quando le tue interviste devono essere valutate.

    A parte questo, penso che risolvendo alcuni problemi su molti dei siti di interviste di codifica come top-coder e spoj, il progetto euler potrebbe affinare le tue capacità di codifica.

    Inoltre a volte la soluzione più semplice è il punto di partenza. Trovo che per risolvere molti problemi a partire da un approccio a forza bruta e il miglioramento sia un buon processo di pensiero che ti aiuta a capire molte cose.

    Avere le basi giuste sembra qualcosa che si dovrebbe fare. Assicurati di comprendere tutti i tuoi concetti da zero, poiché gli intervistatori fanno alcune domande per vedere se conosci le tue basi.

    Le interviste sono un processo molto divertente e pensare le cose in modi diversi dovrebbe portarti alla soluzione

    Ho posto la domanda al mio amico Paul Carleton mentre ha intervistato Google 3 volte (anche se ora lavora a Stripe). Una volta come stagista, una volta per un ruolo a tempo pieno, e poi una terza volta dopo aver lasciato Google e tornare.

    Di recente ha trascorso un mese in preparazione per le sue varie interviste (non solo Google) e si è concentrato sulla preparazione per due tipi di interviste:

    • il formato di domanda lavagna / algoritmo / teoria CS
    • il test pratico delle competenze in cui porti il ​​tuo laptop nell’ufficio dei datori di lavoro per risolvere un problema di codifica

    Google si concentra principalmente sul primo.

    Paul ha menzionato le due risorse più utili che ha usato per preparare domande sullo schermo del telefono e sulla lavagna di Google:

    • colloquio.io – interviste peer-reviewed su screenshare
    • Torta di intervista: Programmazione delle domande di intervista

    Molti formati di interviste di ingegneria si concentrano su domande “progressive”, ciò significa che l’intervistatore avrà ulteriori domande per te a seconda della velocità con cui riesci a superare le loro domande iniziali. Ti chiederanno un sacco di dettagli accidentali – “what-ifs” per esercitarti per la tua profondità di conoscenza sull’argomento, non solo per ampiezza.

    Esercitarsi con un’altra persona è estremamente utile per prepararti ad essere in grado di schiacciare l’aspetto profondo delle domande.

    Per maggiori informazioni sull’intervista a Google, dai un’occhiata all’intervista di 44 minuti che ho condotto con lui sulla sua esperienza di intervista e il suo ruolo attuale in Stripe:

    Preparazione alle interviste tecniche con Paul Carleton di Stripe

    Ecco il mio cheat sheet di 15 giorni per crackare l’intervista a Google
    Innanzitutto ci sono in genere tre tipi di domande:
    1. Domande sul design
    2. Domande dell’algoritmo
    3. Domande sulla codifica

    Hai bisogno di una buona conoscenza di tutte le strutture dati e gli algoritmi di base. Questo non significa che devi leggere Knuth o Cormen – qualsiasi libro di base lo farà. In genere, per qualsiasi domanda relativa all’algoritmo durante l’intervista, prova prima a dividere e conquistare seguito da Programmazione dinamica. Alcune idee su Trie, Suffix Tree e Bloom Filter possono essere di aiuto (facoltativo).
    Per domande di progettazione, esercitati a progettare sistemi intorno a te come progettare un accorciatore di URL, come progettare un indice di ricerca, come progettare un sistema di prenotazione ferroviaria ad alta disponibilità, ecc. Non è necessario trovare la soluzione corretta: pratica semplicemente l’approccio.
    Risolvi le domande il più possibile dalla coppa della carriera.
    Preparati a scrivere il codice nell’intervista nella tua lingua preferita.
    Qualche idea sui sistemi distribuiti aiuta: leggi il blog di Werner Vogel. E fai sempre domande – a volte devi fare delle ipotesi per risolvere un problema e l’intervistatore si aspetta che tu faccia delle domande.

    Questo mi ha aiutato a rompere due volte l’intervista a Google.

    Questa è quasi la stessa domanda per cui ho scritto questa risposta: la risposta di Marc Donner a Come dovrei prepararmi per l’intervista telefonica con Apple per uno stage di ingegneria del software la prossima settimana?

    Con l’eccezione che cambiamo Apple in Google e da una settimana a un mese.

    La risposta è la stessa:

    Ci sono due parti per la risposta a questa domanda.

    Tecnicamente, se non sei preparato ora, non c’è nulla di sostanziale che puoi fare in un mese per cambiarlo. Ci vogliono anni di formazione ed esperienza per prepararsi a diventare un ingegnere del software competente e una settimana più o meno non può fare una differenza significativa.

    La prontezza emotiva è un’altra storia. La fiducia in se stessi è davvero la chiave per intervistare la performance. Ciò non significa arroganza, ma capacità di mantenere la calma nel momento. Evitare lo stress e il panico è la chiave qui.

    Ci sono due pezzi su cui puoi lavorare per la prontezza emotiva:

    1. Rivedere le competenze e le tecniche di base di ingegneria del software. Le interviste riguardano generalmente la tua padronanza delle conoscenze di base, quindi prenditi del tempo e rivedi alcuni dei tuoi libri di testo. Non scatenarti qui, consulta il sommario e leggi le intestazioni delle sezioni in modo riflessivo. Forse rivedi parte del materiale su cui potresti essere arrugginito – analisi dell’algoritmo, diciamo, o strutture di dati o progettazione OO. Qualunque cosa colpisca la tua fantasia. Il punto principale qui è rinfrescare la tua memoria per tutto il vocabolario divertente e le tecniche che potresti non aver usato esplicitamente nell’ultimo anno o due. Leggi alcuni dei tuoi vecchi codici, se sono facilmente disponibili. Pensa ad alcuni dei tuoi progetti passati, quelli che hai amato e quelli che hai odiato. Pensa ai motivi del successo e dell’insuccesso e alle lezioni che hai imparato dai progetti.
    2. La tua mente e il tuo corpo sono collegati, nel caso non l’avessi notato. Prenditi cura del tuo corpo e aiuterà la tua mente. Dormi molto. Mangia e bevi regolarmente e con moderazione … mangia le cose che ti piacciono (“confort food”) ma non in eccesso. Non mangiare cose che non sono d’accordo con te o bere in eccesso. Prendi un ritmo regolare su base giornaliera tra ora e l’intervista. Fai delle lunghe passeggiate o altri esercizi moderati adatti al tuo attuale livello di forma fisica e attività.

    Rilassare. Leggi un buon libro, se questo ti aiuta. Guardare un film. Ascoltare la musica. Hangout con la famiglia o gli amici a proprio agio.

    Vorrei condividere come ho fatto i miei preparativi per Google Interview e quali sono state le diverse risorse che mi hanno aiutato di più. Ci sono tonnellate di strumenti disponibili (siti, boot camp, app, ecc.) E ne ho provati alcuni. La seguente risposta è un riepilogo del mio viaggio per i preparativi di Google Interview, che indica quali risorse e indicazioni si sono dimostrate estremamente utili. Ha funzionato per me, si spera, aiuterà anche te. (Si prega di condividere se avete commenti)

    Prima di intervistare Google, ho fatto i miei preparativi per 3-4 mesi. Per me, l’ostacolo maggiore era la codifica della lavagna. Non mi sentivo a mio agio con questo, poiché questo non è quello che fai di solito nel tuo lavoro quotidiano. Il secondo problema è stato da quando sono stato intervistato da Google come candidato senior, dovevo dimostrare solide capacità di progettazione per soddisfare le loro aspettative.

    Quindi ho due suggerimenti per chiunque abbia in programma un’intervista con Google:

    • Continua ad esercitarti sulla lavagna finché non ti senti a tuo agio con la codifica, le strutture dati e gli algoritmi.
    • Non dimenticare di prepararti per le interviste di progettazione del sistema. I colloqui di programmazione sono diventati un prerequisito in questi giorni, la tua posizione effettiva (e il tuo stipendio, ecc.) È decisa in base alle capacità di progettazione che possiedi.

    Alla luce di tutto ciò, ora lasciatemi dichiarare il processo di intervista e alcune risorse per prepararmi a diverse parti di esso.

    Di solito c’è uno schermo del telefono seguito da un ciclo completo di interviste in loco presso Google (ho visto le persone rinunciare allo schermo del telefono con un buon riferimento interno). Esistono tre parti di un ciclo di interviste di ingegneria del software su Google, prova a concentrarti su tutte per la tua preparazione:

    1. Colloquio di programmazione: su una lavagna o su un computer reale. Questo è diventato un prerequisito per ottenere un’offerta. Se non riesci a codificare / risolvere il problema (o hai alcuni bug gravi nel tuo codice), è abbastanza difficile ottenere un’offerta. Buone risorse per prepararsi a questo tipo di intervista: Coderust 2.0 e LeetCode. Dovresti aspettarti almeno due interviste di programmazione in un ciclo.
    2. Intervista di progettazione del sistema: verifica le tue capacità di progettazione e la tua capacità di lavorare con servizi complessi e scalabili. La tua performance in queste interviste determina la posizione e lo stipendio che ti verranno offerti. Se hai lodevoli capacità progettuali, otterrai un’offerta più alta. Una buona risorsa per preparare questa intervista: Grokking the System Design Interview.
    3. Colloquio culturale . Durante questa intervista, le aziende vedono se un candidato sarebbe adatto alla propria cultura. Il candidato non deve mostrare alcuna bandiera rossa.

    Come le interviste di codifica, i candidati che non hanno trascorso abbastanza tempo a prepararsi per le interviste di progettazione del sistema (SDI) si comportano principalmente male. Ciò si aggrava quando intervisti nelle migliori aziende come Google o Facebook. In queste aziende, se un candidato non si esibisce al di sopra della media, ha una possibilità limitata di ottenere un’offerta. Inoltre, una buona prestazione in tali interviste si traduce sempre in una migliore offerta (finanziariamente), dal momento che le tue prestazioni riflettono sulla tua capacità di lavorare con sistemi complessi.

    Inoltre, tutte queste grandi aziende come i candidati che hanno familiarità con concetti di sistemi distribuiti come hash coerente, partizionamento dei dati, bilanciamento del carico, ridondanza e replica, teorema della PAC, ecc.

    Alcuni esempi di problemi di progettazione sono:

    • Progettazione di un servizio di accorciamento URL come TinyURL
    • Progettare Instagram
    • Progettare Twitter
    • Progettare Youtube
    • Progettare Facebook Messenger
    • Progettare Dropbox
    • Progettazione di un suggerimento tipografico
    • Progettare il Newsfeed di Facebook
    • Progettazione di Yelp
    • Progettare Uber

    Puoi anche vedere alcuni schemi comuni tra queste domande:

    1. Progettazione di un servizio di archiviazione / condivisione: Dropbox, Youtube, Instagram, ecc.
    2. Progettazione di un servizio che si occupa di dati geografici: Uber, Yelp, Lyft, ecc.
    3. Progettazione di un servizio di social media: Facebook, Twitter, Instagram, Snapchat, ecc.
    4. Progettazione di un servizio di comunicazione: Messenger, server Web ad alto traffico, ecc.
    5. Progettazione di un servizio relativo alla ricerca: motore di ricerca, crawler Web, ecc.

    Se vedi da vicino, ci sono molti requisiti di progettazione comuni tra i diversi servizi di una categoria, quindi condivideranno gli stessi obiettivi di progettazione, sfide e insidie.

    Spero che questo abbia aiutato!

    In Google sei sotto pressione e stress durante le interviste. In appena un mese, non diventerai molto meglio in CS di quanto non sia ora, quindi direi che ti concentri sulla gestione dello stress poiché lo stress è la cosa che ha fallito molte persone super intelligenti durante le interviste tecnologiche e molto di persone dimenticano di lavorare su questa abilità completamente, il che è strano, se pensi a quanti di noi fanno peggio durante le interviste di quanto siamo in grado di fare a causa dello stress e della pressione. Un modo per lavorare sulla gestione dello stress durante le interviste è quello di chiedere a un amico o un collega che è bravo in CS e che ha fatto l’intervista di sedersi con te in una sala conferenze con una lavagna e darti domande reali dalle interviste di Google (molte di questi possono essere trovati su careercup e glassdoor e geeksforgeeks). Cerca di risolvere ogni problema in mezz’ora, lassù sulla lavagna, chiedendo suggerimenti quando bloccato, parlando attraverso la soluzione mentre la scrivi sulla lavagna. Ispeziona le soluzioni online solo dopo l’intervista. Questo ti renderà più abituato all’ambiente durante le interviste e quando le interviste a Google si verificano effettivamente, la tua mente sarà più rilassata e in grado di pensare in modo chiaro e avrai meno probabilità di “spegnere” a causa di troppo stress . In bocca al lupo! (PS: ho appena completato questo processo e ho ricevuto un’offerta da Google!)

    La cosa migliore che puoi fare se hai un mese è esercitarti sulle precedenti domande di intervista poste da Google.

    Attualmente sto usando InterviewBit.

    Il sito è molto ben fatto, secondo me è molto meglio di CareerCup e GeeksForGeeks. Ha un curriculum strutturato con lezioni e compiti video per ogni argomento. È anche gamificato che lo rende divertente e ti tiene motivato a risolvere di più.
    Puoi impostare il tuo obiettivo di allenamento quotidiano in modo che corrisponda al tempo rimasto.
    Per completarlo in un mese devi impostare il tuo obiettivo su “Insane”

    Spero che questo sia di qualche aiuto:

    Dalla mia ricerca questo è il tipo di cose che ci si aspetta:

    Complessivamente:

    • Intervista telefonica in cui sono state poste domande di base sulla mia esperienza e sui miei obiettivi precedenti
    • Un’intervista di codifica telefonica relativamente semplice è paragonabile a:
    • Cinque interviste in loco
    • Quattro di queste interviste sono state di problem solving e codifica
    • Uno era basato sulla progettazione del sistema

    Domande di esempio:

    • Qual è stato il bug più difficile da risolvere in un progetto su cui hai lavorato?
    • Parlami di un progetto, Struttura dei dati
    • Alcune ottimizzazioni basate sulla geometria analitica
    • Supponiamo di avere una matrice ordinata di numeri interi (positivi o negativi). Si desidera applicare una funzione del modulo f (x) = a * x ^ 2 + b * x + c a ciascun elemento x dell’array in modo tale che l’array risultante sia ancora ordinato. Implementalo in Java o C ++. Gli input sono l’array ordinato iniziale e i parametri della funzione (a, bec).
    • Che tipo di software sei interessato a sviluppare.
    • In generale domande algoritmiche
    • Annota (un documento di Google è aperto) un algoritmo di ricerca ipotizzando uno scenario in cui le macchine passano e vogliamo controllare le licenze non necessariamente seguendo l’ordine dei caratteri sulla targa
    • Data una serie di incontri, trova il tempo che qualcuno trascorre in una riunione in conflitto con gli altri.
    • Usa il codice per generare un labirinto e come assicurarti che il labirinto generato abbia una soluzione.
    • Controlla se un puzzle di Sudoku è valido e un problema di grafica del computer

    Processo di feedback:

    1. Il processo ha richiesto oltre 2 mesi. Ho intervistato a (Londra, Inghilterra) nel marzo 2015.
    2. Ho fatto domanda online. Il processo è durato 2+ settimane. Ho intervistato a (Cambridge, East of England, England) nel febbraio 2015
    3. Ho fatto domanda online. Il processo ha richiesto oltre 2 mesi. Ho intervistato su Google

    Come prepararsi oltre questo:

    La risposta di Ridhish Guhan a Come devo prepararmi per il mio colloquio con Google se mi rimane 1 mese? la sua risposta è superba!

    Trasforma la lavagna in un tuo amico. Esercitati a risolvere le domande sulla lavagna. L’altra cosa che aiuta è un compagno di preparazione intervista e puoi dividere domande / argomenti.

    Ho fornito questa raccolta di risorse su molti altri thread. Sto copiando incollandolo qui:

    Libri:
    – Algorithm Design Manual: è un libro difficile da seguire ma il contenuto è davvero buono. Se sei una persona come me che ha difficoltà a leggere libri con molta teoria, allora ti consiglio di iniziare con domande di intervista e risolvere un paio ogni giorno. Leggi i concetti in modo selettivo in base alle esigenze di ciascuna domanda che stai risolvendo. Anche un’altra cosa che aiuta alla grande è avere un amico per la preparazione dell’intervista. Dividere le domande e discutere le soluzioni su base giornaliera / bisettimanale. Fai anche delle lavagne insieme sulle domande che stai discutendo.

    – Rompere l’intervista con il codice: ha una buona serie di problemi, ma non mi aspetto che si ponga una di queste domande esatte poiché questo libro è in circolazione da un po ‘di tempo ed è probabilmente la risorsa più conosciuta per la preparazione.

    – Come pensare agli algoritmi e alle interviste di programmazione esposte sono anche buoni libri.

    Siti internet:

    Coderust 2.0: Preparazione dell’intervista alla codifica più veloce utilizzando le visualizzazioni : buona serie di domande di intervista più recenti con spiegazioni e soluzioni di qualità. Consiglio di risolvere queste domande da solo e quindi di confrontare le risposte.

    LeetCode Online Judge : eccellente piattaforma di arbitri online per la preparazione di difficili problemi di intervista.

    – GeeksforGeeks: verifica i problemi risolti sul sito. Hanno anche ottime spiegazioni di soluzioni ottimizzate che sono state verificate da un pubblico piuttosto vasto.

    – Careercup: buone raccolte di domande. Nota che sono solo domande: non mi fiderò delle risposte sul sito di assistenza perché ho visto molte risposte vaghe / incomplete.

    Di recente ho pubblicato un post sul blog sulle aspettative di un’intervista di alto livello IC: sono stato nel mio attuale lavoro per un po ‘e voglio trasferirmi. Cosa devo aspettarmi dalle mie interviste? di Soban Hameed

    Inoltre, ecco alcuni suggerimenti sulla lavagna dal blog di coderust:
    Lavagna efficace durante le interviste di programmazione

    Secondo me, il modo migliore per fare bene un colloquio di programmazione è quello di aver fatto molte interviste di programmazione negli ultimi giorni prima di quella su cui si desidera avere un buon rendimento. Ho notato che nel corso della mia ricerca di lavoro a tempo pieno, in genere (con una certa varianza) ho ottenuto risultati migliori in quanto ho avuto più interviste. Alle tue prime interviste, probabilmente sarai nervoso, non saprai come usare la lavagna, avrai paura di porre domande e non parlare di soluzioni. Quando arrivi al 6 ° o 7 ° in un determinato mese, ti senti completamente rilassato.

    In breve, fai molte interviste di programmazione (idealmente presso altre grandi aziende tecnologiche).

    Codifica La preparazione dell’intervista è diventata semplice

    Puoi provare InterviewBit, un nuovo sito di preparazione alle interviste degli anziani IIIT-H ed ex dipendente di Facebook. Questo sito ha tutti i problemi e i concetti in un formato e una struttura adeguati che ti daranno un’esperienza di intervista, come dare suggerimenti e l’approccio della soluzione.
    Ci ho provato e mi piace molto il modo in cui si sono occupati anche dei minimi dettagli. Provaci! Dovrebbe sicuramente aiutarti a lungo termine.
    Inoltre, se lo fai bene, ti indirizzeranno per le migliori aziende per le interviste.

    Puoi dare un’occhiata al fondatore di InterviewBit, la risposta di Anshuman Singh qui nel link indicato di seguito:
    Come posso ottenere un lavoro su Facebook o Google tra 6 mesi? Ho bisogno di un piano di lavoro conciso per costruire un set di abilità abbastanza buono. Devo aderire ad altri start-up o costruire i miei progetti / start-up? Dovrei solo concentrarmi sulla pratica di strutture dati e algoritmi?

    Saluti!

    Di recente ho risposto a una domanda simile: la risposta di Prasoon Goyal a Come posso aumentare le mie capacità di programmazione entro 3-5 mesi ?. Ecco la risposta su misura per un breve periodo di tempo:

    In genere verrai intervistato su algoritmi / strutture dati (e capacità analitiche), programmazione e progettazione del sistema. Ecco una panoramica di come migliorare queste competenze:

    • Step 1: Algorithms : Ottieni questo libro – Algorithm Design: Kleinberg / Tardos. Per qualche ragione, questo libro non è così popolare come gli altri algoritmi disponibili, ma è molto ben organizzato. L’intera serie di algoritmi è ordinatamente divisa in alcuni capitoli: teoria dei grafi, algoritmi grezzi, divisione e conquista, programmazione dinamica , flusso di rete e alcuni altri argomenti vari negli algoritmi. Dovresti avere una buona comprensione di ciascuno degli argomenti sopra in grassetto – studia il capitolo tra qualche giorno e alla fine risolvi i 50 problemi. Poiché in ogni capitolo è presente solo un numero gestibile di problemi, è possibile risolvere la maggior parte dei problemi in un periodo di tempo ragionevole. A seconda della disponibilità di tempo, potresti voler risolvere solo una piccola parte dei problemi, da solo o con poco aiuto.
    • Passaggio 2: Strutture dei dati e programmazione : per questo passaggio, selezionare una lingua all’inizio e fare pratica utilizzando solo quella lingua. Trovo che Java sia il migliore per quanto riguarda le interviste – Orientato agli oggetti che aiuta a scrivere codice modulare più facilmente, ha un controllo del tipo che rende più facile il ragionamento sulla correttezza del codice (a differenza di Python), e ha buone librerie per strutture di dati e per gestione delle stringhe (diversamente dal C ++). Ho trovato Cracking the Coding Interview abbastanza buono. Ancora una volta, ci sono capitoli su ciascun argomento importante (anche se più dettagliato rispetto al libro sopra). Per ogni capitolo, ci sono una serie di circa 10 problemi. Di solito salto quelli più facili e scelgo solo 1 o 2 problemi più impegnativi dal set. A seconda del tuo livello, potresti voler fare lo stesso o provare tutti i problemi. Per ogni problema che risolvi, scrivi il codice da zero senza un IDE . E quindi scrivere casi di test. (In effetti, smetti di usare l’IDE il più possibile nel tuo lavoro quotidiano. Sarà una buona pratica per imparare la lingua su cui stai lavorando.) Al momento di scrivere il codice, pensa alla leggibilità, modularità ed efficienza del tuo codice. Infine, leggi le soluzioni fornite.
    • Passaggio 3: Progettazione del sistema : ancora una volta, l’intervista alla codifica presenta alcuni buoni problemi in quest’area. Praticali.
    • Passaggio 4: domande di intervista : in questa fase, vorrai esaminare le risorse online, come GeeksforGeeks e CareerCup.

    Quindi, in base alla tua autoanalisi, potresti voler tornare a uno o più di questi passaggi e continuare a lavorare su particolari abilità.

    Con un mese in mano, puoi prepararti in modo completo per il tuo colloquio su Google. Il duro lavoro e il lavoro intelligente sono la chiave!

    • Conoscere la struttura delle interviste:
    1. Primo – 2 interviste telefoniche
    2. Quindi – 4 o 5 interviste sul sito (un po ‘più complesse delle interviste telefoniche)
    3. Una delle interviste in loco sarà un’intervista a pranzo. A parte questo, le altre interviste sono tecniche. Ti verrà chiesto un mix di domande di codifica e algoritmo.
    • Come preparare. 0. Fai i compiti
    1. Fai i tuoi compiti. Tratta interviste come le lezioni: studia il materiale dei libri e fai pratica prima del test, ovvero dell’intervista.
    2. Preparati con le domande sul colloquio che sono state poste ai candidati. Preparare una banca di domande contenente domande poste in precedenza. È possibile utilizzare i dati su siti Web come Glassdoor e AmbitionBox.
    3. Esercitati scrivendo il codice su carta (NON su un computer). Metti alla prova il tuo codice a mano e solo dopo aver fatto tutto il possibile per perfezionare il tuo codice, quindi digitalo in un compilatore e guarda come hai fatto.
    4. È importante entrare nella zona per un’intervista. Non vuoi cancellare e non vuoi lasciarti niente da dire perché non hai idea di come iniziare. Avere una struttura nella testa per l’intervista ti mette nella mentalità di problem solving e ti consente anche di comunicare chiaramente con l’intervistatore.
    5. Le domande comportamentali di solito rientrano in diverse categorie: leadership, lavoro di squadra, sfide e successi. Dovresti identificare esempi con ogni categoria. Molti intervistatori pongono domande comportamentali comuni, come “Parlami di un tempo in cui eri in una squadra e qualcosa è andato storto”. Puoi anticipare domande come queste ed essere preparato in anticipo invece di trovarti in una posizione spiacevole durante l’intervista.
    6. Hai domande da porre preparate! Alla fine di ogni sessione di intervista, il tuo intervistatore di solito lascia un paio di minuti per le tue domande. Utilizzare questo tempo per porre domande significative. Non avere domande non è un buon segno, quindi assicurati di essere coperto.

    Puoi anche aiutare altri candidati a decifrare il colloquio e ottenere un lavoro, inviando la tua esperienza di intervista su questa pagina: Condividi domande e consigli per il colloquio | AmbitionBox

    Se sei un professionista esperto, non esitare a inviare la recensione della tua azienda su questa pagina: Scrivi una recensione | AmbitionBox

    Per accedere alle risorse gratuite per la preparazione al colloquio, visitare il Blog di Ambitionbox: una soluzione completa per tutte le esigenze relative alla preparazione del colloquio di lavoro.

    Condividi qui la storia della tua intervista – https://ambitionbox.com/contribute?review_name=InterviewAdvice&utm_source=Ambitionbox&utm_medium=QuoraFBInTw&utm_campaign=SocialMedia

    Scrivi qui le recensioni dell’azienda – https://ambitionbox.com/contribute/company-review?utm_source=Ambitionbox&utm_medium=QuoraFBInTw&utm_campaign=SocialMedia

    Leggi le recensioni dell’azienda qui Leggi le domande e i suggerimenti per l’intervista qui Esplora le aziende qui | Prova questo calcolatore salariale gratuito | Leggi l’intervista consiglia qui i blog | Preparati con questi test pratici

    Grazie per A2A, Manish Maheshwari.

    Alcune ottime risposte qui già. Solo alcune cose da aggiungere:

    Un mese è breve e lungo. Insomma, perché Google si aspetta spesso che tu conosca il mondo. Lunga, perché è appena il tempo di tenere la portata dell’attenzione per prepararsi.

    Comincerei con la creazione di un elenco di argomenti che devono conoscere. Google non è timido nel farti sapere cosa si aspettano. Se non ti hanno già inviato l’elenco degli argomenti, puoi sempre chiedere al reclutatore.

    Assicurati di praticare tutte e tre le cose importanti in un’intervista:

    1. Risoluzione dei problemi
    2. Scrivere codice fluente per il problema che hai appena risolto
    3. Aspetti comportamentali

    Per sapere che stai davvero progredendo, fai finte interviste con gli amici. È ancora meglio se lavorano già su Google 🙂

    More Interesting

    Come intervistatore sceglierai un intervistato che ha scritto il seguente codice per ruotare una matrice di 90 gradi a sinistra (senza utilizzare strutture dati aggiuntive) rispetto alla soluzione fornita nel libro di Gayle Laakmaan Cracking the Coding Interview?

    Quali sono alcune delle domande enigmatiche poste nelle interviste?

    In genere fallisco le interviste alla lavagna poiché non ho memoria enciclopedica / del dizionario del framework .net. Come posso avere più successo durante la parte tecnica del processo di intervista?

    L'esperienza conta nelle interviste di programmazione?

    Quali sono alcuni enigmi interessanti richiesti nelle interviste tecniche di programmazione informatica?

    Perché alcune aziende ti assegnano un incarico da portare a casa come parte del processo di intervista?

    Com'è stato il processo di intervista per un tirocinio in ingegneria del software con SoundCloud?

    Come possiamo sapere se un array, arr [], ha due indici distinti, i e j, dove abs (a [j] - a [i]) <= L e abs (j - i) <= K in O ( N) tempo e spazio O (K)?

    Come risolvere la seguente domanda in Java: ho due elenchi collegati, che rappresentano due numeri: l1: 2-> 3-> 4, l2: 7-> 8; aggiungi questi due numeri e memorizza il risultato in l1, cioè l1 dovrebbe diventare l1: 3-> 1-> 2

    Come prepararsi per le domande di intervista su Amazon HackerRank

    Su quali domande di base dell'intervista PHP / MySQL dovrei concentrarmi? Ho un'intervista tecnica a San Francisco in arrivo.

    Come devo prepararmi per un colloquio PHP con CodeIgniter?

    Come invertire un array usando la coda in O (n)

    Come trovo l'intervallo minimo che contiene un numero da ciascun array ordinato?

    Qual è il modo migliore di pensare ai problemi di scalabilità nelle interviste di programmazione?