Jak rekrutować juniorów - pomysły i obserwacje

5
TheBirthus napisał(a):

Chętnie usłyszę jak zadresować problemy które adresują:

  1. 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.

0

Według tego co sprawdza Codility i jak to się może przekładać na rzeczywistość:

  1. Złożoność obliczeniowa O(n^2) zamiast O(n) = użytkownik nie lubi czekać, jeśli coś działa za wolno wynosi się z serwisu (spadek zysków), odinstalowuje jakąś aplikację na smartfona
  2. Sprawdzanie warunków, zwłaszcza skrajnych, gdzie wynik funkcji jest nieprawidłowy = użytkownik widząc że aplikacja się wywala też albo się wyniesie, albo odinstaluje jakąś aplikację na smartfona. Wyniki obliczeń mogą być nieprawidłowe i rzutują na prawidłowe wyniki obliczeń albo działanie aplikacji
  3. Zrobić to w określonym czasie np. 2h na prostą funkcję, no wiadomo że jak gonią deadliny a programiści tego nie dotrzymują no to wiadomo co to oznacza np. kary umowne dla firm

Byłoby pięknie gdyby nie to że to typowo akademickie zadanka, choć w rzeczywistości może chodzić o przetwarzanie obrazów, parsowanie plików. Ale obawiam się że jak ktoś nie zna gotowego rozwiązania albo nie jest przygotowany (fajnie że Codility ma trening) to obleje tego typu testy. I obawiam się że jedyna właściwa grupa którą można w ten sposób testować to studenci albo absolwenci kierunków informatycznych.

0
drorat1 napisał(a):

właściwa grupa którą można w ten sposób testować to studenci albo absolwenci kierunków informatycznych.

Za testy są odpowiedzialni m.in. studenci z Instytut Informatyki Analitycznej / TCS UJ

0
LukeJL napisał(a):

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.

Nie miałem nigdy styczności z Codility, więc nie wiem co konkretnie sobą reprezentuje - jakie konkretnie zadania - ale nie bardzo widzę jakąkolwiek możliwość, by w krótkim czasie sprawdzić coś, co zarzucasz Codility, że nie sprawdza: zgrabne projektowanie i integrowanie. Te rzeczy są bardziej czasochłonne, natomiast w krótkim czasie da się sprawdzić, czy człowiek w ogóle jest w stanie coś zaprogramować - gdzie będzie się liczyło wyłącznie to, czy działa.

Nie jestem też zwolennikiem rekrutowania kandydatów na podstawie samych filozoficznych dywagacji, co wiele firm robi (a przynajmniej robiło, gdy jeszcze interesowałem się szukaniem pracy), chyba że podstawowym obowiązkiem w późniejszej pracy ma być filozofowanie, a nie rzeczywiste tworzenie programów. W przeciwieństwie do części osób w tym wątku, nie postrzegam jako brak szacunku prośby, by kandydat poświęcił kilka godzin na zadanie. Właśnie brak zadania jest brakiem szacunku dla osób, które dobrze programują, natomiast mniej marketingowo się wysławiają.

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

Potrzeba badania "wyczucia smaku" u juniora wydaje mi się bardzo mocno wątpliwa. To wyczucie smaku w miarę nabywania doświadczenia się zmienia. I dodatkowo, zależnie w jakiej działce człowiek pracuje, będzie się znacznie różniło, ze względu na stykanie się z innego rodzaju problemami.

0

Odpowiadam za rekrutację, a potem jestem rozliczany przez klienta / swojego przełożonego, za to jak Tymi ludźmi realizuje projekty.

Rekrutacja wygląda zawsze tak samo:

  • szybki screening zbioru CV i wyestymowanie kto jak jest mocny. Screenig zabiera 5-15 min do 100 CV. Definitywnie odrzuceni, zastanawiam się, chcemy na pewno zaprosić na rozmowę.
  • im słabszy zawodnik tym więcej wrzucam projektów do domu / codility
  • im lepszy, tym bardziej skłonny jestem od razu się spotkać
  • jak gdzieś pośrodku to sanity phone call czy coś takiego, żeby nie tracić czasu na spotkanie

Na rozmowie: 1,5-3h.

  • sprawdzam projektowanie, oop, funkcyjność
  • podstawy algorytmiki
  • pisanie kodu na tablicy
  • projektowanie na tablicy
  • pytania z projektów / CV
  • pytania z projektu domowego
  • stacku technologicznego co ma wpisany kandydat
  • podejścia do nauki i stosów technologicznych

