Facebook Software Engineer interviu: singurul post va trebui să citiți

Practica 1-la-1 cu ex-intervievatori de la Facebook. Aflați mai multe.

interviurile de codificare la Facebook sunt cu adevărat provocatoare. Întrebările sunt dificile, specifice Facebook și acoperă o gamă largă de subiecte.

vestea bună este că pregătirea potrivită poate face o mare diferență și vă poate ajuta să obțineți un loc de muncă de inginer Software la Facebook. Am creat ghidul final pentru a vă ajuta să vă maximizați șansele de succes.

Iată o prezentare generală a ceea ce vom acoperi:

  • proces și cronologie
  • Exemple de întrebări
    • interviu de codificare
    • interviu de proiectare a sistemului
    • Interviu comportamental
  • sfaturi de pregătire

1. Procesul de interviu și cronologie

1.1 ce interviuri să se aștepte

care este procesul de interviu Facebook inginerie software și cronologie? Este nevoie de patru până la opt săptămâni în medie și urmează acești pași:

  1. CV, scrisoare de intentie, și recomandări
  2. ecran de telefon Recruiter: un interviu
  3. ecran de telefon tehnic: unul sau două interviuri
  4. la fața locului: patru până la șase interviuri

să ne uităm la fiecare dintre acești pași în detaliu mai jos:

1.1.1 ecranul telefonului recruiter

în majoritatea cazurilor, veți începe procesul de interviu cu Facebook vorbind cu un recrutor de Resurse Umane la telefon. Ei caută să confirme că aveți șansa de a obține deloc slujba, așa că fiți pregătiți să vă explicați fundalul și de ce vă potriviți bine la Facebook. Ar trebui să vă așteptați la întrebări comportamentale tipice și să reluați întrebări precum „Spune-mi despre tine”, „de ce Facebook?”, sau ” Spune-mi despre ziua ta curentă ca dezvoltator.”

dacă treceți de acest prim ecran HR, recrutorul vă va ajuta apoi să vă programați primele ecrane tehnice cu un inginer Facebook. Un lucru minunat despre Facebook este că sunt foarte transparenți în ceea ce privește procesul de recrutare. Prin urmare, contactul dvs. de resurse umane vă va parcurge pașii rămași în procesul de angajare și vă va împărtăși, de asemenea, o resursă utilă de listare prin e-mail pe care o puteți utiliza pentru a vă pregăti.

1.1.2 ecranul tehnic al telefonului

veți trece prin unul sau două ecrane tehnice inițiale de 45 de minute care se întâmplă de obicei prin telefon. Intervievatorii dvs. vor începe cu câteva întrebări comportamentale, dar de cele mai multe ori vor fi cheltuite pe întrebări tipice de codificare (de exemplu, structuri de date, algoritmi etc.)

veți utiliza un simplu editor de cod online fără evidențierea sintaxei sau completarea automată pentru aceste interviuri telefonice (de exemplu, CoderPad) și este o idee bună să vă obișnuiți să utilizați unul dintre ele în prealabil.

în cele din urmă, dacă locuiți aproape de un birou Facebook și sunteți cu adevărat motivați să vă alăturați companiei, puteți cere să veniți la fața locului pentru ecranele inițiale. Recrutorul dvs. va fi, de obicei, fericit să organizeze acest lucru pentru dvs., deoarece este o experiență mai bună atât pentru dvs., cât și pentru intervievatorii dvs.

1.1.3 interviurile la fața locului

interviurile la fața locului sunt adevăratul test. De obicei, veți petrece o zi întreagă la un birou Facebook și veți face patru până la șase interviuri în total. Fiecare interviu va dura aproximativ 45 de minute și va acoperi unul dintre următoarele subiecte:

  1. interviu de codificare, în cazul în care veți rezolva întrebări generale de codificare, care va fi de obicei mai greu decât în ecranul tehnic inițial.
  2. interviu de proiectare, unde vi se va pune o întrebare de sistem sau de design de produs în funcție de fundal.
  3. Interviu comportamental, unde vă puteți aștepta la întrebări despre trecutul, realizările și motivația dvs. de a lucra la Facebook.

