Facebook-ingeniørintervju: det eneste indlæg, du skal læse

Øv 1-mod-1 med tidligere samtaler fra Facebook Facebook. Lær mere.

Kodningssamtaler på Facebook er virkelig udfordrende. Spørgsmålene er vanskelige, specifikke for Facebook og dækker en bred vifte af emner.

den gode nyhed er, at den rigtige forberedelse kan gøre en stor forskel, og kan hjælpe dig med at lande et Ingeniørjob hos Facebook. Vi har sammensat den ultimative guide til at hjælpe dig med at maksimere dine chancer for succes.

her er en oversigt over, hvad vi vil dække:

  • proces og tidslinje
  • eksempel spørgsmål
    • Kodningssamtale
    • systemdesignsamtale
    • Adfærdssamtale
  • forberedelsestips

1. Samtaleproces og tidslinje

1.1 hvilke samtaler kan man forvente

hvad er Facebook-processen og tidslinjen? Det tager i gennemsnit fire til otte uger og følger disse trin:

  1. Genoptag, følgebrev og henvisninger
  2. Recruiter telefonskærm: en samtale
  3. teknisk telefonskærm: en eller to samtaler
  4. Onsite: fire til seks samtaler

lad os se på hvert af disse trin mere detaljeret nedenfor:

1.1.1 recruiter telefonskærm

i de fleste tilfælde starter du din samtaleproces med Facebook ved at tale med en HR-rekrutterer på telefonen. De søger at bekræfte, at du har en chance for at få jobbet overhovedet, så vær forberedt på at forklare din baggrund, og hvorfor du passer godt på Facebook. Du bør forvente typiske adfærdsmæssige og genoptage spørgsmål som “Fortæl mig om dig selv”, ” hvorfor Facebook?”, eller ” fortæl mig om din nuværende dag til dag som udvikler.”

hvis du kommer forbi denne første HR-skærm, hjælper rekruttereren derefter med at planlægge dine første tekniske skærme med en Facebook-ingeniør. En god ting ved Facebook er, at de er meget gennemsigtige om deres rekrutteringsproces. Din HR-kontaktperson vil derfor lede dig gennem de resterende trin i ansættelsesprocessen, og vil også dele med dig en nyttig e-mail-liste ressourcer, du kan bruge til at forberede.

1.1.2 teknisk telefonskærm

du gennemgår en eller to indledende 45mins tekniske skærme, som normalt sker over telefonen. Dine samtaler starter med et par adfærdsmæssige spørgsmål, men det meste af tiden vil blive brugt på typiske kodningsspørgsmål (f.eks.)

