Facebook software engineer interview: l’unico post è necessario leggere

Pratica 1-on-1 con ex-intervistatori da Facebook. Per saperne di più.

Codifica interviste a Facebook sono davvero impegnativo. Le domande sono difficili, specifiche per Facebook, e coprono una vasta gamma di argomenti.

La buona notizia è che la giusta preparazione può fare una grande differenza, e può aiutare a terra un lavoro di ingegnere del software a Facebook. Abbiamo messo insieme la guida definitiva per aiutarvi a massimizzare le possibilità di successo.

Ecco una panoramica di ciò che tratteremo:

  • Processo e timeline
  • Domande di esempio
    • Coding interview
    • System design interview
    • Behavioral interview
  • Suggerimenti per la preparazione

1. Processo di intervista e timeline

1.1 Quali interviste aspettarsi

Qual è il processo di intervista e timeline di Facebook software engineering? Ci vogliono da quattro a otto settimane in media e segue questi passaggi:

  1. Curriculum, lettera di copertura, di rinvii e di
  2. Recruiter schermo del telefono: una intervista
  3. Tecnico schermo del telefono: una o due interviste
  4. in Loco: da quattro a sei interviste

diamo un’occhiata a ciascuno di questi passaggi in dettaglio di seguito:

1.1.1 Recruiter schermo del telefono

Nella maggior parte dei casi, potrai iniziare il tuo processo di intervista con Facebook, parlando di un HR recruiter sul telefono. Stanno cercando di confermare che hai la possibilità di ottenere il lavoro a tutti, in modo da essere pronti a spiegare il vostro background e perché sei una buona misura a Facebook. Si dovrebbe aspettare tipico comportamentale e riprendere domande come, “Parlami di te”, ” Perché Facebook?”, o ” Parlami del tuo attuale giorno per giorno come sviluppatore.”

Se superi questa prima schermata HR, il reclutatore ti aiuterà a pianificare le tue prime schermate tecniche con un ingegnere di Facebook. Una cosa grandiosa di Facebook è che sono molto trasparenti sul loro processo di reclutamento. Il tuo contatto HR sarà quindi a piedi attraverso i passaggi rimanenti nel processo di assunzione, e sarà anche condividere con voi un utile e-mail elencando le risorse che è possibile utilizzare per preparare.

1.1.2 Schermo tecnico del telefono

Passerai attraverso uno o due schermi tecnici iniziali da 45 minuti che di solito si verificano al telefono. I tuoi intervistatori inizieranno con alcune domande comportamentali, ma la maggior parte del tempo sarà dedicata a domande tipiche di codifica (ad esempio strutture dati, algoritmi, ecc.)