veți primi de obicei trei interviuri de codificare, un interviu de proiectare și un interviu comportamental. Dar, așa cum vom discuta în secțiunea următoare, defalcarea exactă va varia în funcție de rolul, echipa și nivelul pentru care solicitați.

în plus față de aceste interviuri, veți avea, de asemenea, masa de prânz cu un coleg inginer în timp ce sunt la fața locului. Interviul de prânz este menit să fie timpul dvs. pentru a pune întrebări despre cum este să lucrați la Facebook. Compania nu vă va evalua în acest timp, dar vă recomandăm să vă comportați ca și cum ar fi.

1.2 diferențe între niveluri și roluri

procesul pe care l-am descris mai sus va varia ușor în funcție de nivelul și rolul pentru care intervievați. Iată câteva dintre cele mai frecvente diferențe pe care ar trebui să le așteptați.

1.2.1 ingineri software juniori vs seniori

așteptările pentru inginerii juniori și seniori sunt diferite.

dacă sunteți un inginer entry-level / junior va fi de așteptat să facă extrem de bine în interviurile de codificare. Dar, de obicei, veți avea doar un singur interviu de proiectare a sistemului în care bara de performanță va fi mai mică decât pentru mai mulți candidați seniori.

dacă sunteți un inginer senior, atunci va trebui să vă descurcați extrem de bine în interviurile de codare și proiectare a sistemului. De asemenea, puteți avea două interviuri de proiectare a sistemului în loc de unul în anumite situații (de exemplu, aplicați pentru echipa de infrastructură).

1.2.2 contribuitori individuali vs manageri

Facebook are două piste de carieră. Puteți să vă dezvoltați într-un manager în care ajungeți să conduceți echipe de ingineri (pista de management). Sau puteți rămâne foarte hands-on punct de vedere tehnic și se specializează pe măsură ce devin mai în vârstă (piesa contribuitor individual).

dacă intervievați ca colaborator individual, atunci ar trebui să vă așteptați în principal la interviuri tehnice și, de obicei, veți avea doar un singur interviu comportamental.

dacă intervievați ca manager, director sau mai sus, atunci ar trebui să vă așteptați la cel puțin două interviuri comportamentale. Fiți pregătiți să răspundeți la întrebări despre modul în care dezvoltați oamenii, lucrați cu echipe funcționale încrucișate, executați proiecte, dezvoltați o organizație etc.

1.3 Ce se întâmplă în spatele scenei

recrutorul dvs. conduce procesul și vă duce de la o etapă la alta. Iată ce se întâmplă în spatele scenei la fiecare dintre etapele descrise mai sus:

  • după ecranul tehnic al telefonului, intervievatorii cu care ați vorbit au 24 de ore pentru a-și prezenta evaluările și notele la sistemul intern. Recrutorul dvs. analizează apoi feedback-ul și decide să vă mute la interviul la fața locului sau nu, în funcție de cât de bine ați făcut.
  • după fața locului, cei patru până la șase intervievatori vor face o recomandare cu privire la angajarea dvs. sau nu, iar recrutorul vă compilează „pachetul” (feedback-ul interviului, CV-ul, recomandările etc.) Dacă ei cred că puteți obține locul de muncă, vă vor prezenta cazul la următoarea întâlnire de revizuire a candidaților.
  • întâlnirile de evaluare a candidaților sunt utilizate pentru a evalua toți candidații care și-au terminat recent buclele de interviu și sunt aproape de a obține o ofertă. Pachetul dvs. va fi analizat și vor fi discutate posibilele preocupări. Intervievatorii dvs. sunt invitați să se alăture întâlnirii dvs. de revizuire a candidaților, dar vor participa, de obicei, numai dacă există un dezacord puternic în ceea ce privește notele pe care le-ați primit (de exemplu, 2 angajări, 2 angajări). Dacă după discuții echipa încă nu poate fi de acord dacă ar trebui să obțineți o ofertă sau nu, vi se poate cere să faceți un interviu de urmărire pentru a soluționa dezbaterea. La sfârșitul reuniunii de revizuire candidat , o închiriere / nici o recomandare de închiriere se face pentru examinare de către Comitetul de angajare.
  • Comitetul de angajare include lideri de rang înalt din întreaga Facebook. Acest pas este de obicei o formalitate, iar Comitetul urmează recomandarea reuniunii de revizuire a candidaților. Accentul principal este pe reglarea fină a nivelului exact și, prin urmare, vă va fi oferită compensația.

