TheBirthus napisał(a):
Chętnie usłyszę jak zadresować problemy które adresują:
- Codilty - odsiew kadydatów (tak, mam za dużo CV)
Codility jest dobre w teorii, ale w praktyce bada umiejętności klepania kodu pod presją czasową i rozwiązania wyuczonych wcześniej problemów. Tak nie zbadasz, czy ktoś umie myśleć w sposób bardziej projektowy, czy majac przed sobą konkretne zadanie, będzie umiał zaprojektować zgrabnie rozwiązanie i zintegrować je z istniejącym kodem.
Może więc lepiej dać jakiś mały (maks 50-100 linijek) istniejący kawałek kodu, który specjalnie zostałby napisany dość słabo i poprosić kogoś o refaktor, napisanie testów i dopisanie jakiejś nowej małej funkcjonalności.
Przy czym skala się liczy i ta powinna być możliwie mała - dostałem kiedyś podobne zadanie, ale był to cały większy i dość słabo napisany projekt(w zasadzie cała aplikacja w React+Redux). I miałem w tym syfie zaimplementować jakieś dodatkowe ficzery. Zadanie urwałem w połowie, odechciało mi się zatrudnienia w tej firmie po tym, jak zobaczyłem ten kod i jak się męczyłem, żeby cokolwiek w nim znaleźć i zmodyfikować. Projekty domowe powinny być małe, a nie jakieś rzeźbienie w gównie (chyba, że faktycznie firmy chcą sprawdzić, czy ktoś jest w stanie rzeźbić w gównie. To wtedy co innego)
Dostałem też kiedyś zadanie, w którym trzeba było znaleźć buga w istniejącym kodzie (też nie polecam, debugowanie jest trudne do przewidzenia i można się zakopać w nim. Poza tym jak to świadczy o firmie, że ma ona tak wadliwy software, że człowiek będzie bugi usuwać cały czas?). Więc ten kod raczej powinien działać już na wstępie, ale po prostu nie mieć wszystkich ficzerów.
No i to zadanie powinno dać się zrobić we własnym ulubionym edytorze, bez potrzeby korzystania z dziwnej platformy.
Czyli jakby zamiast testów na klepania na czas algorytmów i zamiast wielkich projektów do domu byłoby coś w stylu "masz tutaj 50-100 linijkowy fragment kodu, zrefaktoruj go dopisz do niego testy i dorób prostą funkcjonalność", to by miało to więcej sensu. Faktycznie można byłoby wykryć, czy ktoś ma wyczucie smaku (po tym, jak to zrefaktoruje), czy umie pisać testy, i czy umie dorobić funkcjonalność do istniejącego kodu.
Tylko dalej byłoby nieidealne - bo to dalej zajmowałoby czas, dalej byłaby to swego rodzaju "praca domowa". Ale mimo wszystko faktycznie to coś mogłoby sprawdzać, jakieś faktyczne umiejętności.