Userai un semplice editor di codice online senza evidenziazione della sintassi o completamento automatico per queste interviste telefoniche (ad es.

Infine, se vivi vicino a un ufficio di Facebook e sei davvero motivato a entrare in azienda, puoi chiedere di venire in loco per le schermate iniziali. Il reclutatore di solito sarà felice di organizzare questo per voi come si tratta di una migliore esperienza sia per voi ei vostri intervistatori.

1.1.3 Interviste in loco

Le interviste in loco sono il vero test. In genere trascorrerai un’intera giornata in un ufficio di Facebook e farai da quattro a sei interviste in totale. Ogni intervista durerà circa 45 minuti e riguarderà uno dei seguenti argomenti:

  1. Intervista di codifica, dove risolverai domande di codifica generali che in genere saranno più difficili rispetto alla schermata tecnica iniziale.
  2. Design interview, dove ti verrà chiesto un sistema o una domanda di progettazione del prodotto a seconda del tuo background.
  3. Intervista comportamentale, dove puoi aspettarti domande sul tuo background, i risultati e la motivazione a lavorare su Facebook.

In genere riceverai tre interviste di codifica, un’intervista di progettazione e un’intervista comportamentale. Ma come discuteremo nella prossima sezione, la ripartizione esatta varierà a seconda del ruolo, della squadra e del livello per cui stai facendo domanda.

Oltre a queste interviste, potrai anche pranzare con un collega ingegnere mentre sei sul posto. L’intervista pranzo è pensato per essere il vostro tempo per fare domande su cosa vuol dire lavorare a Facebook. La compagnia non ti valuterà durante questo periodo, ma ti consigliamo di comportarti come se lo fossero.

1.2 Differenze tra livelli e ruoli

Il processo che abbiamo descritto sopra varierà leggermente a seconda del livello e del ruolo per cui stai intervistando. Ecco alcune delle differenze più comuni che dovresti aspettarti.

1.2.1 Junior vs Senior software engineers

Le aspettative per junior e senior engineers sono diverse.

Se sei un ingegnere entry-level / junior ci si aspetta di fare molto bene nelle vostre interviste di codifica. Ma di solito avrai solo un colloquio di progettazione di un singolo sistema in cui la barra delle prestazioni sarà inferiore a quella dei candidati più anziani.

Se sei un ingegnere senior, dovrai entrambi fare molto bene nelle interviste di codifica e progettazione del sistema. Potresti anche avere due interviste di progettazione del sistema invece di una in determinate situazioni (ad esempio, stai facendo domanda per il team dell’infrastruttura).

1.2.2 Contributori individuali vs manager

Facebook ha due tracce di carriera. Puoi diventare un manager in cui finisci per guidare team di ingegneri (traccia di gestione). Oppure si può rimanere molto hands-on tecnicamente e specializzarsi come si diventa più anziano (traccia contributore individuale).

Se stai intervistando come contributore individuale, dovresti aspettarti principalmente interviste tecniche e in genere avrai solo una singola intervista comportamentale.

Se stai intervistando come manager, direttore o superiore, dovresti aspettarti almeno due interviste comportamentali. Preparati a rispondere a domande su come sviluppi le persone, lavori con team interfunzionali, esegui progetti, fai crescere un’organizzazione, ecc.

1.3 Cosa succede dietro le quinte

Il tuo reclutatore sta conducendo il processo e ti porta da una fase all’altra. Ecco cosa succede dietro le quinte in ciascuna delle fasi sopra descritte:

  • Dopo lo schermo del telefono tecnico, gli intervistatori con cui hai parlato hanno 24 ore per inviare le loro valutazioni e note al sistema interno. Il recruiter poi esamina il feedback, e decide di passare al colloquio in loco o meno a seconda di quanto bene hai fatto.
  • Dopo il sito, i quattro-sei intervistatori faranno una raccomandazione sull’assunzione o meno e il reclutatore compila il tuo “pacchetto” (feedback dell’intervista, curriculum, rinvii, ecc.) Se pensano che tu possa ottenere il lavoro, presenteranno il tuo caso alla prossima riunione di revisione dei candidati.
  • Le riunioni di revisione dei candidati vengono utilizzate per valutare tutti i candidati che hanno recentemente terminato i loro cicli di interviste e sono vicini a ricevere un’offerta. Il tuo pacchetto verrà analizzato e verranno discusse le possibili preoccupazioni. I tuoi intervistatori sono invitati a partecipare alla tua riunione di revisione dei candidati, ma di solito parteciperanno solo se c’è un forte disaccordo nei voti che hai ricevuto (ad esempio 2 senza assunzioni, 2 assunzioni). Se dopo le discussioni il team ancora non può essere d’accordo se si dovrebbe ottenere un’offerta o no, potrebbe essere chiesto di fare un follow-up intervista per risolvere il dibattito. Alla fine della riunione di revisione dei candidati, viene presa in considerazione una raccomandazione di assunzione / assenza di assunzione da parte del comitato di assunzione.
  • Il comitato per le assunzioni include dirigenti senior di Facebook. Questo passaggio è di solito una formalità e il comitato segue la raccomandazione della riunione di revisione dei candidati. L’obiettivo principale è quello di mettere a punto il livello esatto e quindi la compensazione vi verrà offerto.

È anche importante notare che i responsabili delle assunzioni e le persone che ti fanno riferimento hanno poca influenza sul processo generale. Possono aiutarti a ottenere un’intervista all’inizio, ma questo è tutto.

2. Domande di esempio

Qui a IGotAnOffer, crediamo nella preparazione di interviste basate sui dati e abbiamo utilizzato i dati di Glassdoor per identificare i tipi di domande che sono più frequenti su Facebook.

Per le interviste di codifica, abbiamo suddiviso le domande che ti verranno poste in sottocategorie (ad esempio Array / stringhe, grafici / alberi, ecc.), in modo da poter dare la priorità a quelli più frequenti nella preparazione. Per la progettazione del sistema e le domande comportamentali, abbiamo elencato 10 domande di esempio che sono state frequentemente riportate su Glassdoor.

2.1 Coding interview

Facebook software engineer interview questions

Facebook software engineers risolvere alcuni dei problemi più difficili che l’azienda deve affrontare con il codice. È quindi essenziale che abbiano forti capacità di problem solving. Questa è la parte dell’intervista in cui vuoi mostrare che pensi in modo strutturato e scrivi codice accurato, privo di bug e veloce.

Ecco i tipi di domande più comuni poste nelle interviste di codifica di Facebook e la loro frequenza. Si prega di notare che l’elenco sottostante esclude la progettazione del sistema e le domande comportamentali che copriamo nelle prossime sezioni.

  1. Array / Stringhe (il 38% delle domande più frequenti)
  2. Grafici / Alberi (29%)
  3. Programmazione Dinamica (18%)
  4. Ricerca / Ordinamento (9%)
  5. liste Collegate (4%)
  6. Pile / Code (2%, meno frequenti)

Inoltre, abbiamo elencato esempi comuni utilizzati a Facebook per questi tipi di domande di seguito. Per rendere queste domande più facili da studiare, abbiamo modificato il fraseggio per abbinare il problema più vicino su Leetcode o un’altra risorsa, e abbiamo collegato a una soluzione gratuita.

Infine, ti consigliamo di leggere il seguente articolo scritto da un ex intervistatore di Facebook per capire di più sull’approccio passo-passo che dovresti usare per risolvere le domande di codifica.

Domande di codifica di esempio poste da Facebook

1. Array / Stringhe (38% delle domande, più frequenti)

  • “Dato un array nums di n interi dove n > 1, restituisce un array output tale che output è uguale al prodotto di tutti gli elementi di numstranne nums.”(Soluzione)
  • ” Data una stringa non vuota s, è possibile eliminare al massimo un carattere. Giudicare se si può fare un palindromo.”(Soluzione)
  • ” Implementa next permutation, che riorganizza i numeri nella successiva permutazione lessicografica dei numeri.”(Solution)
  • ” Data una stringa S e una stringa T, trova la finestra minima in S che conterrà tutti i caratteri in T nella complessità O (n).”(Solution)
  • ” Data una serie di stringhe str, raggruppare gli anagrammi insieme.”(Solution)
  • ” Data una stringa s contenente solo i caratteri ‘(‘, ‘)’, ‘{‘, ‘}’, “, determinare se la stringa di input è valida.”(Solution)
  • ” Dato un array nums di n interi, ci sono elementi a, b, c in nums tali che a + b + c = 0? Trova tutte le terzine uniche nell’array che dà la somma di zero.”(Soluzione)

2. Grafici / Alberi (29%)

  • “Dato il nodo root di un albero di ricerca binario, restituire la somma dei valori di tutti i nodi con valore compreso tra L e R (incluso).”(Soluzione)
  • ” Dato un albero binario, convertirlo in una lista circolare doppiamente collegata (sul posto).”(Soluzione)
  • ” Implementa un iteratore su un albero di ricerca binario (BST). Il tuo iteratore verrà inizializzato con il nodo radice di un BST.”(Soluzione)
  • ” Dato un albero binario, è necessario calcolare la lunghezza del diametro dell’albero.”(Soluzione)
  • ” Serializza e deserializza un albero binario”(Soluzione)
  • ” Dato un albero binario, trova la somma massima del percorso.”(Soluzione)
  • ” Dato un dizionario ordinato (matrice di parole) di una lingua aliena, trova l’ordine dei caratteri nella lingua.”(Soluzione)
  • “Controlla se un dato grafico è bipartito o meno” (Soluzione)

3. Programmazione dinamica (18%)

  • “Dato un elenco di numeri non negativi e un intero di destinazione k, scrivi una funzione per verificare se l’array ha un sottoarray continuo di dimensione almeno 2 che riassume il multiplo di k, cioè riassume fino a n*k dove n è anche un numero intero.”(Soluzione)
  • “Supponiamo di avere un array per il quale l’elemento ith è il prezzo di un determinato titolo il giorno i. Se ti fosse permesso di completare al massimo una transazione (cioè, comprarne uno e vendere una quota del titolo), progetta un algoritmo per trovare il massimo profitto.”(Soluzione)

  • “Data una stringa di input (s) e un pattern (p), implementare la corrispondenza delle espressioni regolari con il supporto per '.'e '*'.”(Soluzione)
  • ” Ti viene dato un elenco di numeri interi non negativi, a1, a2,…, un, e un obiettivo, S. Ora hai 2 simboli +e -. Per ogni intero, dovresti sceglierne uno tra + e - come nuovo simbolo. Scopri quanti modi per assegnare simboli per rendere la somma di interi uguale al target S. “(Soluzione)

4. Ricerca / Ordinamento (9%)

  • “Abbiamo una lista di points sull’aereo. Trova i punti K più vicini all’origine (0, 0).”(Solution)
  • ” Dati due array, scrivere una funzione per calcolare la loro intersezione.”(Soluzione)
  • ” Data una serie di intervalli di tempo di riunione costituiti da orari di inizio e di fine ,,…] trova il numero minimo di sale conferenze richiesto.”(Soluzione)