Pomimo rekrutacji do wielu różnych części systemu, gdzie jest przekrojowy stack backend/frontend - nigdy nie pytam z frameworków. Nie ma sensu. Ważniejsza jest szybkość uczenia, twierdzisz, że znasz Angulara? Super masz tutaj 2 dni na ogarnięcie Reacta i zacznij pisać.

Najważniejsze jest pisanie kodu na tablicy - czy ktoś teoretycznie ma styczność z programowaniem czy jednak trochę popisał kodu i to po prostu widać. Zadania raczej na zasadzie napisz funkcję, która mając wejście XYZ wypluje na wyjście ZYX np. lekki processing stringa wejściowego.

Ocenę kandydata mam mniej więcej po 15-30 minutach w trakcie rozmowy i z góry widać, czy chcemy taką osobę czy nie.
Decyzja zapada w ciągu 5-15 minut po rozmowie na spotkaniu z innymi rekruterami.
Zwyczajowo dajemy odpowiedź dzień - dwa później, aby nie wyjść na desperatów / że nam za bardzo zależy.

Kandydata raczej oceniam pod względem technicznym / ile chce pieniedzy / jaki ma charakter i jak pasuje do projektu.
Czasem potrzeba super wymiatacza co jest ambitny i butny, drogi, a czasem trzeba taniego klepacza kodu do klepania kolejnych formatek - nadrzędny cel to stworzenie zespołu do realizacji projektu.

0
MuadibAtrides napisał(a):

Ważniejsza jest szybkość uczenia, twierdzisz, że znasz Angulara? Super masz tutaj 2 dni na ogarnięcie Reacta i zacznij pisać.

Znam to z praktyki. W projekcie bywają takie toolsy albo całe napisane pod to projekty, że w tej części Europy nikt tego nie używa.
Naucz się szybko i jeszcze się ciesz, że się "rozwijasz".

Jak się ma w projektach specyficzną egzotykę, to liczy się szybkość nauki, żeby ktoś zaraz zaczął w tym pisać i jeszcze zdążył coś do projektu napisać, zanim przed upływem pół roku zada sobie pytanie - Co ja tutaj ku... robię!?

0

@mr_jaro: @BraVolt

Kandydat jest informowany na procesie rekrutacji jaki mamy stack i musi świadomie podjąć decyzję. Raczej to jest tak, że jak jesteś specjalistą od Reacta, to w projekcie mamy React / Angular / Vue.js - i jako frontendowiec czasem będziesz realizował mniejsze pod projekty / zadania w danej podczęści - i od razu na wstępie mówimy wprost do której części mamy zapotrzebowanie - jak komuś to nie pasuje, to HR nawet nie umawia rozmowy z nim / nie przesyła dalej zadań.
To nie kwestia egzotyki, tylko tego, że klient ma u nas np. zadań w danym miesiącu na części reactowe, a potem np. trzeba jakieś formatki w Angularze porzeźbić. Raczej stawiamy na mały ogarnięty full stackowy zespół, który porusa się po każdej części, a nie zna tylko np. Reacta.

2
MuadibAtrides napisał(a):

nigdy nie pytam z frameworków. Nie ma sensu. Ważniejsza jest szybkość uczenia, twierdzisz, że znasz Angulara? Super masz tutaj 2 dni na ogarnięcie Reacta i zacznij pisać.

Czyli uczysz się 2 lata Angulara, wuj z tym tera pisz po 2 dniach reacta :]
(potem nie dziwne, że ludzie się wkurzają i mają opinie, że rekrutacje to strata czasu.)
Screenig i sanity phone call brzmi poważnie i budzi respekt.

0
MuadibAtrides napisał(a):

projekcie mamy React / Angular / Vue.js - i jako frontendowiec czasem będziesz realizował mniejsze pod projekty / zadania w danej podczęści

Ta trójka to nie jest egzotyka. Egzotyka to taki coś, że pracować możesz co prawda w 2 albo nawet 3 miastach w Polsce ale tak naprawdę tylko dla jednego klienta i nikt inny w tym/z tym nie pracuje.

3

@MuadibAtrides jeśli wie jak jest i nie okaże się się, że zamiast 90% angulara na które się pisał dostanie 5% angulara i 95% czegoś innego to ok. No i oczywiście mam nadzieję, że w każdym projekcie czuwa senior z dużym doświadczeniem w konkretnym frameworku i ukierunkowany tylko na ten framework bo jeśli nie to już widzę ten bałagan, który znam z doświadczenia.

0
MuadibAtrides napisał(a):

Raczej stawiamy na mały ogarnięty full stackowy zespół, który porusa się po każdej części, a nie zna tylko np. Reacta.

Mały zespół to 60 osób, każdy w rok od rozpoczęcia pracy musi przewinąć się nad każdym fragmentem całości nad którym pracuje się tu, w polskim oddziale.

Ale to jest bogate korpo, bogaty projekt, płaci się za ogarnięcie całości przez rok i to płaci się na tyle dobrze, żeby po roku wdrażania się w całość devsi nie uciekali z pracy.

Gdyby w takie firmie rekrutowano na zasadzie "twierdzisz, że znasz dobrze X to w dwa dni naucz się Y i pokaż nam projekty" to chyba zarządzono by kwarantannę, bo się pojawiła nowa mutacja "społeczna" koronawirusa.

W ludzi się inwestuje i płaci im tyle, żeby po zainwestowaniu nie skakali z kwiatka na kwiatek nim przepracują rok.

1

Jestem ciekaw po kiego grzyba robić ten cały "Screenig" skoro potem i tak truje się tyłek zupełnie innym stackiem niż w jest w CV.

0
czysteskarpety napisał(a):
MuadibAtrides napisał(a):

nigdy nie pytam z frameworków. Nie ma sensu. Ważniejsza jest szybkość uczenia, twierdzisz, że znasz Angulara? Super masz tutaj 2 dni na ogarnięcie Reacta i zacznij pisać.

Czyli uczysz się 2 lata Angulara, wuj z tym tera pisz po 2 dniach reacta :]
(potem nie dziwne, że ludzie się wkurzają i mają opinie, że rekrutacje to strata czasu.)
Screenig i sanity phone call brzmi poważnie i budzi respekt.

Powiedz mi, po co ktoś miałby iść na rekrutację jak dostaję informacje, że w tej chwili mamy np. pracy na rok w Reactie a w Angularze nic pomimo, że w ogłoszeniu jest szukanie front-end developera z znajomością jednego z tych frameworków?

Nie mam interesu w tym, aby zatrudnić kogoś, kto się sfrustruje, że jako Angular Dev będzie robił w Reactie i nie przedłuży z nami umowy i ucieknie po 1 miesiącu, albo nawet nie przyjdzie w następnym tygodniu.

Szkoda mi mojej premii / pensji za taką wtopę :/

1
MuadibAtrides napisał(a):

Nie mam interesu w tym, aby zatrudnić kogoś, kto się sfrustruje, że jako Angular Dev będzie robił w Reactie i nie przedłuży z nami umowy i ucieknie po 1 miesiącu, albo nawet nie przyjdzie w następnym tygodniu.

Piekło frontendowych frameworków i frontendowych developerów.
Wpada do projektu developer, eksperymentuje z nowym frameworkiem, coś z eksperymentów zostaje u klienta, developer znudził się, pół roku, ucieka szukać nowych wyzwań. Zostają kawałki kodu po eksperymentach. Nowy zatrudniony na miejsce eksperymentatora musi ogarniać nie tylko dodatkowy framework to jeszcze musi wnikać w "genialnie napisane eksperymenty" poprzednika.

1

Ogólnie jestem oburzony trochę tym tematem, aż dostałem migreny, idę się położyć.

0

Gdzieś na linkedInie mi kiedyś mignął fajny post skierowany do przedsiębiorców - nie rekrutujcie jak google bo googlem nigdy nie będziecie - to tak odnośnie potężnych firm które robią wieloetapowe rozmowy, zadania domowe, codility, przepytywania, okresy próbne żeby potem zaproponować oszałamiające pensje rzędu 5k netto :D

Innymi słowy proces rekrutacyjny powinien odpowiadać stanowisku na które się rekrutuje - jak rekrutuję kogoś za duże pieniądze na odpowiedzialne stanowisko to oczywistym jest że chcę go dobrze sprawdzić i poznać, wiedzieć dokładnie jaką specjalistyczną wiedzę i umiejętności posiada, ale na juniora takie wygibasy? Naprawdę się to komuś opłaca?

1
bkHVYR napisał(a):

Gdzieś na linkedInie mi kiedyś mignął fajny post skierowany do przedsiębiorców - nie rekrutujcie jak google bo googlem nigdy nie będziecie - to tak odnośnie potężnych firm które robią wieloetapowe rozmowy, zadania domowe, codility, przepytywania, okresy próbne żeby potem zaproponować oszałamiające pensje rzędu 5k netto :D

