Temat: Ciekawe pytania rekrutacyjne
Dariusz R.:
A może właśnie to to ma sprawdzać kandydata pod względem potencjalnego ryzyka występowania błędów? Bo weźmy taki przykład, że masz to napisać na kartce a rekruter ma gotowe wyniki (i gotowe rozwiązanie które może sobie porównać z Twoim). Bez sprawdzania, chodzi o to czy potrafisz szybko
Już tutaj jest popełniany błąd. Co jeżeli ktoś zadanie rozwiąże deczko inaczej? :P Rekruter "mający na kartce rozwiązanie" to już błąd sam w sobie. Do sprawdzenia wiedzy technicznej potrzeba wiedzy technicznej. Już chociażby z tego powodu że znam multum przypadków gdzie HR był wniebowzięty kandydatem bo ten miał gadane i wiedział co mówić.
Gwarantuje Ci że w takim środowisku wziął bym ogarniętego sprzedawcę odkurzaczy, dał mu 2-3 dni żeby się przygotował i u takiego rekrutera pewnie przeszedł by jako programista.
zaimplementować poprawnie działające rozwiązanie już z głowy, bo testy jednostkowe to chyba dość często są olewane, choćby ze względu na brak czasu jak terminy gonią.
Testy jednostkowe na ogół są olewane przy cięciu kosztów. Jak klient świadomie chce obniżyć cenę poświęcając testy które mają zagwarantować podstawowe działanie aplikacji oraz kompatybilność wszystkich zmian które wchodzą później - to jego własny problem.
Wtedy zamiast pisać testy odpalasz kilka razy metodę z innym zestawem parametrów (inline). Tzw sprawdzanie dupą (var dump + die) i papa. Żeby było zabawniej, bardzo często takie sprawdzanie więcej trwa niż napisanie testu :-D
Jak potencjalnie gość później robi dużo błędów i często się myli to potencjalnie więcej czasu na ich naprawę. To tylko moje przypuszczenia, bo zastanawiam się czy nie jest to takie szukanie omnibusa a programista nie jest maszyną i ma prawo takie błędy popełniać a od tego są testy żeby wszystko działało jak należy. Albo jest to tylko po to żeby udowodnić komuś kto deklaruje w CV doskonałą znajomość PHP (bo takie są wymogi w ogłoszeniach) że jest zerem i nie zasługuje na te 5K ale znacznie mniej :-)
Ale tego nigdy nie dowiesz się na takiej rekrutacji. Na rekrutacji wiele osób się stresuje (jak kiedyś na egzaminach), nie ma dostępu do narzędzi wspomagających pracę na których pracuje od lat, do znanego sobie środowiska itp. Ocenianie takich rzeczy podczas rekrutacji na kartce czy w prostym edytorku tekstowym bez możliwości odpalenia itp to jak wyjęcie ryby z wody żeby sprawdzić czy dobrze pływa.
Później we wnioskach wpisujesz "ta ryba bez wody nie pływa".
Z kolei zadanka typu masz 8 kul i znajdź mając tylko 2 ważenia taką która jest cięższa od pozostałych to może być test na radzenie sobie z problemami optymalizacji obliczeń. User przecież nie lubi czekać nawet na załadowanie strony a co dopiero nie wiadomo ile na wyniki wyszukiwań.
To sprawdza czy kandydat umie kombinować. Zabawne w tym fakcie jest to że 90% stanowisk przy rekrutacji było to zadanie polega na klepaniu kolejnych widoków i formularzy. I w zasadzie niczego nie definiuje.
Ciekawe pytania rekrutacyjne?
- przykład XSS albo SQL Injection lub wytłumaczenie na czym polegają i jak się przed nimi bronić
- czy da się ominąć filtrowanie po IP przy dostępie do serwisu?
- w środowisku wieloserwerowym użytkownik trafia na serwer A i rozpoczyna sesje, kolejnym razem trafia na B i orientuje się że jest wylogowany z serwisu (sesja jest pusta). Jak temu zapobiec?
- jak efektywnie przeszukiwać duże ilości danych? (miliony rekordów)
- jak radzić sobie z bazami danych mającymi +10mln rekordów?
- wyszukiwanie w tabeli mysql po emailu użytkownika trwa niemal 5 sekund, jak temu zapobiec?
itp itd etc...
Ogólnie bardziej interesuje mnie na rekrutacji czy kandydat ma wiedzę jak rozwiązać typowe problemy które męczą przeciętne serwisu www niż to czy pamięta zachowanie xor. To jak programuje przekonam się dopiero jak zacznie pracę. Przez kilkadziesiąt minut na rekrutacji nie ma możliwości tego sprawdzić. Mogę sprawdzić JAKOŚĆ kodu jeżeli ma jakieś próbki do pokazania.
Ten post został edytowany przez Autora dnia 22.09.15 o godzinie 13:29