du bruger en simpel online kodeditor uden syntaksfremhævning eller automatisk færdiggørelse til disse telefonsamtaler (f.eks.

endelig, hvis du bor tæt på et Facebook-Kontor og virkelig er motiveret til at blive medlem af virksomheden, kan du bede om at komme på stedet for de første skærme. Din rekrutterer vil normalt være glad for at organisere dette for dig, da det er en bedre oplevelse både for dig og dine samtalepartnere.

1.1.3 onsite samtaler

Onsite samtaler er den virkelige test. Du vil typisk tilbringe en hel dag på et Facebook-Kontor og gøre fire til seks samtaler i alt. Hver samtale varer cirka 45 minutter og dækker et af følgende emner:

  1. Kodningssamtale, hvor du løser generelle kodningsspørgsmål, som typisk vil være sværere end i den indledende tekniske skærm.
  2. Designsamtale, hvor du bliver stillet et system-eller produktdesignspørgsmål afhængigt af din baggrund.
  3. Adfærdssamtale, hvor du kan forvente spørgsmål om din baggrund, resultater og motivation til at arbejde på Facebook.

Du får typisk tre kodningssamtaler, en designsamtale og en adfærdssamtale. Men som vi vil diskutere i næste afsnit, vil den nøjagtige opdeling variere afhængigt af den rolle, team og niveau, du ansøger om.

ud over disse samtaler spiser du også frokost med en kollega ingeniør, mens du er på stedet. Frokostintervjuet er beregnet til at være din tid til at stille spørgsmål om, hvordan det er at arbejde på Facebook. Virksomheden vil ikke evaluere dig i løbet af denne tid, men vi anbefaler, at du opfører dig som om de var.

1.2 forskelle mellem niveauer og roller

den proces, vi har beskrevet ovenfor, vil variere lidt afhængigt af hvilket niveau og rolle du taler om. Her er nogle af de mest almindelige forskelle, du kan forvente.

1.2.1 Junior vs Senior programmel ingeniører

forventningerne til junior og senior ingeniører er forskellige.

hvis du er en entry-level / junior ingeniør, forventes det, at du klarer dig ekstremt godt i dine kodningssamtaler. Men du vil normalt kun have et enkelt systemdesignsamtale, hvor præstationslinjen vil være lavere end for flere seniorkandidater.

hvis du er senioringeniør, skal du begge gøre det meget godt i kodnings-og systemdesignsamtaler. Du kan også have to systemdesignsamtaler i stedet for en i visse situationer (f.eks.

1.2.2 individuelle bidragydere vs ledere

Facebook har to karrierespor. Du kan enten vokse til en leder, hvor du ender med at lede teams af ingeniører (management track). Eller du kan forblive meget praktisk teknisk og specialisere dig, når du bliver mere senior (individuel bidragsspor).

hvis du deltager som individuel bidragyder, bør du primært forvente tekniske samtaler og vil typisk kun have en enkelt adfærdssamtale.

hvis du taler som leder, direktør eller derover, skal du forvente mindst to adfærdssamtaler. Vær forberedt på at besvare spørgsmål om, hvordan du udvikler mennesker, arbejder med tværfunktionelle teams, udfører projekter, vokser en organisation osv.

1.3 Hvad sker der bag kulisserne

din rekrutterer leder processen og tager dig fra et trin til det næste. Her er hvad der sker bag kulisserne på hvert af de trin, der er beskrevet ovenfor:

  • efter den tekniske telefonskærm har de adspurgte, du har talt med, 24 timer til at indsende deres vurderinger og noter til det interne system. Din rekrutterer gennemgår derefter feedbacken og beslutter at flytte dig til onsite-samtalen eller ej, afhængigt af hvor godt du har gjort det.
  • efter Onsite vil de fire til seks samtaler komme med en anbefaling om at ansætte dig eller ej, og rekruttereren udarbejder din “pakke” (feedback, CV, henvisninger osv.) Hvis de tror, du kan få jobbet, vil de præsentere din sag på det næste kandidatanmeldelsesmøde.
  • Kandidatanmeldelsesmøder bruges til at vurdere alle kandidater, der for nylig har afsluttet deres samtalesløjfer og er tæt på at få et tilbud. Din pakke vil blive analyseret, og mulige bekymringer vil blive diskuteret. Dine samtaler inviteres til at deltage i dit kandidatanmeldelsesmøde, men vil normalt kun deltage, hvis der er en stærk uenighed i de karakterer, du har modtaget (f.eks. 2 ingen ansættelser, 2 ansættelser). Hvis teamet efter diskussioner stadig ikke kan blive enige om, hvorvidt du skal få et tilbud eller ej, kan du blive bedt om at foretage en opfølgningssamtale for at afvikle debatten. Ved afslutningen af kandidatanmeldelsesmødet fremsættes en anbefaling om leje / ingen leje til behandling i ansættelsesudvalget.
  • ansættelsesudvalget omfatter seniorledere fra hele Facebook. Dette trin er normalt en formalitet, og udvalget følger anbefalingen fra kandidatgennemgangsmødet. Hovedfokus er på finjustering af det nøjagtige niveau og derfor kompensation, du vil blive tilbudt.

det er også vigtigt at bemærke, at ansættelse af ledere og personer, der henviser dig, har ringe indflydelse på den samlede proces. De kan hjælpe dig med at få en samtale i starten, men det handler om det.

2. Eksempel på spørgsmål

her på IGotAnOffer tror vi på datadrevet samtaleforberedelse og har brugt Glassdoor-data til at identificere de typer spørgsmål, der oftest stilles på Facebook.

til kodningssamtaler har vi opdelt de spørgsmål, du bliver stillet, i underkategorier (f.eks. Arrays / strenge, grafer / træer osv.), så du kan prioritere de hyppigste i din forberedelse. For systemdesign og adfærdsmæssige spørgsmål har vi listet 10 eksempler på spørgsmål, der ofte blev rapporteret om Glassdoor.

2.1 Kodningssamtale

spørgsmål til Facebook-programmelingeniørintervju

Facebook-programmelingeniører løser nogle af de sværeste problemer, virksomheden står over for med kode. Det er derfor vigtigt, at de har stærke problemløsningskompetencer. Dette er den del af samtalen, hvor du vil vise, at du tænker på en struktureret måde og skriver kode, der er nøjagtig, fejlfri og hurtig.

her er de mest almindelige spørgsmålstyper, der stilles i Facebook-kodningssamtaler og deres hyppighed. Bemærk, at listen nedenfor udelukker systemdesign og adfærdsmæssige spørgsmål, som vi dækker i de næste afsnit.

  1. Arrays / Strings (38% af spørgsmål, hyppigst)
  2. grafer / træer (29%)
  3. dynamisk programmering (18%)
  4. Søg / Sorter (9%)
  5. linkede lister (4%)
  6. stakke / køer (2%, mindst hyppige)

vi har også listet almindelige eksempler, der bruges på Facebook til disse forskellige spørgsmålstyper nedenfor. For at gøre disse spørgsmål lettere at studere har vi ændret formuleringen for at matche det nærmeste problem på Leetcode eller en anden ressource, og vi har linket til en gratis løsning.

endelig anbefaler vi at læse følgende artikel skrevet af en tidligere Facebook-samtale for at forstå mere om den trinvise tilgang, du skal bruge til at løse kodningsspørgsmål.

eksempel kodning spørgsmål stillet af Facebook

1. Arrays / Strings (38% af spørgsmålene, hyppigst)

  • “givet et array nums af n heltal hvor n > 1, returner et array output således at output er lig med produktet af alle elementerne i numsundtagen nums.”(Løsning)
  • “givet en ikke-tom streng s, kan du højst slette et tegn. Bedøm, om du kan gøre det til et palindrom.”(Løsning)
  • “implementere next permutation, som omarrangerer tal i leksikografisk næste større permutation af tal.”(Løsning)
  • “givet en streng S og en streng T, find minimumsvinduet I S, som vil indeholde alle tegnene i T i kompleksitet O(n).”(Løsning)
  • “givet en række strenge strs, gruppere anagrammerne sammen.”(Løsning)
  • ” givet en streng s, der kun indeholder tegnene ‘(‘, ‘)’, ‘{‘, ‘}’, “, find ud af, om inputstrengen er gyldig.”(Løsning)
  • ” givet et array nums af n heltal, er der Elementer A, b, c i nums sådan at a + b + c = 0? Find alle unikke trillinger i arrayet, der giver summen af nul.”(Løsning)

2. Grafer / træer (29%)

  • “i betragtning af root noden for et binært søgetræ skal du returnere summen af værdier for alle noder med værdi mellem L og R (inklusive).”(Løsning)
  • “givet et binært træ, konverter det til en cirkulær Dobbelt sammenkædet liste (in-Place).”(Løsning)
  • “Implementer en iterator over et binært søgetræ (BST). Din iterator initialiseres med rodnoden til en BST.”(Løsning)
  • “i betragtning af et binært træ skal du beregne længden af træets diameter.”(Løsning)
  • “Serialiser og deserialiser et binært træ” (løsning)
  • “givet et binært træ, find den maksimale sti sum.”(Løsning)
  • “givet en sorteret ordbog (array af ord) af et fremmed sprog, find rækkefølge af tegn på sproget.”(Løsning)
  • “Kontroller, om en given graf er todelt eller ej” (løsning)

3. Dynamisk programmering (18%)

  • “givet en liste over ikke-negative tal og et mål heltal k, skriv en funktion for at kontrollere, om arrayet har en kontinuerlig subarray af størrelse mindst 2, der opsummerer til multiplum af k, det vil sige opsummerer til n*k, hvor n også er et heltal.”(Løsning)
  • “sig, at du har et array, for hvilket Ith-elementet er prisen på en given aktie på dag i. hvis du kun fik lov til at gennemføre højst en transaktion (dvs., købe en og sælge en andel af aktien), design en algoritme for at finde den maksimale fortjeneste.”(Løsning)

  • “givet en inputstreng (s) og et mønster (p), implementere regulært udtryk matching med understøttelse af '.' og '*'.”(Løsning)
  • ” du får en liste over ikke-negative heltal, A1, A2, …, an og et mål, S. Nu har du 2 symboler + og -. For hvert heltal skal du vælge et fra + og - som dets nye symbol. Find ud af, hvor mange måder at tildele symboler for at gøre summen af heltal lig med mål S. ” (løsning)

4. Søg / Sorter (9%)

  • “vi har en liste over points på flyet. Find K nærmeste punkter til oprindelsen (0, 0).”(Løsning)
  • “i betragtning af to arrays, skriv en funktion til at beregne deres kryds.”(Løsning)
  • ” givet en række mødetidsintervaller bestående af start-og sluttider ,,…] find det mindste antal konferencelokaler, der kræves.”(Løsning)

5. Linkede lister (4%)

  • “en sammenkædet liste gives således, at hver node indeholder en yderligere tilfældig markør, der kan pege på en hvilken som helst node på listen eller null. Returner en dyb kopi af listen.”(Løsning)
  • ” givet en enkeltkædet liste L: L0?L1?…?Ln-1?Ln, Omarranger det til: L0?Ln?L1?Ln-1?L2?Ln-2?… “(Løsning)

6. Stakke / køer (2%)

  • “Gennemfør følgende operationer i en kø ved hjælp af stakke.”Bemærk: se flere detaljer på følgende link. (Opløsning)

2.2 3403 >

Facebook, Instagram og Facebook har alle 1 mia+ månedlige aktive brugere. Facebook-ingeniører skal derfor være i stand til at designe systemer, der er meget skalerbare. De kodningsspørgsmål, vi har dækket ovenfor, har normalt en enkelt optimal løsning. Men de systemdesignspørgsmål, du bliver stillet, er typisk mere åbne og føles mere som en diskussion.

dette er den del af samtalen, hvor du vil vise, at du både kan være kreativ og struktureret på samme tid. I de fleste tilfælde vil din samtalepartner tilpasse spørgsmålet til din baggrund. For eksempel, hvis du har arbejdet på et API-produkt, vil de bede dig om at designe en API. Men det vil ikke altid være tilfældet, så du skal være klar til at designe enhver type produkt eller system på et højt niveau.

som tidligere nævnt, hvis du er en junior udvikler forventningerne vil være lavere for dig, end hvis du er mid-level eller senior. Derudover for visse roller (f.eks. infrastruktur, sikkerhed osv.) du vil sandsynligvis have flere systemdesignsamtaler i stedet for kun en.

her er de mest almindelige spørgsmål om systemdesign, der stilles i Facebook-intervju-rapporterne, som kan findes på Glassdoor. For mere information anbefaler vi at læse følgende vejledning om, hvordan du besvarer spørgsmål om systemdesign, og øve spørgsmål om systemdesign i dette kursus.Instagram Facebook Facebook Instagram Instagram Stories

Top 10 system design spørgsmål stillet på Facebook

  • hvordan ville du designe Instagram / Instagram Stories
  • hvordan ville du designe Facebook Messenger
  • hvordan ville du designe Facebooks live opdatering af kommentarer til indlæg
  • hvordan ville du designe en online Google Docs)
  • hvordan ville du designe en Typehead-funktion (f. eks. Google search autofuldførelse)
  • hvordan ville du designe kvidre trending emner
  • hvordan ville du designe et distribueret Botnet
  • hvordan ville du designe et system, der kan håndtere millioner af korttransaktioner i timen
  • hvordan ville du designe sikkerhed for Facebook ‘ s virksomhedsnetværk fra bunden (Sikkerhedsteamsamtale)

