Of je nu programmeert omdat je pyjama's erop staan of je de loop van je eerste post-schoolbaanjacht onder ogen ziet, het technische interview kan een angstaanjagende hindernis zijn tussen jou en je droombaan.
Maar wees niet bang - bereid je gewoon voor om te pronken met je vaardigheden. Hieronder vindt u enkele tips die nuttig zijn om een technisch interview te krijgen.
Voor het interview
Ontvang een boek
Begin zo vroeg mogelijk voor je interview (hoewel ik er maar twee weken in slaagde). Door het werken met een prep-boek worden niet alleen uw kennis over algoritmen en datastructuren vernieuwd, maar komt u ook in de juiste probleemoplossende denkrichting.
Het belangrijkste is dat u het juiste prep-boek kiest voor uw niveau en interesses. Cracking the Coding Interview is een geweldige bron, maar als je nog geen redelijk ervaren programmeur bent, zal het de ervaring niet goedmaken. Als je net begint, zijn er andere boeken waar je meer kilometers uit haalt, zoals Programmering Interviews Exposed: Secrets to Landing Your Next Job . En er zijn nog veel meer gespecialiseerde en geavanceerde boeken voor mensen met meer ervaring.
Oefening baart kunst
Weinig dingen verslaan paniek zoals oefenen, dus begin met whiteboarden wanneer je kunt, zelfs heel kleine problemen. Coderingsinterviewboeken bieden bijna eindeloze voorbeeldproblemen, maar u kunt ook problemen gebruiken waar u al aan werkt. Stel het probleem voor jezelf (of vraag een technisch ingestelde vriend om het voor je te stellen, voor een realistischere opstelling), stel je strategie in kaart en plaats de marker op het bord met droog wissen. Hoe comfortabeler je bent om dat lege bord thuis te markeren, hoe minder aarzelend je zult zijn bij het interview.
Als je weinig tijd hebt en snel over de shakes heen wilt, kun je druk toevoegen die er niet zal zijn in het eigenlijke interview. Als je jezelf een tijdslimiet geeft of iemand die je respecteert de rol van je interviewer speelt, zal het echte werk een fluitje van een cent zijn.
Overbelast uzelf niet
Houd bij het plannen van interviews minstens een paar uur tussen elke interview. Dit klinkt als een probleem uit de eerste wereld, maar elke keer als ik meerdere interviews op een dag had, presteerde ik niet zo goed als ik had kunnen doen. Ik maakte me zorgen om op tijd bij de volgende te komen of ik had mijn logica al uren eerder gemaximaliseerd.
Oh, en ga slapen. Dit klinkt als iets dat je moeder je zou vertellen, maar er zijn maar weinig dingen die je van je spel zullen gooien, zoals slaapgebrek. Het is vergelijkbaar met dronken opdagen.
In het interview
Wees op alles voorbereid
Als je eenmaal in je interview bent, moet je voorbereid zijn op een paar verschillende soorten probleemoplossing. Je interviewers kunnen je vragen om te praten over hoe je een probleem zou oplossen, ze kunnen een computer openen en je vragen om hen te begeleiden bij het maken van code, of ze kunnen je de code zelf op een whiteboard laten schrijven. Wees voorbereid op variatie en laat de details niet vallen! Welke methode uw interviewers ook gebruiken, het zijn uw probleemoplossende vaardigheden die ze echt testen.
Vragen stellen
Als u een probleem krijgt, denk er dan goed over na en zorg ervoor dat u volledig begrijpt wat u wordt gevraagd om terug te keren. Wees niet bang om vroeg vragen te stellen als er iets onduidelijk is. Als er edge-cases zijn, vraag dan hoe uw interviewers willen dat ze worden behandeld. Moet je een uitzondering maken? Breken?
Zorg er ook voor dat u procedurele vragen stelt om te begrijpen waar de interviewers naar op zoek zijn en wat uw beperkingen zijn, bijvoorbeeld: 'Is er een specifieke taal waarin u wilt dat ik u mijn oplossing geef?' Of 'Kan ik aannemen dat ik toegang heb naar een Python-bibliotheek? '
En maak geen aannames. Zelfs als u er vrij zeker van bent dat het veilig is, kunt u hardop vermelden wat u denkt, zodat de interviewers u kunnen laten weten of u iets mist.
Neem je tijd
Als u eenmaal de vraag die u wordt gesteld begrijpt, wees dan niet bang om even na te denken en te verwerken voordat u begint met het oplossen van het probleem. Zolang je niet wordt geconfronteerd met snelle, op kennis gebaseerde vragen, is het een goede zaak om na de vraag te pauzeren. Natuurlijk - zorg ervoor dat je geen 10 minuten neemt om het op te lossen in je hoofd zonder een woord te zeggen! Het punt is om je tijd van tevoren te gebruiken om je aanpak te structureren, niet om te proberen alle code in je hoofd te schrijven voordat je de marker naar het whiteboard raakt.
Denk groots
Denk eerst aan het grote beeld van het probleem. Het is prima om de algehele structuur te pseudo-coderen, zolang je de interviewers maar vertelt wat je aan het doen bent en dat je van plan bent terug te gaan en het later daadwerkelijk te coderen. Het is een goede manier om het organiseren van het probleem te ontlasten, zodat je hersenen meer ruimte hebben voor verwerking. Dit zal ook helpen als je uiteindelijk te weinig tijd hebt; de interviewers zullen op zijn minst weten hoe je van plan was om de taak af te ronden, zelfs als je de details niet te weten kwam.
Maak je in het begin ook geen zorgen over het vinden van de meest efficiënte manier om het probleem op te lossen, tenzij het vanzelf in je hoofd opkomt. Nagel een minder efficiënte oplossing en bespreek vervolgens waarom deze minder dan ideaal is. Ga vervolgens naar een meer tijd- of ruimtevriendelijk algoritme als u tijd hebt of een betere manier ziet om dit op te lossen. Zelfs als het enige dat u nog hoeft te doen is uw minder efficiënte versie af te maken en vervolgens uit te leggen hoe u het beter zou doen, is dat geen slecht antwoord.
Praat het uit
Het belangrijkste is: praten. Neem uw interviewers met u mee bij het oplossen van problemen. Dit kan zo simpel zijn als het schetsen van wat je gaat doen wanneer je het doet ("Dus, ik heb een for-loop nodig om alle items in deze lijst te doorlopen") of problemen voor jezelf als jij gaan ("Dit betekent dat ik een betere manier nodig heb om toegang te krijgen tot de informatie; hmm, daar kom ik later op terug").
Het doornemen van uw denkproces geeft uw interviewers een venster in hoe u denkt, en dat is uiteindelijk het punt van het interview. Zelfs als u denkt dat uw oplossing geweldig is, is het beter voor hen om te weten hoe u het probleem hebt benaderd en tot uw antwoord bent gekomen dan om het volledige antwoord te zien en geen idee te hebben wat u daar naartoe heeft geleid. Het geeft de interviewers ook een kans om je te helpen als je vastzit of een pad inslaat dat een doodlopende weg is.
Breng ook uw mensenvaardigheden mee
Alleen omdat je voor een technische baan gaat, wil nog niet zeggen dat je je kunt vermaken om knap en verantwoordelijk te zijn. Ik heb horrorverhalen gehoord van fantastische programmeurs die niet zijn aangenomen omdat ze niet bij een cultuur pasten of een slechte houding hadden. Ik weet zeker dat jij dat ook hebt gedaan. Wees niet die persoon.
Nieuwsgierigheid en enthousiasme worden bij elke medewerker gewaardeerd - en ontwikkelaars zijn niet anders. Vraag naar het engineeringteam van het bedrijf, de stack en de moeilijkste problemen die het voor het product aanpakt. Natuurlijk is er een dunne lijn tussen enthousiast zijn en een sycofant zijn, dus houd het oprecht, maar iedereen houdt van een kandidaat die geïnteresseerd is in het product waaraan hij of zij zal werken.
Iets nieuws leren
Ten slotte is een ding dat geïnterviewden het meest missen de leermogelijkheid. Hopelijk leert u in elk interview iets nieuws - u verwerft een nieuw idee of nieuwe tool, of krijgt enig inzicht in interessante producten en technologie. Hoe meer je op deze manier over je interviews denkt, hoe waardevoller die tijd op de lange termijn voor jou zal zijn.