När företag anställer programmerare ingår det nästan alltid ett moment där man förutsätter att du ska kunna lösa problem genom att lösa problem med kod. Du förväntas kunna koda snippets som löser problemen, och det här är ofta en stressfull situation. Yen Huang är mjukvaruingenjör på Twitter och har varit i denna situation många gånger. I en artikel som ursprungligen publicerades av Yen Huang på Medium, ger han sina fem bästa tips för hur du klarar kodintervjuer.

1. Gör upp en plan innan du börjar koda

Innan du börjar koda bör du lägga upp en plan för hur du ska lösa problemet, du bör lägga fem till tjugo minuter på denna del. Ett typiskt exempel är att rita upp diagram och skapa testexempel. Om det gäller grafproblem eller rekursionsproblem är det läge att rita upp trädstrukturer för att identifiera olika tillstånd och i vilken ordning de ska komma. Att rita träd belyser också logiken i lösningen.

Att rita upp en plan ger flera fördelar, dels kan intervjuaren ge dig indikationer på om du är ute på fel spår, vilket spar en massa tid, dels är det enkelt att se olika datastrukturer och variabler du behöver för att lösa problemet. Det gör inget om din lösning inte är optimal, bara det är en lösning, hellre än ingen lösning.

2. Kommunicera

Eftersom intervjuaren inte vet vad som försiggår i ditt huvud måste du kommunicera vad du tänker. Det här är en viktig färdighet eftersom det ger intervjuaren möjlighet att utvärdera hur du tar dig an problemet och hur du tänker dig framåt i processen.

De viktigaste sakerna du bör kommunicara om är när du tagit fram en plan, när du märker att det finns flera lösningar på ditt problem, och hur du väljer den mest effektiva lösningen, när du ser en bugg i din kod, och när du stegar igenom din kod med ett testfall för att verifiera lösningen.

3. Testa alltid din kod

Det känns skönt när du skrivit den sista raden kod. Du har löst ett knepigt problem under press, men du är inte helt över mållinjen än. Om du säger att du är färdig utan att verifiera koden med några testfall kan du äventyra intervjun. Så se till att testa din kod med minst två testfall, varav det ena bör vara ett randfall, och kommunicera under tiden du testar.

4. Fråga om input

Innan du börjar koda behöver du tänka igenom olika former av indata. Det här är avgörande för vilken plan du ska använda. Fråga intervjuaren till exempel om indata kan vara null, om en array är sorterad eller inte, om en länkad lista är en- eller dubbelriktad eller om din array kan innehålla negativa tal. Det är viktigt att ha koll på indata, beroende på hur den ser ut kommer komplexiteten för din lösning bli olika.

5. Det är ok att fråga om hjälp, men inte för mycket

Du kan hamna i en situation där du inte har en aning om hur du ska lösa ett problem. Då är det ok att be om ledtrådar, men du ska inte gå så långt som att intervjuaren löser problemet åt dig. Du behöver en putt i rätt riktning, men du ska lösa problemet på egen hand. Då har du visat att du tänker på egen hand och kan lösa problem, om än med lite hjälp på traven.

Men fråga inte för mycket, det får inte framstå som att du inte kan lösa problemet på egen hand. Ett bra riktmärke är två frågor, då är du fortfarande på den säkra sidan. Mer än så kan riskera jobbet.

Extratips: Lägg inte för mycket tid och energi på så kallat leetcode, det hjälper dig inte att få jobb. Det handlar inte om hur många problem du kan lösa, och du ska inte försöka memorera alla möjliga lösningar. Det finns dem som klarat över 500 leetcode-problem och ändå inte landar drömjobbet. Fokusera istället på tekniker och tillvägagångssätt, då får du en mer generell verktygslåda som löser många slags problem.

Läs också:
Fem sätt att schemalägga din arbetsdag – och hålla fokus
Lata kolleger retar oss mest