Innymi słowy proces rekrutacyjny powinien odpowiadać stanowisku na które się rekrutuje - jak rekrutuję kogoś za duże pieniądze na odpowiedzialne stanowisko to oczywistym jest że chcę go dobrze sprawdzić i poznać, wiedzieć dokładnie jaką specjalistyczną wiedzę i umiejętności posiada, ale na juniora takie wygibasy? Naprawdę się to komuś opłaca?

U mnie w firmie około 3 miesiące temu wystawiliśmy ofertę, że szukamy 10 juniorów. Tylko pierwszego dnia przyszło 300 CV. Oczywiście trzeba było je wszystkie mocno przefiltrować i ostatecznie wartościowych kandydatów było może 100 przez cały okres przyjmowania aplikacji. Z tej kwoty wybraliśmy około 20 osób, które zaprosiliśmy na rozmowy. A jestem pewien, że z tych 80 osób które odrzuciliśmy, na pewno z 5 osób by się znalazło lepszych, niż te które przyszły. Jeżeli chodzi o juniorów, to niestety jest rynek pracodawcy, a nie pracownika. My chcemy wybrać najlepszych. Nie mówię, że mieliśmy długą i skomplikowaną procedurę rekrutacyjną, ale teraz pracodawcy mogą pajacować bardzo w kwestii szukania nowych, mało doświadczonych ludzi.

1
bkHVYR napisał(a):

Naprawdę się to komuś opłaca?

Jest to dość powszechne u tych dużych, którzy mają kasę, więc się opłaca.

Juniorowi nie płaci się za faramework którego się naumiał (i na tym koniec) ale za ogólny potencjał do rozwoju.

1

Junior też juniorowi nierówny. Jeden umie tylko program ze studiów - dużo teorii mało praktyki, inny napisał kilka praktycznych aplikacji i z teorii doczytywał co potrzebował. Zakładając, że rzeczywiście jesteście skłonni zatrudnić juniora a nie mida w cenie juniora😉

Ja zaczynając aplikowanie mimo dobrej znajomości technologii i wiedzy z zakresu projektowania aplikacji odpadałam, bo nie umiałam napisać Fisher-Yates Shuffle z marszu w 15 minut w jakimś internetowym teście. Jak mi się w końcu udało dostać pracę (przez zadanie praktyczne) to nikt nie narzekał na mój kod.

Wydaje mi się, że jednym testem niestety wszystkiego nie ustrzelisz, skupiłabym się chyba na sprawdzaniu tego co w praktyce okazuje się na danej pozycji najbardziej istotne, jeśli jest czas można dodatkowo ekstra poświęcić na zweryfikowanie mocnych punktów cv/listu.

1

To jest o tyle zabawne, że na stanowiska juniora są rekrutacje typu FAANG, a na seniorskie rozmowa przy kawce, polecenie kolegi.

1
itsme napisał(a):

To jest o tyle zabawne, że na [..,] juniora są rekrutacje typu FAANG, a na seniorskie rozmowa przy kawce, polecenie kolegi.

Właśnie dlatego, bo po pracy 2 lata w znanej firmie można założyć, że został na starcie przetestowany, w pracy się sprawdził i doszkolił, reprezentuje powiedzmy średni poziom tamtej dużej firmy.

Na juniora jest trzepanie jak do misji na Marsa ale też jest pójście po linii najmniejszego oporu, to znaczy przetrzepanie ale wstępna selekcja do przetrzepanych i sprawdzonych studentów/absolwentów na wydziałach które są uznawana za "te wydziały".

Na każdym etapie chcą mieć ludzi w jakiś sposób sprawdzonych wcześniej przez innych.

1
BraVolt napisał(a):
itsme napisał(a):

To jest o tyle zabawne, że na [..,] juniora są rekrutacje typu FAANG, a na seniorskie rozmowa przy kawce, polecenie kolegi.

Właśnie dlatego, bo po pracy 2 lata w znanej firmie można założyć, że został na starcie przetestowany, w pracy się sprawdził i doszkolił, reprezentuje powiedzmy średni poziom tamtej dużej firmy.

Na juniora jest trzepanie jak do misji na Marsa ale też jest pójście po linii najmniejszego oporu, to znaczy przetrzepanie ale wstępna selekcja do przetrzepanych i sprawdzonych studentów/absolwentów na wydziałach które są uznawana za "te wydziały".

Na każdym etapie chcą mieć ludzi w jakiś sposób sprawdzonych wcześniej przez innych.

To byłby piękny film. W życiu wygląda to tak, że senior z 10 lat exp dostał się do jakiegoś korpo bo umiał HTML a aktualnie by nie przeszedł tej rekrutacji na juniora.

1 użytkowników online, w tym zalogowanych: 0, gości: 1