Prossima intervista a Google, in cerca di un consiglio di preparazione [chiuso]

29

Bene, ho colpito i libri ovunque io sia. Ho un'intervista in arrivo, la prima via telefono, per una posizione di ingegnere del software. Ho letto tutti i post del blog, ho letto tutti gli account delle interviste (alcuni piuttosto vecchi) e Google stesso ha persino suggerito una lista di libri di lettura, nessuno dei quali avrebbe sorpreso nessuno qui. Tuttavia, dopo qualche tempo di preparazione, non posso scuotere la sensazione che ci sia un terreno così ampio da coprire, e non sono mai sicuro se andare con profondità o ampiezza. Mi sono ritrovato a riannodare un'intera area di compsci, solo per dimenticare la maggior parte dei dettagli nitidi mentre passavo a un altro.

Quindi, non so che ci sia una buona risposta a questa domanda, ma sto cercando qualche consiglio pratico su come affrontare le restanti settimane prima dell'intervista. Una parte del mio cervello è stanca per il cramming, e ovviamente il resto deve essere utilizzata per alcuni problemi difficili al mio attuale posto di lavoro.

    
posta Fast Fish 05.12.2010 - 03:22
fonte

4 risposte

30

Cose che dovresti sapere

  • Google vuole assumerti!

    La linfa vitale di qualsiasi azienda di software sono i suoi dipendenti e Google non è diversa. Sta cercando di assumere il meglio e il più brillante e le persone che conducono l'intervista vogliono farlo anche solo come te.

  • Google farà del suo meglio per valutarti nel modo più accurato possibile. È il loro lavoro.

    Google è un'azienda basata sui dati. Le decisioni di assunzione non sono decise dal responsabile fiat. Invece, ogni intervistatore prende appunti estesi durante l'intervista che viene combinato in un pacchetto. Questo pacchetto verrà quindi esaminato da un comitato separato , che alla fine prenderà la decisione. Quindi se non stavi "gelando" con uno dei tuoi intervistatori non preoccuparti! Ciò che conta è quanto ti esibisci bene nell'intervista.

Abilità che dovresti avere

Assicurati di rispolverare le seguenti abilità / tecniche prima del tuo colloquio. Anche se non ti viene fatta una domanda direttamente su di essi, rivederli può certamente portare la tua mente nella giusta mentalità.

  • Strutture dati

    Qual è la differenza tra una matrice e una lista collegata? Un albero e un grafico? Quando useresti l'uno sull'altro? Come avrebbe influito sulla velocità / sulla memoria?

    Una domanda di intervista non si conclude con una soluzione di lavoro. Essere in grado di spiegare il runtime del tuo approccio e quali tipi di compromessi potresti fare. Ad esempio, "se memorizzo nella cache tutto ci vorrebbero X giga di RAM, ma eseguirò più velocemente perché ...". Oppure, "se tenessi in ordine l'albero binario mentre eseguivo le operazioni X sarebbe più lento, Y sarebbe più veloce, ecc."

  • Algoritmi

    Algoritmi di attraversamento grafico di base, algoritmi di attraversamento degli alberi e due buoni approcci per l'ordinamento dei numeri.

    Assicurati di praticare la risoluzione di un problema non banale utilizzando la programmazione dinamica. Questo è il tuo asso nella manica quando si tratta di domande difficili da intervistare!

  • Tabelle hash

    Questo è enorme. Conoscere tutto ciò che c'è da sapere sulle tabelle hash, dall'essere in grado di implementare una persona, conoscere le funzioni di hashing, il motivo per cui il numero di bucket dovrebbe essere un numero primo. I concetti coinvolti con le tabelle hash sono rilevanti per qualsiasi area dell'Informatica.

  • Punti di discussione su di te

    Quei primi minuti di chiacchiere con l'intervistatore sono momenti importanti per spiegare qualsiasi tipo di esperienza che ti distingua. Progetti rilevanti, risultati tecnici significativi e simili. Ricorda, la persona che conduce l'intervista ha intervistato dozzine se non centinaia di persone intelligenti come te. Quindi cosa puoi dire che li sorprenderebbe?

    Ad esempio, in un'intervista ho parlato con l'intervistatore di un programma che ho scritto per giocare a Go in college. È molto difficile scrivere un'IA per il gioco di Go, e ho un orribile Go-bot per dimostrarlo! La linea di fondo è essere te stesso, e non solo una persona intelligente che sa come programmare.

Non stressarti troppo, è solo un'intervista come un'altra. Siate certi che nessuno vi farà domande stupide sui tombini o sul monte. Fuji.

    
risposta data 06.12.2010 - 08:18
fonte
7

Relax