2.3 Adfærdssamtale

Facebook-ingeniører arbejder normalt i tværfunktionelle teams med andre ingeniører, produktledere, designere, dataanalytikere osv. De skal være i stand til at kommunikere klart, arbejde effektivt med andre, opbygge tillid og relationer osv.

dette er den del af samtalen, hvor du virkelig vil vise, at du er god til at arbejde med andre. Som vi nævnte tidligere, hvis du ansøger om en lederposition eller derover, har du flere adfærdssamtaler og dækker også emner som førende teams, udvikling af talent, styring af det daglige osv.

nedenfor har vi listet ti hyppige adfærdsmæssige spørgsmål, som Facebook har tendens til at stille, ifølge data fra Glassdoor. For mere information, se vores artikler om, hvordan du besvarer spørgsmål om adfærdssamtale og “hvorfor Facebook?” spørgsmål.

Top 10 adfærdsmæssige spørgsmål stillet på Facebook

  • Fortæl mig om dig selv
  • hvorfor Facebook?
  • Fortæl mig om et nyligt / favoritprojekt og nogle af de vanskeligheder, du havde
  • Fortæl mig om den største bedrift i din karriere
  • Fortæl mig om en tid, du kæmpede for at arbejde med en af dine kolleger
  • Fortæl mig om en tid, du var nødt til at løse en konflikt i et team
  • Fortæl mig om en tid, du fik feedback, der var konstruktiv
  • fortæl mig om en tid, du var nødt til at træde op og tage ansvar for andre
  • fortæl mig om en tid, du kæmpede på et af dine programmelprojekter
  • fortæl mig om din værste chef og hvorfor de var dårlige

