Naar inhoud springen
SkillCort

8 min · 8 stepsTutorial: test maken

Zo maakt u een programmeertest

De beste programmeertests lijken op een klein, eerlijk stuk van het werk zelf — niet op een whiteboardpuzzel die een ontwikkelaar voor het laatst op school zag. Deze tutorial laat zien hoe u er een bouwt in SkillCort: een realistische taak in het vraagtype code, een rubric die meer dan alleen correctheid scoort, en integriteitscontroles die passen bij wat er op het spel staat.

What you'll need

  • Een SkillCort-werkomgeving (of een demo)
  • Een echt voorbeeld van de code die uw team schrijft — een bug, een kleine feature, een refactor
  • Een senior engineer die de taak en de rubric bepaalt
  • Een besluit over welke talen u accepteert

Step 1: Kies een realistische taak in plaats van een algoritmepuzzel

Kijk naar de pull requests van de afgelopen maand en kies een taak in de vorm van wat steeds terugkeert: een bug oplossen bij gegeven verkeerd gedrag, een kleine functie uitbreiden voor een nieuw geval, een rommelig blok refactoren of een datatransformatie schrijven. Die zeggen veel meer over het dagelijkse werk dan het omkeren van een binaire boom.

Maak hem zo groot dat een competente aanstelling er 30–45 minuten geconcentreerd werk aan heeft. Een puzzel beloont wie hem heeft geoefend; een realistische kleine taak beloont wie bestaande bedoelingen kan lezen, een verstandige wijziging kan maken en de code begrijpelijk kan houden — en daar neemt u iemand voor aan.

Haal framework- en bedrijfsspecifieke kennis eruit tenzij de rol die echt vereist, en geef alle context die de taak nodig heeft in de opdracht zelf. Een sterke engineer die uw stack nooit heeft aangeraakt, moet u nog steeds een gezond oordeel kunnen laten zien. Test de vaardigheid, niet de bekendheid met de weetjes van uw codebase.

  • Komt terug in uw echte codebase, niet in boeken met sollicitatieoefeningen
  • Heeft meer dan één redelijke oplossing
  • Past in 30–45 minuten zonder heldendaden
  • Door een beoordelaar in minder dan tien minuten te lezen

Step 2: Maak het code-item aan in de vragenbibliotheek

Maak een map voor de rol — bijvoorbeeld Backend Engineer — met tags voor vaardigheidsgebied en moeilijkheidsgraad, en maak vervolgens een item aan met het vraagtype code. Kandidaten schrijven en bewerken code rechtstreeks in het antwoordveld, en beoordelaars bekijken die later op dezelfde plek.

Vul het item met startcode in plaats van met een lege editor. Een korte functie met een beschreven bug, of een stub met een duidelijk contract, geeft elke kandidaat hetzelfde vertrekpunt en maakt hun wijzigingen direct vergelijkbaar. Echt werk begint bijna nooit bij een leeg bestand, en de test hoort dat ook niet te doen.

Step 3: Schrijf de opdracht naast de editor

Gebruik de side-by-side stimuluslay-out: de opdracht, de eisen en voorbeelden van in- en uitvoer aan de ene kant, de code-editor ernaast. De kandidaat hoeft nooit van de specificatie weg te scrollen om de oplossing te schrijven — dezelfde vorm als werken vanuit een ticket in een IDE.

Schrijf de opdracht zoals een goed ticket leest: huidig gedrag, verwacht gedrag, beperkingen, en twee of drie concrete voorbeelden. Zeg expliciet waar het u om gaat — "werkende code eerst; we lezen ook op helderheid" — zodat kandidaten zich richten op wat u werkelijk scoort. Onduidelijkheid in de opdracht wordt ruis in de resultaten.

Step 4: Bouw een rubric die meer dan correctheid scoort

Correcte uitvoer is noodzakelijk, maar niet voldoende. Bouw een matrixrubric met niveaus en drie of vier criteria — meestal correctheid, leesbaarheid en aanpak, eventueel het omgaan met randgevallen — elk met verankerde beschrijvingen van hoe sterke, acceptabele en zwakke code eruitziet. "Namen tonen de bedoeling, geen dode code" is te scoren; "schone code" niet.

Geef correctheid het zwaarste gewicht, maar houd de andere criteria echt: een nauwelijks werkende oplossing die niemand kan onderhouden is geen sterk signaal voor een aanstelling. Wanneer u de rubric koppelt, wordt die bevroren in een snapshot, zodat elke kandidaat in die afname tegen exact dezelfde norm wordt beoordeeld, ook als de versie in de bibliotheek later verandert.

Step 5: Stel samen en begrens de tijd in de builder

Maak het assessment op als secties, pagina's en blokken en importeer het code-item via het keuzevenster. Veel teams zetten er een korte eerste sectie met snelle beoordelingsvragen voor — een diff lezen, de bug in een snippet aanwijzen, via quick-paste als meerkeuze toegevoegd — en geven de programmeertaak een eigen sectie.

Stel de totale tijdslimiet in met ruimte om te lezen en na te denken, en gebruik een limiet per pagina op de programmeerpagina zodat de taak niet de hele poging opslokt. Geef de programmeersectie het zwaarste gewicht (bijvoorbeeld ×3) zodat de rolfit op het Decision Board het echte werk weerspiegelt en niet de warming-up. Schrijf instructies die de toegestane talen noemen en wat er gebeurt als de tijd om is.

