Vai al contenuto
SkillCort

8 min · 8 stepsTutorial sulla creazione dei test

Come creare un test di programmazione

I migliori test di programmazione somigliano a un pezzo piccolo e onesto del lavoro, non a un rompicapo da lavagna che uno sviluppatore ha visto per l'ultima volta a scuola. Questo tutorial mostra come costruirne uno in SkillCort: un compito realistico nel tipo di item per il codice, una matrice di valutazione che valuta più della sola correttezza e controlli di integrità dimensionati sulla posta in gioco.

What you'll need

  • Uno spazio di lavoro SkillCort (o una demo)
  • Un esempio reale del codice che la sua squadra scrive — un bug, una piccola funzionalità, un refactoring
  • Un ingegnere senior che definisca il compito e la matrice di valutazione
  • Una decisione su quali linguaggi accetterà

Step 1: Scelga un compito realistico anziché un rompicapo algoritmico

Guardi le pull request dell'ultimo mese e scelga un compito della stessa forma di quelli che ricorrono: correggere un bug dato un comportamento errato, estendere una piccola funzione per gestire un nuovo caso, rifattorizzare un blocco disordinato o scrivere una trasformazione di dati. Questi prevedono la prestazione quotidiana molto meglio dell'inversione di un albero binario.

Lo dimensioni su 30-45 minuti di lavoro concentrato per una persona competente. Un rompicapo premia chi lo ha già provato; un piccolo compito realistico premia chi sa leggere l'intento esistente, fare una modifica sensata e mantenere comprensibile il codice — che è ciò per cui lei sta assumendo.

Elimini le conoscenze legate a uno specifico framework o alla sua azienda, a meno che il ruolo non le richieda davvero, e fornisca nel brief stesso tutto il contesto di cui il compito ha bisogno. Un bravo ingegnere che non ha mai toccato il suo stack dovrebbe comunque poterle mostrare un giudizio solido. Testi l'abilità, non la familiarità con i dettagli minuti del suo codice.

  • Ricorre nel suo codice reale, non nei manuali di preparazione ai colloqui
  • Ha più di una soluzione ragionevole
  • Sta in 30–45 minuti senza imprese eroiche
  • Leggibile da un valutatore in meno di dieci minuti

Step 2: Crei l'item di codice nella libreria degli item

Faccia una cartella per il ruolo — Ingegnere backend, per esempio — con tag per area di abilità e difficoltà, poi crei un item usando il tipo di item per il codice. I candidati scrivono e modificano il codice direttamente nell'area di risposta, e i valutatori lo rivedono poi sul posto.

Prepari l'item con del codice di partenza anziché con un editor vuoto. Una breve funzione con un bug descritto, o uno stub con un contratto chiaro, ancora ogni candidato allo stesso punto di partenza e rende direttamente confrontabili le loro modifiche. Il lavoro reale non parte quasi mai da un file vuoto, e nemmeno il test dovrebbe farlo.

Step 3: Scriva il brief accanto all'editor

Usi il layout dello stimolo affiancato: il brief, i requisiti e gli esempi di input e output da un lato, l'editor di codice accanto. Il candidato non si allontana mai dalla specifica per scrivere la soluzione: la stessa forma che ha lavorare su un ticket dentro un IDE.

Scriva il brief come si legge un buon ticket: comportamento attuale, comportamento atteso, vincoli e due o tre esempi concreti. Dichiari esplicitamente che cosa le interessa — "prima il codice funzionante; leggiamo anche in cerca di chiarezza" — così i candidati puntano a ciò che lei valuterà davvero. L'ambiguità nel brief diventa rumore nei risultati.

Step 4: Costruisca una matrice che valuti più della sola correttezza

Un output corretto è necessario, non sufficiente. Costruisca una matrice di valutazione a livelli con tre o quattro criteri — di norma correttezza, leggibilità e approccio, facoltativamente la gestione dei casi limite — ciascuno con descrizioni ancorate di come appare un codice forte, accettabile e debole. "I nomi rivelano l'intento, nessun codice morto" è valutabile; "codice pulito" no.

Pesi la correttezza più di tutto, ma mantenga reali anche gli altri criteri: una soluzione che funziona a stento e che nessuno può manutenere non è un buon segnale per un'assunzione. Quando collega la matrice, questa si congela in uno snapshot, così ogni candidato della sessione viene rivisto sullo standard identico anche se in seguito la versione nella banca evolve.

Step 5: Assembli e delimiti i tempi nel builder

Crei l'assessment in sezioni, pagine e blocchi e importi l'item di codice tramite la finestra di selezione. Molte squadre aggiungono una breve prima sezione di rapide domande di giudizio — leggere un diff, individuare il bug in uno snippet, incollate rapidamente come scelta multipla — e mettono il compito di programmazione in una sezione dedicata.

Imposti il limite di tempo complessivo con un margine per leggere e ragionare, e usi un limite per pagina sulla pagina di programmazione, così il compito non può inghiottire l'intero tentativo. Pesi la sezione di programmazione più di tutte (per esempio ×3), così l'aderenza al ruolo sul Decision Board rifletta il lavoro, non il riscaldamento. Scriva istruzioni che indichino i linguaggi ammessi e che cosa succede se il tempo finisce.

Step 6: Faccia l'anteprima, superi la checklist e pubblichi

Usi Preview as candidate e affronti lei stesso il compito, o meglio, lo faccia affrontare a freddo a un ingegnere che non l'ha scritto. Se finisce in dieci minuti è troppo facile; se non riesce a finire entro il limite, allarghi il tempo o riduca la portata. Corregga il brief ovunque abbia esitato.

Poi soddisfi la checklist di pubblicazione: blocca Publish finché valutazione, tempi e istruzioni non sono completi. Un test di programmazione con una matrice mancante o un limite di tempo non collaudato non dovrebbe mai raggiungere un candidato, e la checklist fa in modo che non possa.

Step 7: Imposti controlli di integrità proporzionati alla posta in gioco

Crei la somministrazione con un nome e una finestra temporale, poi scelga con intenzione gli interruttori di sicurezza. Per un normale screening di selezione, il blocco del copia-incolla e il blocco a schermo intero con un limite di violazioni sensato sono di norma sufficienti. La registrazione della webcam, la registrazione dello schermo, il rilevamento del secondo schermo e le verifiche dell'identità esistono per sessioni con posta in gioco davvero alta — certificazioni, round finali — non come impostazioni predefinite.

Tutto ciò che lei attiva viene dichiarato nella schermata di consenso e di controllo preliminare prima che il candidato inizi. I segnali di integrità sono segnalazioni che una persona rivede nel contesto, mai motivi di rifiuto automatico: un'uscita dallo schermo intero può essere una notifica, non una frode. La proporzionalità evita che i candidati bravi si allontanino di fronte a una rete di sorveglianza a strascico.

Step 8: Riveda il codice con la matrice, con l'IA come supporto

I valutatori rivedono ogni consegna con la matrice condivisa, cliccando su ciascun criterio la scheda di livello che corrisponde al codice — correttezza, leggibilità, approccio. Mettere due revisori sui casi al limite o ad alta posta in gioco mantiene onesto lo standard e, poiché tutti valutano sullo stesso snapshot congelato della matrice, i disaccordi emergono come scarti su criteri specifici anziché come vaghe differenze di sensazione.

L'IA può abbozzare una sintesi della consegna e suggerire punteggi a livello di criterio — una prima passata davvero utile sul codice, con modello e versione registrati agli atti. Ma è un ingegnere identificato a confermare o correggere ogni punteggio. Qui l'IA è supporto alla decisione, mai chi decide: il giudizio di cui si risponde sul codice di un candidato è sempre umano.

Pro tips

  • Prenda il compito dal suo stesso backlog: un bug reale dell'ultimo trimestre batte qualsiasi esercizio inventato.
  • Il codice di partenza rende confrontabili le consegne; gli editor vuoti le rendono un caos.
  • Dichiari nel brief esattamente che cosa premia la matrice, e i candidati le mostreranno il loro meglio.
  • Due valutatori sui casi al limite costano minuti e risparmiano assunzioni sbagliate.
  • Ritiri un compito dopo qualche ciclo di utilizzo; la cartella rende poco costosa la rotazione.

Domande frequenti

Perché non usare semplicemente i rompicapo algoritmici?
I rompicapo misurano l'allenamento sui rompicapo. La maggior parte dei ruoli ha bisogno di qualcuno che sappia leggere codice esistente, fare una modifica sensata e mantenerlo manutenibile — ed è esattamente ciò che un piccolo compito realistico permette di osservare. Riservi la profondità algoritmica ai ruoli in cui è davvero il lavoro.
E se un candidato usa l'IA per scrivere la sua soluzione?
Progetti tenendone conto anziché fingere che non accada. Mantenga il compito abbastanza specifico perché il giudizio traspaia, mantenga i controlli proporzionati alla posta in gioco e riveda le segnalazioni come persona: nel contesto, mai come rifiuto automatico. Per i ruoli senior, una breve conversazione di approfondimento sulle sue scelte verifica in fretta la comprensione.
SkillCort corregge automaticamente il codice?
La valutazione è basata su matrice e appartiene alle persone. L'IA può abbozzare sintesi e suggerire punteggi a livello di criterio, con modello e versione registrati, ma è un valutatore identificato a confermare o correggere ciascuno di essi. La coerenza le arriva dallo snapshot congelato della matrice, non dal togliere di mezzo le persone.
Quanto dovrebbe durare un test di programmazione?
Attorno ai 45-60 minuti in totale: un breve riscaldamento di giudizio più un compito da 30-45 minuti. Le prove da svolgere a casa più lunghe selezionano per serate libere anziché per abilità e danneggiano in modo misurabile il completamento — se le serve più profondità, aggiunga una seconda fase, più breve, per i finalisti.

For hiring teams

Veda un test di programmazione costruito dal suo backlog

Prenoti una demo di 30 minuti e porti un bug o una funzionalità reale: lo trasformeremo sotto i suoi occhi in un compito di programmazione valutato e sostenuto da una matrice.

Come Creare un Test di Programmazione | SkillCort