3. Sådan forbereder du

nu hvor du ved, hvilke spørgsmål du kan forvente, lad os fokusere på, hvordan du forbereder dig. Det er ingen hemmelighed, at præstationslinjen på Facebook er høj. Nogle mennesker går endda så langt som at afslutte deres job for at forberede sig på samtaler på fuld tid.

dette er naturligvis ekstremt og ikke hvad vi anbefaler at gøre, men det viser, hvor meget indsats nogle kandidater er klar til at lægge ind. Vi har listet de fire trin, Vi anbefaler at tage for at forberede så effektivt som muligt nedenfor.

3.1 Lær om Facebook ‘ s kultur

de fleste kandidater undlader at gøre dette. Men før du investerer snesevis af timer med at forberede dig til en samtale på Facebook, skal du tage dig tid til at sikre dig, at det faktisk er det rigtige firma for dig.

Facebook er prestigefyldt, og det er derfor fristende at ignorere dette trin fuldstændigt. Men efter vores erfaring vil prestige i sig selv ikke gøre dig glad dag til dag. Det er den type arbejde og de mennesker, du arbejder med, der vil.

hvis du kender ingeniører, der arbejder på Facebook eller plejede at arbejde der, er det en god ide at tale med dem for at forstå, hvordan kulturen er. Derudover vil vi anbefale at læse om Facebook ‘ s 5 kerneværdier og hackerkultur.

