Czym jest Codility?

Aplikacja Codility, stworzona przez polaka Grzegorza Jakackiego, stanowi znaczne uproszczenie w procesie rekrutacji programistów. Czy wykorzystanie tej aplikacji rzeczywiście pomaga dotrzeć do najlepszych specjalistów to już zupełnie inne pytanie.

Sposób w jaki działa platforma Codility jest bardzo prosty, rekruter uzyskuje dostęp do zbioru zadań przedstawiających różny stopień zaawansowania i na ich podstawie tworzy własny test składający się z kilku zadań do rozwiązania.
Następnie wygenerowany link do testu przesyła poszczególnym kandydatom i na podstawie uzyskanych wyników, może umówić spotkanie z najlepszymi kandydatami. Tyle jeśli chodzi o teorie działania Codility, jak jest jednak w praktyce?

W rzeczywistości platforma Codility sprawdza przede wszystkim znajomość i umiejętność tworzenia własnych algorytmów, co jednak niekoniecznie będzie korespondowało z codzienną pracą programisty. Śledząc specjalistyczne fora internetowe skupiające programistów, bądź blogi przez nich prowadzone, widać wyraźną niechęć do rekrutacji opartej na platformie Codility, nie tylko z powodu ich opinii o rzadkim wykorzystywaniu własnych algorytmów w codziennej pracy, ale przede wszystkim wobec sposobu w jaki zadania są przez aplikację oceniane.
Codility ocenę wykonanego zadania opiera na poprawności, odporności na błędy i wydajności kodu. Co niekoniecznie jest odpowiednią techniką tworzenia oprogramowania, a już na pewno jest ciężkie do zrealizowania przez Juniora. W zadaniach są podane dane wejściowe jak i oczekiwany rezultat wyjściowy, co przypomina nieco Test Driven Development – czyli napisanie kodu który przejdzie dany test, a następnie jego rozwój lub poprawa dopiero wówczas kiedy zajdzie taka potrzeba, czyli w momencie dodania kolejnych testów, które kod musi przejść. Niestety w przypadku Codility zarówno o tym, że zadanie ma inne skrajne testy do przejścia, jak i o tym czy nasze rozwiązanie zdołało je przejść, dowiemy się już po wysłaniu zadania do rekrutera czyli w momencie kiedy na poprawę będzie już za późno. Oczywiście można pisać swoje własne testy dla przetestowania stworzonego rozwiązania, bądź przetestować je na własnym IDE, jednak nie gwarantuje to uzyskania 100% wyniku w Codility, zwłaszcza dla początkującego programisty.

Czy oznacza to, że Codility jako produkt jest nieprzydatne dla rekrutacji programistów? Na pewno nie. W przypadku poszukiwania programisty do pracy, w której algorytmy, a zwłaszcza umiejętność ich tworzenia należy do codzienności, narzędzie to jest nieocenione. W przypadku rekrutacji Juniora już niekoniecznie, powszechne są opinie, że kod tworzony przez początkującego programistę nie powinien być oceniany na podstawie odporności na wiele, skrajnych testów, a powinno skupiać się na jego jakości i poprawności stosowania nazw oraz znajomości zasad programowania obiektowego.

Oczywiście nie oznacza to, że na początku nauki programowania powinno się unikać Codility, wręcz przeciwnie, powinno się przeznaczyć pewną ilość godzin każdego tygodnia na próbę zmierzenia się z kilkoma zadaniami, zarówno dla ćwiczenia tego jak pisać własne algorytmy, praktycznego zastosowania języka programowania do rozwiązywania określonych problemów jak i do trenowania przed ewentualnym zadaniem rekrutacyjnym.

Polecam zaznajomienie się zarówno z platformą Codility jak i SPOJ (Sphere Online Judge) w którego polskiej wersji, występują również zadania opisane w j. polskim dla tych, którzy nie czują się jeszcze na siłach ze znajomością angielskiego, a chcą poćwiczyć rozwiązywanie problemów programistycznych.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

Up ↑

%d bloggers like this: