Att bedöma kodningsfärdigheter har nu blivit en oumbärlig del av den tekniska anställningsprocessen - mängden CV du får från kandidater som inte kan koda är överväldigande. Vi vet att meritförteckningar är en dålig prediktor för prestanda och i de flesta fall är Github-aktivitet inte heller ett bra mått på utvecklarens färdigheter.

På Adaface designar våra ämnesexperter kodningstester genom att noggrant förstå din roll och dina krav. Vi satt med dem för att dela upp deras process för att sätta upp kodningstester som är i linje med jobbkraven för att minska falska positiva och falska negativa.

Hur ställer man in ett kodningstest?

Det finns två viktiga delar att tänka på när du ställer in ett kodningstest:

  • Frågor som är i linje med jobbkraven
  • En formfaktor som inte skrämmer kandidater

Frågor

Det största problemet med kodningstester idag är att de inte alltid är i linje med vad rollen kräver. En Android-utvecklare behöver inte nödvändigtvis veta hur man inverterar ett binärt träd. Eller det kanske de gör. Men poängen är att om du använder det på ett kodningstest för den rollen, bör du vara mycket medveten om det.

Här är ett sätt att tänka på vad som ska gå på ett kodningstest:

Frågor där du kanske ändå anställer personen även om de inte kunde lösa det/fått helt fel är meningslösa i screeningskedet, som till exempel ett kodningstest.

Tanken med ett kodningstest är att eliminera kandidater som uppenbarligen inte passar bra för den rollen. Vi har funnit att det mest användbara sättet att göra det skulle vara att använda två måste-kunna-koda-frågor, den ena enklare än den andra och ge kandidater som delvis löser det tvivel. Detta eliminerar kandidater som i princip inte kan koda (ganska många av dem), och sedan kan du ta resten till de sista intervjuomgångarna.

För att nu bestämma vad dessa måste-kunna-koda-frågor ska vara, här är vad du måste svara först:

  1. Behövs algoritmisk skicklighet för att bli framgångsrik i den rollen? Med andra ord: fokuserar rollen på att sänka svarstiden per API? Effektivisera data för snabbare exekvering? Bättre frontend-komponentisering för snabbare sidladdningar? Om svaret på detta är ett absolut ja, då- Vilken nivå av algoritmiska färdigheter behöver du? Skulle grundläggande optimeringskunskaper vara tillräckliga eller behöver du expertis med nischade datastrukturer/algoritmer?
  2. Behöver de ha erfarenhet av ett visst programmeringsspråk eller kan någon smart plocka upp det på jobbet?
  3. Behöver de skicka snabbt eller vara mer noggranna och försiktiga?

Dina svar på dessa frågor avgör vilka frågor som ingår i kodningstesten och vad som går in i personliga intervjuer. Här är några exempelfrågor (och scenarierna där dessa frågor skulle vara vettiga på ett kodningstest):

Hitta ett lokalt minima i en array

  • Kontrollerar om kandidaten kan arbeta med grundläggande datastrukturer/ grundläggande optimeringar och skriva kod för att täcka flera kantfall.
  • Återspeglar arbete på jobbet: Falskt
  • Användbar för: Fresh grad roller

Felsökningskod för att validera eller ogiltigförklara en serie postnummer baserat på givna begränsningar

  • Kontrollerar om kandidaten kan förstå kod skriven av någon annan och arbeta med flera loopar/funktioner.
  • Återspeglar arbete på jobbet: Sant
  • Användbar för: Mjukvaruteknikroller som kräver arbete med befintlig kodbas (för kandidater med 1–3 års erfarenhet)

Analysera serier av loggar och extrahera mätvärden

  • Kontrollerar om kandidaten kan förstå dataformat, analysera loggar och beräkna mätvärden
  • Återspeglar arbete på jobbet: Sant
  • Användbar för: Dataanalys/ backend-roller

Slår samman sorterade listor

  • Kontrollerar om kandidaten kan använda grundläggande datastrukturer effektivt och tänka kring tidskomplexitetsoptimeringar.
  • Återspeglar arbete på jobbet: Falskt
  • Användbar för: Mjukvaruteknikroller med fokus på tidskomplexitetsoptimering på API- eller databasnivå för 1–3 års erfarenhetskandidater

Topp K-kandidater i en dataström med utrymmesbegränsningar

  • Kontrollerar om kandidaten kan använda lite avancerade datastrukturer som prioriterade köer effektivt och arbeta med begränsningar.
  • Återspeglar arbete på jobbet: Sant
  • Användbar för: Backend-ingenjörer med 1–3 års erfarenhet för roller som involverar systemdesign

Hitta den kortaste vägen för leveransen att nå kunden

  • Kontrollerar om kandidaten kan använda avancerade datastrukturer som träd/grafer effektivt och arbeta med avancerade algoritmer.
  • Återspeglar arbete på jobbet: Sant
  • Användbar för: Roller för algoritmdesign (på företag som Uber)

PS: avsnittet ovan är tänkt att visa vilken typ av frågor du bör ställa, inte de exakta frågorna i sig. Vissa av dem är för populära för att det ska vara en bra idé att sätta dem på ett kodningstest.

Formfaktor

När du har slutfört frågorna är det andra att tänka på formfaktorn. Här är de viktiga sakerna du behöver tänka på för ett effektivt kodningstest:

  1. Kortare bedömningar (45–60 minuter) för att se till att ingenjörer investerar så kort tid som möjligt, men ändå tillräckligt för att ge dem en rättvis chans.
  2. Lättlästa frågor eftersom programmerare borde lägga tid på att lösa frågan, inte förstå den.
  3. Granulär poängsättning (i motsats till binär poängsättning). På Adaface implementerar vi detta med tips för varje fråga 🤓.
  4. Fungerande boilerplate-kod med analyserade ingångar, eftersom vi alla har spenderat för mycket tid på att fastna här.
Provkodningstest med Adaface

På Adaface sätter vi upp anpassade kodningstester skräddarsydda efter förväntningarna på rollen. Vår bot, Ada, svarar på frågor de har om rollen/företaget, guidar dem genom varje teknisk fråga interaktivt och skapar ett styrkort som rekryteringschefen kan granska i slutet av samtalet. Prata med oss för att veta mer.