de asemenea, este important să rețineți că angajarea managerilor și a persoanelor care vă recomandă au o influență redusă asupra procesului general. Vă pot ajuta să obțineți un interviu la început, dar cam atât.

2. Exemple de întrebări

aici, la IGotAnOffer, credem în pregătirea interviurilor bazate pe date și am folosit datele Glassdoor pentru a identifica tipurile de întrebări care sunt cele mai frecvente la Facebook.

pentru interviurile de codificare, am împărțit întrebările care vi se vor pune în subcategorii (de exemplu, tablouri / șiruri, grafice / arbori etc.), astfel încât să le puteți acorda prioritate celor mai frecvente în pregătirea dvs. Pentru proiectarea sistemului și întrebările comportamentale, am enumerat 10 Exemple de întrebări care au fost raportate frecvent pe Glassdoor.

2.1 codificare interviu

Facebook Software engineer Interviu Întrebări

inginerii de software Facebook rezolva unele dintre cele mai dificile probleme cu care se confruntă compania cu cod. Prin urmare, este esențial să aibă abilități puternice de rezolvare a problemelor. Aceasta este partea interviului în care doriți să arătați că gândiți într-un mod structurat și scrieți un cod precis, fără erori și rapid.

Iată cele mai frecvente tipuri de întrebări adresate în interviurile de codificare Facebook și frecvența acestora. Vă rugăm să rețineți că lista de mai jos exclude proiectarea sistemului și întrebările comportamentale pe care le acoperim în secțiunile următoare.

  1. tablouri / șiruri (38% din Întrebări, Cele mai frecvente)
  2. grafice / arbori (29%)
  3. Programare dinamică (18%)
  4. căutare / sortare (9%)
  5. liste legate (4%)
  6. stive / cozi (2%, cel mai puțin frecvent)

am enumerat, de asemenea, exemple comune utilizate la Facebook pentru aceste tipuri diferite de întrebări de mai jos. Pentru a face aceste întrebări mai ușor de studiat, am modificat frazarea pentru a se potrivi cu cea mai apropiată problemă din Leetcode sau altă resursă și ne-am conectat la o soluție gratuită.

în cele din urmă, vă recomandăm să citiți următorul articol scris de un fost intervievator Facebook pentru a înțelege mai multe despre abordarea pas cu pas pe care ar trebui să o utilizați pentru a rezolva întrebările de codificare.

exemplu de codificare întrebări adresate de Facebook

1. Arrays / Strings (38% din Întrebări, Cele mai frecvente)

  • „având în vedere o matrice nums de n numere întregi unde n > 1, returnați o matrice output astfel încât output este egal cu produsul tuturor elementelor de numscu excepția nums.”(Soluție)
  • „având în vedere un șir non-gol s, puteți șterge cel mult un caracter. Judecați dacă îl puteți face un palindrom.”(Soluție)
  • ” implementați next permutation, care rearanjează numerele în următoarea permutare lexicografică mai mare a numerelor.”(Soluție)
  • ” având în vedere un șir S și un șir T, găsiți fereastra minimă în S care va conține toate caracterele din T în complexitate O (n).”(Soluție)
  • ” având în vedere o serie de șiruri str, grupați anagramele împreună.”(Soluție)
  • ” având în vedere un șir s care conține doar caracterele ‘(‘, ‘)’, ‘{‘, ‘}’, „, determinați dacă șirul de intrare este valid.”(Soluție)
  • „având în vedere o matrice nums de n numere întregi, există elemente A, b, c în nums astfel încât a + b + c = 0? Găsi toate tripleti unice în matrice, care dă suma de zero.”(Soluție)

