Przejdź do treści
SkillCort

8 min · 8 stepsSamouczek tworzenia testu

Jak stworzyć test programistyczny

Najlepsze testy programistyczne wyglądają jak mały, uczciwy kawałek pracy — a nie jak zagadka z tablicy, którą programista ostatni raz widział w szkole. Ten samouczek pokazuje, jak zbudować taki test w SkillCort: realistyczne zadanie w pytaniu z kodem, rubrykę punktującą coś więcej niż poprawność i kontrole wiarygodności skrojone do stawki.

What you'll need

  • Przestrzeń robocza w SkillCort (albo demo)
  • Prawdziwy przykład kodu, który pisze Twój zespół — błąd, mała funkcjonalność, refaktor
  • Starszy inżynier, który zdefiniuje zadanie i rubrykę
  • Decyzja, które języki będziecie akceptować

Step 1: Wybierz realistyczne zadanie zamiast zagadki algorytmicznej

Spójrz na swój ostatni miesiąc pull requestów i wybierz zadanie w kształcie tych, które się powtarzają: napraw błąd przy zadanym błędnym zachowaniu, rozszerz małą funkcję o nowy przypadek, zrefaktoruj zabałaganiony blok albo napisz transformację danych. Te rzeczy przewidują codzienną skuteczność znacznie lepiej niż odwracanie drzewa binarnego.

Skroj je na 30–45 minut skupionej pracy kompetentnej osoby. Zagadka nagradza tego, kto ją przećwiczył; realistyczne małe zadanie nagradza tego, kto potrafi odczytać istniejącą intencję, wprowadzić rozsądną zmianę i zachować zrozumiałość kodu — a to właśnie zatrudniasz.

Usuń wiedzę specyficzną dla frameworka i dla firmy, chyba że rola naprawdę tego wymaga, a cały kontekst potrzebny zadaniu podaj wewnątrz samego briefu. Mocny inżynier, który nigdy nie dotykał Waszego stosu, wciąż powinien móc pokazać Ci rozsądny osąd. Testuj umiejętność, a nie znajomość ciekawostek Waszej bazy kodu.

  • Powtarza się w Waszej prawdziwej bazie kodu, a nie w podręcznikach do rozmów rekrutacyjnych
  • Ma więcej niż jedno rozsądne rozwiązanie
  • Mieści się w 30–45 minutach bez bohaterstwa
  • Możliwe do przeczytania przez oceniającego w mniej niż dziesięć minut

Step 2: Utwórz pytanie z kodem w banku pytań

Zrób folder dla roli — na przykład Inżynier backendu — z tagami obszaru umiejętności i trudności, a potem utwórz pytanie, używając typu pytania z kodem. Kandydaci piszą i edytują kod bezpośrednio w obszarze odpowiedzi, a oceniający później przeglądają go na miejscu.

Zasil pytanie kodem startowym zamiast pustym edytorem. Krótka funkcja z opisanym błędem albo zaślepka z jasnym kontraktem kotwiczy każdego kandydata w tym samym punkcie wyjścia i sprawia, że ich zmiany są wprost porównywalne. Prawdziwa praca prawie nigdy nie zaczyna się od pustego pliku i test też nie powinien.

Step 3: Napisz brief obok edytora

Użyj układu z materiałem obok siebie: brief, wymagania oraz przykładowe wejścia i wyjścia po jednej stronie, a obok edytor kodu. Kandydat nigdy nie odjeżdża od specyfikacji, żeby napisać rozwiązanie — ten sam kształt co praca ze zgłoszeniem w IDE.

Napisz brief tak, jak czyta się dobre zgłoszenie: obecne zachowanie, oczekiwane zachowanie, ograniczenia i dwa–trzy konkretne przykłady. Powiedz wprost, na czym Ci zależy — „najpierw działający kod; czytamy też pod kątem czytelności” — żeby kandydaci optymalizowali pod to, co faktycznie będziesz punktować. Niejednoznaczność w briefie zamienia się w szum w wynikach.

Step 4: Zbuduj rubrykę punktującą coś więcej niż poprawność

Poprawne wyjście jest konieczne, ale niewystarczające. Zbuduj rubrykę macierzową opartą na poziomach z trzema albo czterema kryteriami — zwykle poprawność, czytelność i podejście, opcjonalnie obsługa przypadków brzegowych — z których każde ma kotwiczące opisy tego, jak wygląda kod mocny, akceptowalny i słaby. „Nazwy ujawniają intencję, brak martwego kodu” da się punktować; „czysty kod” nie.

Zważ poprawność najmocniej, ale nie rób z pozostałych kryteriów ozdobnika: ledwo działające rozwiązanie, którego nikt nie utrzyma, nie jest mocnym sygnałem rekrutacyjnym. Gdy podpinasz rubrykę, zamraża się ona w migawkę, więc każdy kandydat w tym przebiegu jest przeglądany według identycznego standardu, nawet jeśli wersja w banku później się zmieni.

Step 5: Złóż i ustaw czas w kreatorze

Utwórz assessment jako sekcje, strony i bloki i zaimportuj pytanie z kodem przez selektor. Wiele zespołów dodaje krótką pierwszą sekcję z szybkimi pytaniami o osąd — odczytanie diffa, wskazanie błędu we fragmencie, szybko wklejone jako jednokrotny wybór — a zadanie programistyczne umieszcza w osobnej sekcji.

Ustaw całkowity limit czasu z zapasem na czytanie i myślenie, a na stronie z kodem użyj limitu na stronę, żeby zadanie nie połknęło całego podejścia. Zważ sekcję programistyczną najmocniej (na przykład ×3), żeby dopasowanie do roli na Decision Board odzwierciedlało pracę, a nie rozgrzewkę. Napisz instrukcje, które nazywają dozwolone języki i mówią, co się stanie, gdy skończy się czas.