se la tua intervista è qualcosa di simile alla mia, l'intervistatore non è lì per metterti alla prova, è lì per vedere come pensi .

EDIT: questa era solo l'intervista telefonica iniziale, non so nulla di più ... e se lo fossi probabilmente non potrei dirti comunque!

    
risposta data 05.12.2010 - 04:07
fonte
2

Ha preso in prestito il seguente articolo dal link

Conoscenza delle codifiche C / C ++ e Java sono i linguaggi di programmazione preferiti per Google Interviewers. Devi conoscerne almeno uno veramente bene. Dovrai scrivere il codice anche nelle interviste sullo schermo del telefono e nelle interviste sul posto.

Libri consigliati per interviste CS : Introduzione agli algoritmi - Di Cormen

Interviste di programmazione esposte

Cracking the Coding Interviews

Algoritmi per interviste

Siti web consigliati per la pratica della codifica : InterviewStreet, Topcoder

Big-O Questo dovrebbe essere il punto di partenza nella preparazione di un colloquio algoritmico. Non devi lottare con l'analisi di complessità di base, poiché garantirà che non vengano assunti. Dovresti essere familiare e capire le notazioni O, Θ e Ω. Consiglio di leggere la sezione sull'analisi della complessità dal libro Data Structures and Algorithms.

Ordinamento Dovresti riuscire a scrivere gli algoritmi O (n * lgn) come QuickSort e MergeSort con facilità. Confrontare e comprendere le complessità del caso migliore, peggiore e medio. Ho trovato questa tabella su wiki molto utile; elenca importanti proprietà di tutti gli algoritmi di ordinamento. Non trascurare gli algoritmi di base O (n ^ 2) come Bubble sort o Insertion sort, poiché altri algoritmi migliorano su questi. Le interviste si concentrano maggiormente sul miglioramento di un'idea di base, gli algoritmi di ordinamento aiuteranno in questo processo.

Tabelle hash in caso di dubbio, pensa alle tabelle hash. Sono utili nella maggior parte dei problemi e spesso ci aiutano a migliorare la complessità temporale di alcuni problemi memorizzando i risultati nella cache.

Alberi Passa attraverso gli algoritmi di costruzione dell'albero, traversal e manipolazione di base. Dovresti essere in grado di implementare algoritmi basati su alberi di ricerca binari. Dovresti avere familiarità con gli alberi bilanciati anche se non ti è richiesto di scrivere il codice per loro nell'intervista: alberi AVL, alberi Red-Black, alberi Trie, n-ary ecc. È necessaria una conoscenza approfondita degli attraversamenti inorder, postorder e preordinati, perché siamo in grado di risolvere molti problemi ad albero eseguendo semplici modifiche a uno di questi attraversamenti.

Grafici I grafici sono un concetto molto importante in Informatica. Pratica le tre rappresentazioni di base dei grafici (oggetti e puntatori, matrice e lista di adiacenza) e familiarizza con i loro pro e amp; cons. Non c'è molto tempo durante l'intervista, quindi non dovresti aspettarti qualcosa di molto complesso. Tuttavia, gli algoritmi di attraversamento grafico di base (DFS e BFS) sono un must, dovresti implementarli in tutte le rappresentazioni di base. Dovresti essere in grado di implementare gli algoritmi Dijkstra o Floyd-Warshall e gli algoritmi di spanning tree minimi (Kruskal e Prim). Scopri l'ordinamento topologico, poiché è sorprendentemente molto utile in molti problemi di ordinamento.

Programmazione dinamica Questo è probabilmente l'argomento più importante in quanto le implementazioni sono piccole. Dovresti essere in grado di implementare 2-3 algoritmi dinamici durante 35-40 minuti. Come verificherete le risorse su questo blog o sul web, troverete che dovreste aspettarvi almeno una domanda di programmazione dinamica per colloquio.

Sistemi operativi Informazioni su processi, thread e problemi di concorrenza. Conoscere mutex, semafori, monitor e come funzionano. Comprendi cosa sono deadlock e livelock e come evitarli. Ulteriori informazioni sul cambio di contesto, la pianificazione ecc.

Matematica dovresti familiarizzare con il conteggio, la combinatoria e la probabilità.

Pubblicazioni di Google Leggi le pubblicazioni di Google che descrivono i tuoi problemi sotto elencati se hai tempo. Google File System

Google Bigtable

Google MapReduce

    
risposta data 01.02.2013 - 10:22
fonte
1

Se hai trascorso l'ultimo paio di mesi a Care Camp, puoi permetterti di rilassarti. Quello che succede in quel momento nell'intervista non può essere pianificato, ma è meglio essere rilassati e avere l'energia per durare il round.

    
risposta data 06.12.2010 - 09:48
fonte

Leggi altre domande sui tag