5. Elenchi collegati (4%)

  • “Viene fornito un elenco collegato in modo tale che ogni nodo contenga un puntatore casuale aggiuntivo che potrebbe puntare a qualsiasi nodo nell’elenco o null. Restituire una copia profonda della lista.”(Soluzione)
  • ” Dato un elenco collegato singolarmente L: L0?L1?…?Ln-1?Ln, riordinare a: L0?Ln?L1?Ln-1?L2?Ln-2?… “(Soluzione)

6. Pile / code (2%)

  • “Implementare le seguenti operazioni di una coda utilizzando pile.”Nota: vedere maggiori dettagli al seguente link. (Soluzione)

2.2 System design interview

Facebook, Instagram e Whatsapp hanno tutti 1bn + utenti attivi mensili. Gli ingegneri di Facebook devono quindi essere in grado di progettare sistemi altamente scalabili. Le domande di codifica che abbiamo trattato sopra di solito hanno un’unica soluzione ottimale. Ma le domande sulla progettazione del sistema che ti verranno poste sono in genere più aperte e sembrano più una discussione.

Questa è la parte dell’intervista in cui vuoi dimostrare che puoi essere creativo e strutturato allo stesso tempo. Nella maggior parte dei casi, il tuo intervistatore adatterà la domanda al tuo background. Ad esempio, se hai lavorato su un prodotto API, ti chiederanno di progettare un’API. Ma questo non sarà sempre il caso, quindi dovresti essere pronto a progettare qualsiasi tipo di prodotto o sistema ad alto livello.

