Knækker frontend-interviewet

Tekniske frontend-interviews er vanskelige. Det er en kendsgerning. Ikke kun skal du have et solidt kendskab til grundlæggende datalogi, men også en forståelse af ting som webydelse, build-systemer og CSS-layoutmotorer.

Mens der er ressourcer derude, har jeg fundet ud af, at der kun er et par komplette guider, der hjælper dig med at forberede dig til et front-end-interview. Så jeg besluttede at skrive et emne efter emne, der forhåbentlig vil hjælpe dig med at få dit næste interview.

Før interviewet

Så inden dit interview skal du bede din rekrutterer om formatet på interviewet. Nogle interviews kan dreje sig om en whiteboard, mens andre muligvis bruger en online teksteditor som CoderPad. Det er vigtigt at vide, så du kan øve dig i det miljø, som dit interview skal finde sted i.

Bed også din rekrutterer om tip til, hvilke emner du skal fokusere på, når du forbereder dig. Årsagen til dette er, at ud over det front-end-specifikke spørgsmål, vil nogle virksomheder stille dig traditionelle datalogiske spørgsmål om emner som søge- og sorteringsalgoritmer.

Front-end koncepter

HTML og CSS, Javascript og Javascript design mønstre er de nøglebegreber, som du vil blive testet på under et interview. Gå gennem listen og sørg for, at du er fortrolig med hvert emne.

HTML og CSS er som brød og smør ved front-end-udvikling. Under interviews vil du højst sandsynligt blive stillet spørgsmål om nuancerne i HTML og CSS. Vær også forberedt på at blive bedt om at kode et layout baseret på en mockup.

Bare hvis du har brug for en HTML- og CSS-genopfriskning, her er et par grundlæggende begreber at se over.

  • CSS animationer
  • CSS sprites
  • Pseudoklasser
  • Netsystemer
  • Semantisk markering

Ud over disse koncepter skal du vide om CSS-forprocessorer som SASS eller LESS og deres fordele. Vær også fortrolig med CSS-navngivningskonventioner som BEM og OOCSS.

Et andet vigtigt punkt er, at interviewere leder efter kandidater, der forkæmper bedste praksis for CSS. Som en god reference giver denne guide skrevet af en front-end på Medium indsigt i, hvordan Medium gentog deres nuværende CSS-arkitektur.

Jeg nævnte tidligere, at nogle interviewere vil bede dig om at genskabe layouts i HTML og CSS. Øv dig på at gøre det på en legeplads som CodePen. Tjek Dribbble, da det har masser af enkle, men pæne designs, der ville være sjovt at genskabe.

Endelig, som frontend, er vi så vant til at foretage ændringer i vores editor og derefter kontrollere ændringen i vores browser. Ofte under interviews vil du ikke have denne luksus. Når du forbereder dig til dit interview, skal du prøve at kode det meste af dit layout uden at se på resultatet indtil slutningen.

Hvis HTML og CSS er brød og smør ved front-end-udvikling, så er Javascript kniven. Virksomheder bruger en god mængde tid under dit interview på at teste din viden om Javascript. Mange af spørgsmålene vil dreje sig om følgende begreber.

  • Prototypisk arv
  • Scoping
  • Lukninger
  • Begivenhedssløjfen
  • Begivenhed boblende
  • Ansøg, ring og bind
  • Tilbagekaldelser og løfter
  • Variabel og funktionsløft
  • Currying

Når du får et Javascript-spørgsmål, skal du finde ud af, hvilke af disse begreber du testes på, og det bliver meget lettere at finde ud af den rigtige løsning. Hvis du føler dig sikker på din Javascript-dygtighed, skal du teste din viden her, her og her.

Designmønstre i Javascript giver dig repeterbare løsninger på almindelige problemer. Dette er et par af de designmønstre, der er vigtige at kende.

  • Dekoratør
  • Fabrik
  • Singleton
  • Afslørende modul
  • Facade
  • Observer
  • MVC, MVP, MVVM

Bortset fra Javascript-designmønstre er det godt at være fortrolig med Javascript-rammer. Dette betyder ikke , at du skal lære en anden ramme inden dit interview. I stedet ved, hvornår og hvorfor frontend-hold bruger rammer. Også, hvis du interviewer for noget som React + Flux eller en Angular position, skal du gennemgå noget af dokumentationen til rammens arkitektur på forhånd.

Computervidenskabskoncepter

Nogle virksomheder ansætter softwareingeniører før front-end-udviklere. Hvad dette betyder er, at disse virksomheder forventer, at du er godt forankret i emner som gode softwaredesignprincipper, skalerbar kodearkitektur og test.

Hvis din rekrutterer foreslår, at du gennemgår din viden om datastrukturer og algoritmer, er dette afsnit noget for dig. Ellers er du velkommen til at springe dette afsnit over. Hvis du ikke har en datalogisk baggrund, er det okay. De fleste af disse begreber er ret enkle at lære.

Dette er de grundlæggende datastrukturer, som jeg vil foreslå at kende fra toppen af ​​dit hoved. Læs ikke bare om dem, tag dig også tid til at implementere dem i Javascript. Hvis du ikke er fortrolig med enhedstest, skal du teste din datastruktur med et bibliotek som Mocha for at lære.

  • Tilknyttede lister
  • Hashtables
  • Stakke og køer
  • Træer (binære træer og dynger)
  • Grafer

Bemærk: Ved grafer skal du også vide, hvordan du implementerer dybde-første og bredde-første søgningsprocesser.

For implementeringer af disse datastrukturer kan du se på SanFoundry. Alle deres eksempler findes i Java, men det er ret nemt at geninstallere dem i Javascript.

Når du først er sikker på datastrukturer, kan du gå videre til sortering. Gå gennem listen, implementer dem i Javascript, og noter derefter deres tid og rums kompleksitet.

  • Binær søgning
  • Boblesortering
  • Indsættelse sortering
  • Flet sortering
  • Hurtig sortering
  • Valg sortering

Efter at have gennemgået datastrukturer og algoritmer, test din viden med Leetcode og disse tekniske Javascript-spørgsmål.

Pakning af det

Jeg ved, at det er meget materiale at tage i, især hvis du er ny inden for front-end-udvikling. Begynd at forberede dit interview på forhånd, så du kan bevæge dig i et behageligt tempo.

Husk også, at interviews ikke er et mål for din værdi som programmør. Nogle mennesker er gode til interviews, andre ikke. Nogle gange klikker du med din interviewer, andre gange gør du det ikke.

Hvis du har spørgsmål, er du velkommen til at efterlade en note eller tweet ud til mig. Jeg ville også elske at vide, hvordan din interviewoplevelse gik. Held og lykke!

PS Hvis du kunne lide denne artikel, ville det betyde meget, hvis du trykker på knappen anbefale eller deler med venner.

Hvis du vil have mere, kan du følge mig på Twitter, hvor jeg sender ikke-sensiske spøgelser om design, front-end-udvikling, bots og maskinindlæring.