01Live coding budzi skrajne emocje
Alternatywy dla live codingu mają własne ograniczenia. Pytania teoretyczne często sprawdzają pamięć, a nie umiejętność rozwiązywania problemów. Zadania domowe mogą zająć kilka godzin, bywają wysyłane na zbyt wczesnym etapie rekrutacji i nie zawsze kończą się informacją zwrotną. Testy algorytmiczne również nie pokazują, jak kandydat poradzi sobie z typowym zadaniem spotykanym w danej firmie.
Dobra sesja live codingu powinna możliwie wiernie odwzorowywać codzienną pracę. Kandydat korzysta ze swojego środowiska, dokumentacji, internetu, bibliotek i narzędzi, które normalnie wspierają go w tworzeniu oprogramowania. Dotyczy to również AI. Ważniejsze od samego faktu użycia takiego narzędzia jest to, w jaki sposób kandydat formułuje pytania, analizuje odpowiedzi i weryfikuje otrzymane rozwiązania.
Rekruter nie powinien pełnić roli milczącego egzaminatora. Znacznie lepsze rezultaty daje rozmowa przypominająca pair programming. Prowadzący może zadawać pytania, podpowiadać kierunek, pomagać rozładować napięcie i przekazywać feedback w trakcie spotkania. Dzięki temu kandydat ma szansę pokazać, jak współpracuje i jak reaguje na nowe informacje.
02Najważniejsze lekcje dla kandydatów:
- Zacznij od przeczytania zadania, wskazania niejasności i zadania pytań, zamiast od razu pisać kod.
- Wyjaśniaj swoje decyzje, ograniczenia i kompromisy wynikające z krótkiego czasu.
- Najpierw zbuduj prostą wersję rozwiązania, którą można później rozwijać.
- Pamiętaj o testach, przypadkach brzegowych i bezpieczeństwie, nawet gdy nie zdążysz wszystkiego zaimplementować.
- Korzystaj z dokumentacji, wyszukiwarki i AI tak, jak robisz to podczas normalnej pracy.
- Przygotuj wcześniej odizolowane środowisko, aby nie udostępniać przypadkowo prywatnych danych i nie uruchamiać nieznanego kodu na głównym systemie.
Wynik sesji nie musi być kompletną aplikacją gotową do wdrożenia. Rekruter może znacznie lepiej ocenić kandydata, który świadomie opisuje błędy i dalsze kroki, niż osobę z działającym kodem, która nie dostrzega jego słabych stron. Seniority widać również po tym, czego programista nie implementuje, jakie pytania zadaje i czy potrafi dobrać rozwiązanie do kontekstu.
Live coding nadal wywołuje stres, ale może być wartościowym elementem rekrutacji, gdy firma jasno komunikuje oczekiwania i dobiera zadanie do realiów stanowiska. Kandydat nie powinien udowadniać, że zna wszystko na pamięć. Powinien pokazać, jak myśli, współpracuje, szuka informacji i podejmuje techniczne decyzje.
Posłuchaj całego podcastu POIT #318: Rekrutacja: Live coding: https://porozmawiajmyoit.pl/poit-318-rekrutacja-live-coding/