Step 6: Zrób podgląd, wyczyść listę kontrolną i opublikuj

Użyj Preview as candidate i sam spróbuj wykonać zadanie, a jeszcze lepiej — poproś inżyniera, który go nie pisał, żeby podszedł do niego na zimno. Jeśli skończy w dziesięć minut, jest za łatwe; jeśli nie skończy w limicie, poluzuj zakres albo zegar. Popraw brief wszędzie tam, gdzie się zawahał.

Potem zaspokój listę kontrolną publikacji — blokuje ona Publish, dopóki punktacja, czas i instrukcje nie są kompletne. Test programistyczny z brakującą rubryką albo nieprzetestowanym limitem czasu nigdy nie powinien dotrzeć do kandydata, a lista kontrolna pilnuje, żeby nie mógł.

Step 7: Ustaw kontrole wiarygodności proporcjonalnie do stawki

Utwórz przeprowadzenie z nazwą i oknem czasowym, a potem świadomie wybierz przełączniki bezpieczeństwa. Przy standardowym przesiewie rekrutacyjnym blokowanie kopiowania i wklejania oraz tryb Lockdown na pełnym ekranie z sensownym limitem naruszeń zwykle wystarczą. Nagrywanie z kamery, nagrywanie ekranu, wykrywanie drugiego ekranu i sprawdzenie tożsamości istnieją dla przebiegów o naprawdę wysokiej stawce — certyfikacji, ostatnich rund — a nie jako ustawienia domyślne.

Wszystko, co włączysz, jest ujawnione na bramce zgody i sprawdzenia wstępnego, zanim kandydat zacznie. Sygnały wiarygodności są flagami do przejrzenia przez człowieka w kontekście, nigdy podstawą do automatycznego odrzucenia — wyjście z pełnego ekranu może być powiadomieniem, a nie oszustwem. Proporcjonalność sprawia, że mocni kandydaci nie odchodzą od sieci inwigilacji.

Step 8: Przeglądaj kod z rubryką, z AI jako wsparciem

Oceniający przeglądają każde rozwiązanie względem wspólnej rubryki, klikając kartę poziomu pasującą do kodu w każdym kryterium — poprawność, czytelność, podejście. Postawienie dwojga przeglądających przy przypadkach granicznych albo o wysokiej stawce utrzymuje standard uczciwym, a ponieważ wszyscy punktują względem tej samej zamrożonej migawki rubryki, spory wychodzą jako konkretne różnice w kryteriach, a nie jako mgliste różnice w przeczuciu.

AI może naszkicować podsumowanie rozwiązania i zaproponować wyniki na poziomie kryteriów — przy kodzie to naprawdę przydatne pierwsze przejście, z modelem i wersją zapisanymi do protokołu. Ale wskazany z nazwiska inżynier potwierdza albo zmienia każdy wynik. AI jest wsparciem decyzji — nigdy decydentem: odpowiedzialny osąd o kodzie kandydata zawsze należy do człowieka.

Pro tips

  • Podkradnij zadanie z własnego backlogu — prawdziwy błąd z zeszłego kwartału bije każde wymyślone ćwiczenie.
  • Kod startowy sprawia, że rozwiązania są porównywalne; pusty edytor robi z nich chaos.
  • Napisz w briefie dokładnie, co nagradza rubryka, a kandydaci pokażą Ci swoje najlepsze.
  • Dwoje oceniających przy bliskich rozstrzygnięciach kosztuje minuty i oszczędza nietrafionych zatrudnień.
  • Wycofaj zadanie, gdy przeszło kilka cykli; folder sprawia, że rotacja jest tania.

Najczęściej zadawane pytania

Dlaczego nie po prostu zagadki algorytmiczne?
Zagadki mierzą wyćwiczenie zagadek. Większość ról potrzebuje kogoś, kto potrafi przeczytać istniejący kod, wprowadzić rozsądną zmianę i utrzymać go w stanie nadającym się do utrzymania — a realistyczne małe zadanie obserwuje dokładnie to. Zachowaj głębię algorytmiczną dla ról, w których to naprawdę jest praca.
Co, jeśli kandydat użyje AI do napisania rozwiązania?
Projektuj z myślą o tym, zamiast udawać, że tego nie ma. Trzymaj zadanie na tyle konkretne, by osąd był widoczny, trzymaj kontrole proporcjonalne do stawki i przeglądaj flagi jako człowiek — w kontekście, nigdy jako automatyczne odrzucenie. Przy rolach seniorskich krótka rozmowa o podjętych wyborach szybko weryfikuje zrozumienie.
Czy SkillCort automatycznie ocenia kod?
Ocena opiera się na rubryce i należy do człowieka. AI może szkicować podsumowania i proponować wyniki na poziomie kryteriów, z zapisanym modelem i wersją, ale wskazany z nazwiska oceniający potwierdza albo zmienia każdy z nich. Spójność bierze się z zamrożonej migawki rubryki, a nie z usunięcia ludzi.
Jak długi powinien być test programistyczny?
Około 45–60 minut łącznie: krótka rozgrzewka na osąd plus jedno zadanie na 30–45 minut. Dłuższe zadania do domu filtrują raczej wolne wieczory niż umiejętność i mierzalnie szkodzą odsetkowi ukończeń — jeśli potrzebujesz więcej głębi, uruchom drugi, krótszy etap dla finalistów.

For hiring teams

Zobacz test programistyczny zbudowany z Twojego backlogu

Umów trzydziestominutowe demo i przynieś jeden prawdziwy błąd albo funkcjonalność — zamienimy go w punktowane, oparte na rubryce zadanie programistyczne na Twoich oczach.