Come accennato in precedenza, se sei uno sviluppatore junior le aspettative saranno inferiori per te rispetto a quelle di medio livello o senior. Inoltre, per determinati ruoli (ad esempio, infrastruttura, sicurezza, ecc.) probabilmente avrai diverse interviste di progettazione del sistema invece di una sola.

Ecco le domande di progettazione del sistema più comuni poste nei rapporti di intervista di Facebook che possono essere trovati su Glassdoor. Per ulteriori informazioni, si consiglia di leggere la seguente guida su come rispondere alle domande di progettazione del sistema, e praticare domande di progettazione del sistema in questo corso.Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Facebook Instagram Facebook Instagram Facebook Facebook Facebook Facebook Facebook Facebook Messenger Facebook Facebook Messenger Facebook Messenger Facebook Messenger Facebook Messenger Facebook Messenger Facebook Messenger Facebook Messenger Facebook Messenger Facebook Messenger Facebook Messenger Messenger Facebook Messenger Messenger Facebook Messenger Messenger Messenger Google Docs)

  • Come progettare una funzione typehead (ad esempio Ricerca Google completamento automatico)
  • Come si farebbe con il design di Twitter gli argomenti di tendenza
  • Come si progetta un distribuite Botnet
  • Come la progettazione di un sistema in grado di gestire milioni di transazioni con carta per ora
  • Come la progettazione della sicurezza per Facebook della rete aziendale da zero (il team di Sicurezza di intervista)
  • 2.3 Intervista del comportamento

    Facebook ingegneri di solito lavoro in team inter-funzionali con altri ingegneri, product manager, progettisti, analisti di dati, etc. Devono essere in grado di comunicare chiaramente, lavorare con gli altri in modo efficiente, costruire fiducia e relazioni, ecc.

    Questa è la parte dell’intervista in cui vuoi davvero dimostrare di essere bravo a lavorare con gli altri. Come accennato in precedenza, se stai facendo domanda per una posizione di manager o superiore, avrai più interviste comportamentali e coprirai anche argomenti come team leader, sviluppo di talenti, gestione del giorno per giorno, ecc.

    Di seguito abbiamo elencato dieci frequenti domande comportamentali che Facebook tende a chiedere, secondo i dati di Glassdoor. Per ulteriori informazioni, consulta i nostri articoli su come rispondere alle domande di intervista comportamentale e il “Perché Facebook?” domanda.

    Top 10 domande comportamentali poste a Facebook

    • Dimmi di te
    • Perché Facebook?
    • ditemi un recente / progetto preferito e alcune delle difficoltà che si erano
    • raccontami il più grande risultato della sua carriera
    • raccontami un momento in cui avete lottato per lavorare con uno dei tuoi colleghi
    • ditemi un tempo si doveva risolvere un conflitto in un team
    • raccontami una volta che si è dato riscontro che è stato costruttivo
    • Ditemi un tempo si aveva a rafforzare e ad assumere la responsabilità per gli altri
    • raccontami un momento in cui avete lottato su uno dei vostri progetti software
    • parlami del tuo peggior boss e perché erano cattivi

    3. Come preparare

    Ora che sai quali domande aspettarsi, concentriamoci su come prepararci. Non è un segreto che la barra delle prestazioni su Facebook sia alta. Alcune persone anche andare fino a smettere il loro lavoro per prepararsi per le interviste a tempo pieno.

    Questo è ovviamente estremo e non quello che raccomandiamo di fare, ma mostra quanto sforzo alcuni candidati sono pronti a mettere in. Abbiamo elencato i quattro passaggi che consigliamo di prendere per preparare nel modo più efficiente possibile di seguito.

    3.1 Scopri la cultura di Facebook

    La maggior parte dei candidati non riesce a farlo. Ma prima di investire decine di ore di preparazione per un colloquio a Facebook, si dovrebbe prendere un po ‘ di tempo per assicurarsi che in realtà è la società giusta per voi.

    Facebook è prestigioso ed è quindi tentato di ignorare completamente questo passaggio. Ma nella nostra esperienza, il prestigio in sé non ti renderà felice giorno per giorno. È il tipo di lavoro e le persone con cui lavori che lo faranno.

    Se conosci ingegneri che lavorano a Facebook o che lavoravano lì, è una buona idea parlare con loro per capire com’è la cultura. Inoltre, ti consigliamo di leggere i 5 valori fondamentali di Facebook e la cultura degli hacker.

    3.2 Pratica da soli

    Come accennato in precedenza, avrete tre tipi di interviste a Facebook: codifica, progettazione del sistema, e comportamentale. Il primo passo della vostra preparazione dovrebbe essere quello di rispolverare questi diversi tipi di domande e di praticare rispondere da soli.

    Per le interviste di codifica, ti consigliamo di leggere il seguente articolo scritto da un ex intervistatore di Facebook per capire di più sull’approccio passo-passo che dovresti usare per risolvere le domande di codifica in un’intervista.

    E per esercitarti, ti consigliamo di utilizzare Leetcode dove puoi fare molto con il livello gratuito e accedere anche alle domande specifiche di Facebook utilizzando il livello Premium.

    Per le interviste di progettazione del sistema, si consiglia di studiare la nostra guida intervista di progettazione del sistema. La guida copre un metodo passo-passo per rispondere alle domande di progettazione del sistema e fornisce diverse domande di esempio con soluzioni.

    Per le interviste comportamentali, si consiglia di imparare il nostro metodo passo-passo per rispondere a questo tipo di domanda. Inoltre, ti consigliamo di scrivere le risposte alle domande comportamentali comuni che abbiamo elencato nella sezione precedente.

    Infine, un ottimo modo per praticare la codifica, la progettazione del sistema e le domande comportamentali, è intervistarti ad alta voce.

    Questo può sembrare strano, ma migliorerà in modo significativo il modo in cui comunichi le tue risposte durante un’intervista e fa davvero la differenza nella nostra esperienza. Gioca il ruolo sia del candidato che dell’intervistatore, facendo domande e rispondendo loro, proprio come farebbero due persone in un’intervista.

    3.3 Pratica con i coetanei

    Praticare da soli ti porterà solo fino ad ora. Una delle principali sfide delle interviste di codifica è quella di dover comunicare ciò che stai facendo mentre lo stai facendo. Di conseguenza, si consiglia vivamente di praticare interviste di codifica dal vivo con un peer intervistare voi.

    Un ottimo punto di partenza è quello di praticare con gli amici, se è possibile. Se non hai nessuno nella tua rete che possa intervistarti, puoi anche trovare colleghi con cui esercitarti su piattaforme come Pramp.

    3.4 Pratica con ex-intervistatori

    Il vantaggio principale di praticare con i coetanei è che è gratuito. Ma ad un certo punto inizierai a notare che il feedback che ricevi dai colleghi non ti aiuta più di tanto. Una volta raggiunta quella fase, ti consigliamo di esercitarti con ex-intervistatori delle migliori aziende tecnologiche.

    Se conosci un ingegnere del software che ha esperienza nell’esecuzione di interviste su Facebook o su un’altra grande azienda tecnologica, allora è fantastico. Ma per la maggior parte di noi, è difficile trovare le giuste connessioni per farlo accadere. E potrebbe anche essere difficile praticare più ore con quella persona a meno che non li conosci davvero bene.

    Ecco la buona notizia. Abbiamo già fatto i collegamenti per te. Abbiamo creato un servizio di coaching in cui è possibile praticare 1-on-1 con ex-intervistatori da aziende leader tech come Facebook. Per saperne di più e iniziare a pianificare le sessioni di oggi.

    SWE Intervista Coaching

    Tutte le domande su Facebook Software Engineer interviste?

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato.