Siirry sisältöön
SkillCort

8 min · 8 stepsTestin luomisen opastus

Näin luot koodaustestin

Parhaat koodaustestit näyttävät pieneltä, rehelliseltä palalta työtä — eivät fläppitaulupulmalta jonka kehittäjä näki viimeksi koulussa. Tämä opastus näyttää miten rakennat sellaisen SkillCortissa: realistinen tehtävä koodin tehtävätyypissä, arviointimatriisi joka pisteyttää muutakin kuin oikeellisuutta, ja luotettavuuskontrollit mitoitettuina panoksiin.

What you'll need

  • SkillCort-työtila (tai esittely)
  • Todellinen esimerkki koodista jota tiimisi kirjoittaa — bugi, pieni ominaisuus, refaktorointi
  • Kokenut ohjelmistokehittäjä määrittelemään tehtävän ja arviointimatriisin
  • Päätös siitä mitkä kielet hyväksytte

Step 1: Valitse realistinen tehtävä algoritmipulman sijaan

Katso viime kuukauden pull requesteja ja poimi tehtävä, joka on samanmuotoinen kuin toistuvat: korjaa bugi annetun vikakäyttäytymisen perusteella, laajenna pientä funktiota käsittelemään uusi tapaus, refaktoroi sotkuinen lohko tai kirjoita datamuunnos. Nämä ennakoivat päivittäistä suoriutumista paljon paremmin kuin binääripuun kääntäminen.

Mitoita se 30–45 minuutin keskittyneeseen työhön pätevälle rekrytoinnille. Pulma palkitsee sen joka on harjoitellut sitä; realistinen pieni tehtävä palkitsee sen joka osaa lukea olemassa olevaa tarkoitusta, tehdä järkevän muutoksen ja pitää koodin ymmärrettävänä — mikä on se mihin rekrytoit.

Riisu kehys- ja yrityskohtainen tieto pois, ellei rooli aidosti vaadi sitä, ja anna kaikki tehtävän tarvitsema konteksti itse toimeksiannon sisällä. Vahvan kehittäjän, joka ei ole koskaan koskenut teknologiapinoasi, tulisi silti pystyä näyttämään sinulle järkevää harkintaa. Testaa taitoa, älä koodikantasi nippelitiedon tuntemusta.

  • Toistuu todellisessa koodikannassasi, ei haastatteluvalmennuskirjoissa
  • Sillä on useampi kuin yksi järkevä ratkaisu
  • Mahtuu 30–45 minuuttiin ilman sankaritekoja
  • Arvioija pystyy lukemaan sen alle kymmenessä minuutissa

Step 2: Luo koodin tehtävä tehtäväpankkiin

Tee roolille kansio — vaikkapa Backend-kehittäjä — tageineen taitoalueelle ja vaikeudelle, ja luo sitten tehtävä käyttäen koodin tehtävätyyppiä. Hakijat kirjoittavat ja muokkaavat koodia suoraan vastausalueella, ja arvioijat tarkastavat sen myöhemmin paikan päällä.

Siemennä tehtävä aloituskoodilla tyhjän editorin sijaan. Lyhyt funktio kuvattuine bugeineen, tai tynkä selkeine sopimuksineen, ankkuroi jokaisen hakijan samaan lähtökohtaan ja tekee heidän muutoksistaan suoraan vertailukelpoisia. Todellinen työ ei lähes koskaan ala tyhjästä tiedostosta, eikä testinkään pitäisi.

Step 3: Kirjoita toimeksianto editorin viereen

Käytä rinnakkaista ärsykeasettelua: toimeksianto, vaatimukset sekä esimerkkisyötteet ja -tulosteet toisella puolella, koodieditori sen vieressä. Hakijan ei tarvitse koskaan vierittää pois määrittelystä kirjoittaakseen ratkaisun — sama muoto kuin tiketistä työskentely kehitysympäristössä.

Kirjoita toimeksianto niin kuin hyvä tiketti lukeutuu: nykyinen käyttäytyminen, odotettu käyttäytyminen, rajoitteet ja kaksi tai kolme konkreettista esimerkkiä. Ilmaise nimenomaisesti mistä välität — „toimiva koodi ensin; luemme myös selkeyttä” — jotta hakijat optimoivat sen mukaan mitä tosiasiassa pisteytät. Monitulkintaisuus toimeksiannossa muuttuu kohinaksi tuloksissa.

Step 4: Rakenna arviointimatriisi, joka pisteyttää muutakin kuin oikeellisuutta

Oikea tuloste on välttämätön, ei riittävä. Rakenna tasopohjainen matriisiarviointimatriisi kolmella tai neljällä kriteerillä — tyypillisesti oikeellisuus, luettavuus ja lähestymistapa, valinnaisesti reunatapausten käsittely — joista kullakin on ankkuroidut kuvaukset siitä miltä vahva, hyväksyttävä ja heikko koodi näyttää. „Nimet paljastavat tarkoituksen, ei kuollutta koodia” on pisteytettävissä; „siisti koodi” ei ole.

Painota oikeellisuutta raskaimmin, mutta pidä muut kriteerit todellisina: hädin tuskin toimiva ratkaisu jota kukaan ei voi ylläpitää ei ole vahva rekrytointisignaali. Kun liität arviointimatriisin, se jäätyy tilannekuvaksi, joten jokainen ajon hakija tarkastetaan identtistä mittapuuta vasten vaikka pankin versio kehittyisi myöhemmin.

Step 5: Kokoa ja aikarajaa rakentimessa

Luo arviointi osioina, sivuina ja lohkoina ja tuo koodin tehtävä sisään valitsimella. Monet tiimit lisäävät lyhyen ensimmäisen osion nopeita harkintakysymyksiä — diffin lukemista, bugin bongaamista katkelmasta, pikaliitettynä monivalintana — ja laittavat koodaustehtävän omaan osioonsa.

Aseta kokonaisaikaraja väljyydellä lukemiselle ja ajattelulle, ja käytä sivukohtaista rajaa koodaussivulla, jottei tehtävä voi niellä koko suorituskertaa. Painota koodausosiota raskaimmin (esimerkiksi ×3), jotta roolisopivuus Decision Boardilla heijastaa työtä eikä lämmittelyä. Kirjoita ohjeet, jotka nimeävät sallitut kielet ja sen mitä tapahtuu jos aika loppuu.

Step 6: Esikatsele, käy tarkistuslista läpi ja julkaise

Käytä Esikatsele hakijana -toimintoa ja yritä tehtävää itse, tai vielä parempaa, anna sellaisen kehittäjän yrittää sitä kylmiltään joka ei kirjoittanut sitä. Jos hän saa sen valmiiksi kymmenessä minuutissa, se on liian helppo; jos hän ei saa sitä valmiiksi rajan sisällä, löysää laajuutta tai kelloa. Korjaa toimeksianto kaikkialta missä hän epäröi.

Täytä sitten julkaisun tarkistuslista — se estää julkaisun kunnes pisteytys, ajoitus ja ohjeet ovat valmiit. Koodaustesti, jolta puuttuu arviointimatriisi tai jonka aikarajaa ei ole testattu, ei saisi koskaan tavoittaa hakijaa, ja tarkistuslista varmistaa ettei se voi.

Step 7: Aseta luotettavuuskontrollit oikeasuhtaisiksi panoksiin

Luo toteutus nimineen ja aikaikkunoineen, ja valitse sitten turvallisuuskytkimet harkitusti. Tavallisessa rekrytointiseulonnassa kopioinnin ja liittämisen esto sekä koko näytön lockdown järkevällä rikkomusrajalla riittävät yleensä. Verkkokameran tallennus, näytön tallennus, lisänäytön tunnistus ja henkilöllisyyden tarkistukset ovat olemassa aidosti korkean panoksen ajoja varten — sertifiointiin, loppukierroksiin — eivät oletuksiksi.

Kaikki mitä otat käyttöön kerrotaan suostumus- ja esitarkistusportilla ennen kuin hakija aloittaa. Luotettavuussignaalit ovat merkintöjä ihmisen tarkastettavaksi kontekstissaan, eivät koskaan peruste automaattiselle hylkäykselle — koko näytön tilasta poistuminen voi olla ilmoitus, ei petos. Oikeasuhtaisuus estää vahvoja hakijoita kävelemästä pois valvontahaavin edestä.

Step 8: Tarkasta koodi arviointimatriisilla, tekoäly tukena

Arvioijat tarkastavat kunkin palautuksen yhteistä arviointimatriisia vasten klikkaamalla sitä tasokorttia joka vastaa koodia kussakin kriteerissä — oikeellisuus, luettavuus, lähestymistapa. Kahden tarkastajan asettaminen rajatapauksiin tai korkean panoksen tapauksiin pitää mittapuun rehellisenä, ja koska kaikki pisteyttävät samaa jäädytettyä arviointimatriisin tilannekuvaa vasten, erimielisyydet nousevat esiin täsmällisinä kriteerikuiluina eivätkä epämääräisinä tuntumaeroina.

Tekoäly voi luonnostella yhteenvedon palautuksesta ja ehdottaa kriteeritason pisteitä — aidosti hyödyllinen ensimmäinen kierros koodissa, malli ja versio kirjattuina. Mutta nimetty kehittäjä vahvistaa tai ohittaa jokaisen pistemäärän. Tekoäly on täällä päätöksen tukea, ei koskaan päätöksentekijä: vastuullinen harkinta hakijan koodista on aina ihmisen.

Pro tips

  • Varasta tehtävä omasta työjonostasi — viime neljänneksen todellinen bugi voittaa minkä tahansa keksityn harjoituksen.
  • Aloituskoodi tekee palautuksista vertailukelpoisia; tyhjät editorit tekevät niistä kaaosta.
  • Kerro toimeksiannossa täsmälleen mitä arviointimatriisi palkitsee, niin hakijat näyttävät sinulle parhaansa.
  • Kaksi arvioijaa rajatapauksiin maksaa minuutteja ja säästää virherekrytoinneilta.
  • Poista tehtävä käytöstä kun se on pyörinyt muutaman kierroksen; kansio tekee kierrätyksestä halpaa.

Usein kysytyt kysymykset

Miksi ei vain käyttäisi algoritmipulmia?
Pulmat mittaavat pulmien harjoittelua. Useimmat roolit tarvitsevat jonkun, joka osaa lukea olemassa olevaa koodia, tehdä järkevän muutoksen ja pitää sen ylläpidettävänä — ja realistinen pieni tehtävä havaitsee täsmälleen sen. Säästä algoritminen syvyys rooleihin joissa se on aidosti työ.
Entä jos hakija käyttää tekoälyä ratkaisunsa kirjoittamiseen?
Suunnittele sitä varten sen sijaan että teeskentelisit sen pois. Pidä tehtävä riittävän täsmällisenä, jotta harkinta näkyy läpi, pidä kontrollit oikeasuhtaisina panoksiin, ja tarkastele merkintöjä ihmisenä — kontekstissaan, ei koskaan automaattisena hylkäyksenä. Kokeneissa rooleissa lyhyt jatkokeskustelu hänen valinnoistaan varmistaa ymmärryksen nopeasti.
Arvostelleeko SkillCort koodin automaattisesti?
Arviointi perustuu arviointimatriisiin ja on ihmisen omistama. Tekoäly voi luonnostella yhteenvetoja ja ehdottaa kriteeritason pisteitä, malli ja versio kirjattuina, mutta nimetty arvioija vahvistaa tai ohittaa kunkin. Johdonmukaisuus tulee jäädytetystä arviointimatriisin tilannekuvasta, ei ihmisten poistamisesta.
Kuinka pitkä koodaustestin pitäisi olla?
Noin 45–60 minuuttia kaikkiaan: lyhyt harkinnan lämmittely plus yksi 30–45 minuutin tehtävä. Pidemmät kotitehtävät seulovat vapaita iltoja taidon sijaan ja heikentävät läpivientiä mitattavasti — jos tarvitset lisää syvyyttä, aja toinen, lyhyempi vaihe finalisteille.

For hiring teams

Katso koodaustesti rakentumassa työjonostasi

Varaa kolmenkymmenen minuutin esittely ja tuo yksi todellinen bugi tai ominaisuus — muutamme sen pisteytetyksi, arviointimatriisin tukemaksi koodaustehtäväksi silmiesi edessä.

Näin luot koodaustestin | SkillCort