Tekniske intervjuer er kjent for sine gåter. Enten du blir bedt om å skrive et binært tre ute på en tavle, forklare en sorteringsalgoritme eller implementere FizzBuzz på 10 linjer eller mindre, bør du forberede deg på tekniske programmeringsspørsmål i gjennomsnittlig intervju.
Men det er ikke det eneste du bør være forberedt på.
Realiteten er at mange utviklere vil kunne løse vanlige spørsmål om programmeringsintervjuer med liten varians mellom svarene. Så hva gjør deg forskjellig fra neste kandidat? Det er akkurat det vi vil fokusere på i disse fem tipsene.
1. Snakk om begrunnelses- og problemløsingsprosessen
Det verste du kan gjøre når du blir stilt et tøft spørsmål, er å gå helt målløs. Dessverre er det veldig enkelt å gjøre dette ved et uhell. Når du støter på et problem som krever betydelig mental energi og fokus, er det sannsynlig at din første tilbøyelighet er å trekke seg tilbake i tankene dine. Selv om dette er naturlig, er det heller ikke veldig nyttig for intervjueren.
Poenget med tekniske spørsmål, delvis, er å avdekke hvordan du tenker på å løse problemer. Hva er prosessen din? Hvordan bryter du ned de forskjellige komponentene? Hvordan kommer du til en løsning? Hvordan reagerer du når du prøver noe som ikke fungerer? Er du flinkere til å eksperimentere med kode eller til å tegne noe ute på en tavle?
Forklar hva som skjer i hodet ditt når du løser problemet. Oppfør deg som om du spiller inn stemmen din for å publisere på nettet for å lære andre hvordan du løser problemet. Selv om intervjuerne gir deg rom til å tenke stille, kan du ha fordel av å forklare tankeprosessen uten at de ber deg om å gjøre det. Ikke bare hjelper dette dem å forstå ferdighetene og kritisk tenkning grundigere, men det gjør deg også mer minneverdig.
2. Hva er bedre enn å løse et problem i et teknisk intervju? Å løse det to ganger
Svært få problemer har bare én løsning, og alle problemer har uendelig ukorrekte løsninger. Så hvis du bare fokuserer på en måte å løse et problem, mangler du en viktig mulighet til å bevise din fleksibilitet og ferdighetssett.
I stedet for å bare gå med en kjent løsning eller jobbe på et enkelt språk, kan du åpne diskusjonen om det aktuelle problemet og løse det for forskjellige scenarier. For eksempel, hvis du blir bedt om å programmere FizzBuzz, kan du tilby å gjøre det på to språk, eller ved å bruke to forskjellige paradigmer, eller kanskje ved å ta noen ytelsesbegrensninger for en løsning og estetiske begrensninger for en annen.
Ved å validere at problemet kan ha flere løsninger, viser du din tilpasningsdyktighet, fleksibilitet og bevissthet, som alle gir tillit til intervjuerne at du vil kunne velge riktig løsning blant mange muligheter.
Selvfølgelig, ikke gå over bord - det er en kunst å lese når svar på et spørsmål med flere løsninger blir overkill eller lykkelig velkommen. Hvis du er i tvil, ikke vær redd for å spørre intervjuere om de har noe imot det, hvis du tar litt tid på å utvide løsningen din med et sekundært alternativ.
3. Ikke vær redd for å dele dine meninger, når det er aktuelt
Noen ganger, mens du jobber gjennom problemer, vil du ta beslutninger som helt er basert på din egen smak og mening. Og det er OK - arbeidsgivere er interessert i din mening! Måten du tenker og reagerer på situasjoner utgjør en stor forskjell for kulturen til et selskap. Å ha en mening er også et tegn på ledelse og teknisk modenhet som utvikler. For å ha en diskusjon om meningene dine, krever du at du har evaluert andre holdninger til et gitt emne.
Husk imidlertid at meninger kan holdes veldig tett. Hvis du er uenig med intervjueren om et gitt emne, bør du trå lett når du deler den informasjonen. Selv om det er bra å ha et synspunkt, er det også viktig å merke seg at det ikke alltid er nødvendig å dele det, og vite hvordan du velger kampene dine. En god tommelfingerregel: Ikke del din mening med mindre du blir spurt.
4. Ikke avslutt svaret med "Jeg vet ikke"
Med mindre du står overfor et "Kobayashi Maru" -scenario, må du aldri avslutte et intervjuspørsmål med "Jeg vet ikke." Det er ikke et alternativ på jobben, så det burde ikke være et alternativ i intervjuet.
Jeg sier selvfølgelig ikke at du skal vite alt. Det er umulig! Men du skal vise at du har en strategi for å lære det du trenger å vite for å få jobben gjort. Forsøk å svare med "Jeg vet ikke hvordan jeg gjør det, men her er hvordan jeg vil finne ut av det." Dette svaret bør gå lenger enn å bare si "Jeg ville Google det, " også. Du har det bedre å forklare den mest sannsynlige retningen du ville undersøke.
Skam deg mest av alt! Læring er i stor grad prosessen med å finne ut av tingene du ikke vet. Arbeidsgiveren din forventer ikke at du skal være perfekt, men de forventer at du skal være flittig og intelligent og aldri slutte med et problem.
5. Spill alltid for laget
Med mindre du er frilansutvikler, vil jobben din alltid settes i sammenheng med et team, og teamets suksess er alltid avgjørende for din egen. Så intervjuet ditt skal gjenspeile at du ikke bare er opptatt av å løse problemene dine på en gitt dag, men heller at du er fokusert på å gjøre det som er nødvendig for at teamet skal lykkes.
Så, hvordan kan du kommunisere dette i et intervju?
Diskuter aldri problemer som om de er i vakuum
Nesten ethvert prosjekt vil praktisk talt ha ressurskrav og begrensninger, så vis din bevissthet om problemets kontekst. Et problem som løses godt, men har gått over budsjettet, er ikke virkelig den største løsningen.
Vis din bevissthet om ekspertisen på det eksisterende teamet
Noen ganger er det beste svaret på et spørsmål å be andre i teamet ditt om å samarbeide med deg, og du kan henvise disse personene til de tekniske spørsmålene: "Hvis jeg ble presentert dette problemet i sammenheng med teamet vårt, ville jeg sannsynligvis bedt om å gjennomgå min løsning også. ”Dette viser at du er villig til å stole på andres kompetanse, og at målet ditt er å komme frem til den beste løsningen.
Kommuniser teamet ditt Drevne verdier eksplisitt
Dette er en viktig nok sak til at du skal komme rett ut og si det. Du vil sørge for at arbeidsgiverne dine er fullstendig klar over at målet ditt er å hjelpe selskapet til å lykkes, ikke bare å sitte ved skrivebordet og kode hele dagen.
Til syvende og sist er jobben din som utvikler ikke bare å kode. Det er å være en lagspiller, en leder og noen som aldri er villige til å slutte med et problem. Mulighetene i et teknisk intervju er ikke bare å vise at du kan oppfylle mål eller skrive algoritmer, men også å sette deg over konkurransen og vise verdien du tilfører en arbeidsgiver.