2. Grafice / arbori (29%)

  • „având în vedere nodul root al unui arbore de căutare binar, returnați suma valorilor tuturor nodurilor cu valoare între L și R (inclusiv).”(Soluție)
  • ” având în vedere un arbore binar, convertiți-l într-o listă circulară dublu legată (în loc).”(Soluție)
  • ” implementați un iterator peste un arbore de căutare binar (BST). Iteratorul dvs. va fi inițializat cu nodul rădăcină al unui BST.”(Soluție)
  • „având în vedere un arbore binar, trebuie să calculați lungimea diametrului arborelui.”(Soluție)
  • ” Serializați și deserializați un copac binar”(soluție)
  • ” având în vedere un copac binar, găsiți suma maximă a căii.”(Soluție)
  • ” având în vedere un dicționar sortate (matrice de cuvinte) de o limbă străină, găsi ordinea de caractere în limba.”(Soluție)
  • „verificați dacă un grafic dat este bipartit sau nu „(Soluție)

3. Programare dinamică (18%)

  • „având în vedere o listă de numere non-negative și un număr întreg țintă k, scrieți o funcție pentru a verifica dacă matricea are un subarray continuu de dimensiune cel puțin 2 care însumează până la multiplul lui k, adică însumează până la n*k unde n este, de asemenea, un număr întreg.”(Soluție)
  • „dacă vi s-a permis să finalizați cel mult o tranzacție (adică cumpărați una și vindeți o acțiune din stoc), proiectați un algoritm pentru a găsi profitul maxim.”(Soluție)

  • „având în vedere un șir de intrare (s) și un model (p), implementați potrivirea expresiei regulate cu suport pentru '.' și '*'.”(Soluție)
  • ” vi se oferă o listă de numere întregi non-negative, a1, A2, …, an, și o țintă, S. acum aveți 2 simboluri + și -. Pentru fiecare număr întreg, ar trebui să alegeți unul dintre + și - ca noul său simbol. Aflați câte moduri de a atribui simboluri pentru a face suma numerelor întregi egală cu ținta S. „(soluție)

4. Căutare / sortare (9%)

  • „avem o listă cu points în avion. Găsiți Kcele mai apropiate puncte de origine (0, 0).”(Soluție)
  • ” având în vedere două matrice, scrieți o funcție pentru a calcula intersecția lor.”(Soluție)
  • ” având în vedere o serie de intervale de timp de întâlnire constând din orele de început și sfârșit ,,…] găsiți numărul minim de săli de conferințe necesare.”(Soluție)

5. Liste legate (4%)

  • „o listă legată este dată astfel încât fiecare nod conține un pointer aleatoriu suplimentar care ar putea indica orice nod din listă sau nul. Returnați o copie profundă a listei.”(Soluție)
  • ” având în vedere o listă singur legat L: L0?L1?…?Ln-1?Ln, reordonați-l la: L0?Ln?L1?Ln-1?L2?Ln-2?… „(Soluție)

6. Stive / cozi (2%)

  • „implementați următoarele operații ale unei cozi folosind stive.”Notă: vedeți mai multe detalii la următorul link. (Soluție)

2.2 System design interview

Facebook, Instagram și Whatsapp au toate 1bn+ utilizatori activi lunar. Prin urmare, inginerii Facebook trebuie să poată proiecta sisteme care sunt foarte scalabile. Întrebările de codificare pe care le-am acoperit mai sus au de obicei o singură soluție optimă. Dar întrebările de proiectare a sistemului pe care vi le veți pune sunt de obicei mai deschise și se simt mai mult ca o discuție.

aceasta este partea interviului în care doriți să arătați că puteți fi atât creativi, cât și structurați în același timp. În cele mai multe cazuri, intervievatorul dvs. va adapta întrebarea la fundalul dvs. De exemplu, dacă ați lucrat la un produs API, vă vor cere să proiectați un API. Dar acest lucru nu va fi întotdeauna cazul, așa că ar trebui să fiți gata să proiectați orice tip de produs sau sistem la un nivel ridicat.