Step 6: Bekijk vooraf, werk de checklist af en publiceer

Gebruik "Preview as candidate" en maak de taak zelf, of beter: laat een engineer die hem niet heeft geschreven hem onvoorbereid maken. Is diegene in tien minuten klaar, dan is de taak te makkelijk; lukt het niet binnen de limiet, versoepel dan de scope of de klok. Herstel de opdracht overal waar diegene aarzelde.

Werk daarna de publicatiechecklist af — die blokkeert "Publish" totdat scoring, timing en instructies compleet zijn. Een programmeertest zonder rubric of met een ongeteste tijdslimiet hoort nooit bij een kandidaat terecht te komen, en de checklist voorkomt dat.

Step 7: Stel integriteitscontroles in naar rato van wat er op het spel staat

Maak de afname aan met een naam en een tijdvenster, en kies daarna bewust welke beveiligingsopties u aanzet. Voor een standaard wervingsscreening zijn het blokkeren van kopiëren/plakken en Lockdown in volledig scherm met een redelijke overtredingslimiet meestal genoeg. Webcamopname, schermopname, detectie van een tweede scherm en identiteitscontroles bestaan voor afnames waar echt veel op het spel staat — certificering, laatste ronden — niet als standaardinstelling.

Alles wat u aanzet, wordt vóór de start van de kandidaat bij de toestemmings- en preflightstap gemeld. Integriteitssignalen zijn markeringen die een mens in context beoordeelt, nooit een grond voor automatische afwijzing — het verlaten van volledig scherm kan een melding zijn, geen fraude. Proportionaliteit voorkomt dat sterke kandidaten afhaken bij een sleepnet van toezicht.

Step 8: Beoordeel code met de rubric, met AI als ondersteuning

Beoordelaars bekijken elke inzending tegen de gedeelde rubric en klikken per criterium — correctheid, leesbaarheid, aanpak — op de niveaukaart die bij de code past. Twee beoordelaars inzetten bij grensgevallen of zwaarwegende gevallen houdt de norm eerlijk, en omdat iedereen scoort tegen hetzelfde bevroren rubricsnapshot, komen meningsverschillen naar boven als concrete verschillen per criterium in plaats van als vaag onderbuikgevoel.

AI kan een samenvatting van de inzending opstellen en scores per criterium voorstellen — een echt bruikbare eerste ronde bij code, waarbij model en versie voor de administratie worden gelogd. Maar een met naam genoemde engineer bevestigt of overschrijft elke score. AI is hier beslissingsondersteuning, nooit de beslisser: het verantwoordelijke oordeel over de code van een kandidaat is altijd menselijk.

Pro tips

  • Haal de taak uit uw eigen backlog — de echte bug van vorig kwartaal wint het van elke verzonnen oefening.
  • Startcode maakt inzendingen vergelijkbaar; een lege editor maakt er chaos van.
  • Zet in de opdracht precies wat de rubric beloont, dan laten kandidaten hun beste werk zien.
  • Twee beoordelaars bij twijfelgevallen kost minuten en voorkomt verkeerde aanstellingen.
  • Neem een taak uit roulatie zodra die een paar cycli heeft gedraaid; de map maakt rotatie goedkoop.

Veelgestelde vragen

Waarom niet gewoon algoritmepuzzels gebruiken?
Puzzels meten het oefenen van puzzels. De meeste rollen vragen iemand die bestaande code kan lezen, een verstandige wijziging kan maken en die onderhoudbaar houdt — en een realistische kleine taak laat precies dat zien. Bewaar algoritmische diepgang voor rollen waar dat werkelijk het werk is.
Wat als een kandidaat AI gebruikt om de oplossing te schrijven?
Ontwerp ervoor in plaats van te doen alsof het niet gebeurt. Houd de taak specifiek genoeg dat het oordeel zichtbaar blijft, houd de controles in verhouding tot wat er op het spel staat, en beoordeel markeringen als mens — in context, nooit als automatische afwijzing. Bij seniorrollen laat een kort vervolggesprek over de gemaakte keuzes snel zien of het begrip er is.
Beoordeelt SkillCort de code automatisch?
De beoordeling is gebaseerd op een rubric en in handen van mensen. AI kan samenvattingen opstellen en scores per criterium voorstellen, met model en versie gelogd, maar een met naam genoemde beoordelaar bevestigt of overschrijft elke score. De consistentie komt van het bevroren rubricsnapshot, niet van het weghalen van mensen.
Hoe lang zou een programmeertest moeten duren?
In totaal ongeveer 45–60 minuten: een korte warming-up met beoordelingsvragen plus één taak van 30–45 minuten. Langere thuisopdrachten selecteren op vrije avonden in plaats van op vaardigheid en schaden de afrondingsgraad merkbaar — hebt u meer diepgang nodig, voer dan een tweede, kortere ronde uit voor de finalisten.

For hiring teams

Zie een programmeertest ontstaan uit uw backlog

Boek een demo van 30 minuten en neem één echte bug of feature mee — wij maken er voor uw ogen een gescoorde programmeertaak met rubric van.