3.2 Øv dig selv

som nævnt ovenfor har du tre typer samtaler på Facebook: kodning, systemdesign og adfærdsmæssig. Det første skridt i din forberedelse bør være at børste op på disse forskellige typer af spørgsmål og praksis besvare dem ved dig selv.

til kodningssamtaler anbefaler vi at læse følgende artikel skrevet af en tidligere Facebook-samtale for at forstå mere om den trinvise tilgang, du skal bruge til at løse kodningsspørgsmål i en samtale.

og for at øve anbefaler vi at bruge Leetcode, hvor du kan få meget gjort med det gratis niveau og også få adgang til Facebook-specifikke spørgsmål ved hjælp af Premium-niveauet.

til systemdesignsamtaler anbefaler vi at studere vores systemdesignsamtalevejledning. Guiden dækker en trinvis metode til besvarelse af spørgsmål om systemdesign og giver flere eksempler på spørgsmål med løsninger.

til adfærdssamtaler anbefaler vi at lære vores trinvise metode til at besvare denne type spørgsmål. Derudover vil du gerne skrive dine svar på de almindelige adfærdsmæssige spørgsmål, vi har nævnt i det foregående afsnit.

endelig er en god måde at øve kodning, systemdesign og adfærdsmæssige spørgsmål på, at samtale dig selv højt.

det lyder måske mærkeligt, men det vil forbedre den måde, du kommunikerer dine svar på under en samtale og virkelig gør en forskel i vores oplevelse. Spil rollen som både kandidaten og intervjueren, stille spørgsmål og besvare dem, ligesom to personer ville gøre i en samtale.

3.3 Øv med jævnaldrende

at øve dig selv vil kun tage dig så langt. En af de største udfordringer ved kodningssamtaler er at skulle kommunikere, hvad du laver, som du gør det. Som et resultat anbefaler vi kraftigt at øve live-kodningssamtaler med en peer-samtale, der undersøger dig.

et godt sted at starte er at øve med venner, hvis du kan. Hvis du ikke har nogen i dit netværk, der kan tale med dig, kan du også finde jævnaldrende at øve med på platforme som Pramp.

3.4 praksis med tidligere samtaler

den største fordel ved at øve med jævnaldrende er, at det er gratis. Men på et tidspunkt vil du begynde at bemærke, at den feedback, du får fra jævnaldrende, ikke hjælper dig så meget længere. Når du når det stadium, anbefaler vi at øve med tidligere samtaler fra top tech virksomheder.

hvis du kender en Programmelingeniør, der har erfaring med at køre samtaler hos Facebook eller et andet big tech-firma, så er det fantastisk. Men for de fleste af os, det er svært at finde de rigtige forbindelser for at få dette til at ske. Og det kan også være svært at øve flere timer med den person, medmindre du kender dem rigtig godt.

her er de gode nyheder. Vi har allerede lavet forbindelserne til dig. Vi har oprettet en coachingtjeneste, hvor du kan øve dig 1-mod-1 med tidligere samtaler fra førende tech-virksomheder som Facebook. Lær mere, og begynd at planlægge sessioner i dag.

SV Coaching

har du spørgsmål om Facebook-Ingeniørsamtaler?

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.