după cum am menționat anterior, dacă sunteți dezvoltator junior, așteptările vor fi mai mici pentru dvs. decât dacă sunteți de nivel mediu sau senior. În plus, pentru anumite roluri (de exemplu, infrastructură, securitate etc.) probabil că veți avea mai multe interviuri de proiectare a sistemului în loc de unul singur.

Iată cele mai frecvente întrebări de proiectare a sistemului puse în rapoartele de interviu Facebook care pot fi găsite pe Glassdoor. Pentru mai multe informații, vă recomandăm să citiți următorul ghid despre cum să răspundeți la întrebările de proiectare a sistemului și să practicați întrebările de proiectare a sistemului în acest curs.Facebook Facebook Facebook

Top 10 întrebări de proiectare a sistemului puse la Facebook

  • cum ați proiecta Instagram / Instagram Stories
  • cum ați proiecta Facebook
  • cum ați proiecta Facebook Messenger
  • cum ați proiecta actualizarea live a Facebook a comentariilor la postări
  • cum ați proiecta editor colaborativ (de exemplu, Google Docs)
  • cum ați proiecta o caracteristică Typehead (de ex. Completarea automată a căutării Google)
  • cum ați proiecta subiectele de trend ale Twitter
  • cum ați proiecta un botnet distribuit
  • cum ați proiecta un sistem care poate gestiona milioane de tranzacții cu carduri pe oră
  • cum ați proiecta securitatea rețelei corporative Facebook de la zero (interviu cu echipa de securitate)

2.3 Interviu comportamental

inginerii Facebook lucrează de obicei în echipe inter-funcționale cu alți ingineri, manageri de produse, designeri, analiști de date etc. Ei trebuie să poată comunica clar, să lucreze eficient cu ceilalți, să construiască încredere și relații etc.

aceasta este partea interviului în care vrei cu adevărat să arăți că ești bun la lucrul cu ceilalți. După cum am menționat anterior, dacă aplicați pentru o poziție de manager sau mai sus, atunci veți avea mai multe interviuri comportamentale și veți acoperi, de asemenea, subiecte precum echipe de conducere, dezvoltarea talentelor, gestionarea zilnică etc.

mai jos am enumerat zece întrebări comportamentale frecvente pe care Facebook tinde să le pună, potrivit datelor de la Glassdoor. Pentru mai multe informații, consultați articolele noastre despre cum să răspundeți la întrebările de interviu comportamentale și ” de ce Facebook?”întrebare.

Top 10 întrebări comportamentale adresate la Facebook

  • Spune-mi despre tine
  • de ce Facebook?
  • povestește-mi despre un proiect recent / favorit și despre unele dintre dificultățile pe care le-ai avut
  • povestește-mi despre cea mai mare realizare a carierei tale
  • povestește-mi despre o perioadă în care te-ai străduit să lucrezi cu unul dintre colegii tăi
  • povestește-mi despre o perioadă în care a trebuit să rezolvi un conflict într-o echipă
  • Spune-mi despre o perioadă în care ți s-a oferit un feedback constructiv
  • spune-mi despre un timp a trebuit să intensifice și să își asume responsabilitatea pentru alții
  • spune-mi despre un timp ai luptat pe unul dintre proiectele software
  • spune-mi despre cel mai rau seful tau si de ce au fost răi

3. Cum să pregătiți

acum, că știți la ce întrebări să vă așteptați, să ne concentrăm asupra modului de pregătire. Nu este un secret faptul că bara de performanță de la Facebook este ridicată. Unii oameni chiar merg până la renunțarea la locul de muncă pentru a se pregăti pentru interviuri cu normă întreagă.

acest lucru este evident extrem și nu ceea ce vă recomandăm să faceți, dar arată cât de mult efort sunt pregătiți să depună unii candidați. Am enumerat mai jos cei patru pași pe care vă recomandăm să îi faceți pentru a vă pregăti cât mai eficient.

3.1 Aflați despre cultura Facebook

majoritatea candidaților nu reușesc să facă acest lucru. Dar înainte de a investi zeci de ore pregătindu-vă pentru un interviu la Facebook, ar trebui să vă luați ceva timp pentru a vă asigura că este de fapt compania potrivită pentru dvs.

Facebook este prestigios și, prin urmare, este tentant să ignori acest pas complet. Dar, în experiența noastră, prestigiul în sine nu te va face fericit de zi cu zi. Este tipul de muncă și oamenii cu care lucrați care vor.

dacă cunoașteți ingineri care lucrează la Facebook sau au lucrat acolo, este o idee bună să vorbiți cu ei pentru a înțelege cum este cultura. În plus, vă recomandăm să citiți despre cele 5 valori de bază ale Facebook și cultura hackerilor.

3.2 practica de unul singur

după cum am menționat mai sus, veți avea trei tipuri de interviuri la Facebook: codificare, proiectarea sistemului și comportament. Primul pas de pregătire ar trebui să fie să perie pe aceste tipuri diferite de întrebări și de a practica răspunde-le de unul singur.

pentru interviurile de codificare, vă recomandăm să citiți următorul articol scris de un fost intervievator Facebook pentru a înțelege mai multe despre abordarea pas cu pas pe care ar trebui să o utilizați pentru a rezolva întrebările de codificare într-un interviu.

și pentru a practica, vă recomandăm să utilizați Leetcode unde puteți face multe cu nivelul gratuit și, de asemenea, accesați întrebări specifice Facebook folosind nivelul Premium.

pentru interviurile de proiectare a sistemului, vă recomandăm să studiați ghidul nostru de interviu pentru proiectarea sistemului. Ghidul acoperă o metodă pas cu pas pentru a răspunde la întrebările de proiectare a sistemului și oferă câteva exemple de întrebări cu soluții.

pentru interviurile comportamentale, vă recomandăm să învățați metoda noastră pas cu pas pentru a răspunde la acest tip de întrebare. În plus, veți dori să scrieți răspunsurile la întrebările comportamentale comune pe care le-am enumerat în secțiunea anterioară.

în cele din urmă, o modalitate excelentă de a practica codificarea, proiectarea sistemului și întrebările comportamentale este să vă intervievați cu voce tare.

acest lucru poate suna ciudat, dar va îmbunătăți semnificativ modul în care comunicați răspunsurile dvs. în timpul unui interviu și va face cu adevărat diferența în experiența noastră. Joacă atât rolul candidatului, cât și al intervievatorului, punând întrebări și răspunzând la ele, la fel cum ar face doi oameni într-un interviu.

3.3 practica cu colegii

practicarea de unul singur vă va duce doar până acum. Una dintre principalele provocări ale interviurilor de codificare este să trebuiască să comunici ceea ce faci în timp ce o faci. Drept urmare, vă recomandăm cu tărie să practicați interviuri de codare live cu un coleg care vă intervievează.

un loc minunat pentru a începe este să exersezi cu prietenii, dacă poți. Dacă nu aveți pe nimeni în rețeaua dvs. care să vă poată intervieva, atunci puteți găsi și colegi cu care să exersați pe platforme precum Pramp.

3.4 practica cu foștii intervievatori

principalul beneficiu al practicării cu colegii este că este gratuit. Dar, la un moment dat, veți începe să observați că feedback-ul pe care îl primiți de la colegi nu vă mai ajută atât de mult. Odată ce ați ajuns la această etapă, vă recomandăm să practicați cu foști intervievatori de la companii de tehnologie de top.

dacă cunoașteți un inginer Software care are experiență în interviuri la Facebook sau la o altă companie de tehnologie mare, atunci este fantastic. Dar pentru majoritatea dintre noi, este greu să găsim conexiunile potrivite pentru a face acest lucru. Și ar putea fi, de asemenea, dificil să exersezi mai multe ore cu acea persoană, dacă nu o cunoști foarte bine.

iată vestea bună. Am făcut deja conexiunile pentru tine. Am creat un serviciu de coaching unde puteți practica 1-la-1 cu foști intervievatori de la companii de tehnologie de top precum Facebook. Aflați mai multe și începeți programarea sesiunilor astăzi.

swe Interviu Coaching

aveți întrebări despre interviurile Facebook Software Engineer?

Lasă un răspuns

Adresa ta de email nu va fi publicată.