Wpis z mikrobloga

Pod moim wczorajszym wpisem na temat rozmów rekrutacyjnych wywiązała się dość ciekawa dyskusja na temat sprawdzania wiedzy podczas rozmów technicznych i chciałbym pociągnąć ten temat.

Jak Waszym zdaniem powinna być poprowadzona dobra rozmowa rekrutacyjna i w szczególności część techniczna?

Z mojej perspektywy, jako osoby prowadzącej rozmowy techniczne to spotkanie ma przede wszystkim na celu ocenę, czy chciałbym z danym kandydatem współpracować. Czy kandydat sobie poradzi w projekcie, a także moim zdaniem jaki poziom reprezentuje i co może wnieść do zespołu, celem doradzenia zespołowi HR propozycji finansowej dla kandydata.

Nie chcę tutaj rozwodzić się nad całym procesem rekrutacyjnym, a wyłącznie nad rozmowami technicznymi, jednak przyjmijmy, że kandydat którego mamy przed sobą wysłał CV, jest po rozmowie z HR gdzie był zapytany o rzeczy typu dostępność, oczekiwania finansowe, a także dopytany o rzeczy które nas interesują, a zabrakło ich w CV. Dodatkowo wykonał zadanie techniczne na które poświęcił 4 godziny (z pespektywy programisty uważam ten czas za akceptowalny) i jego kod jest adekwatny do poziomu na który aplikuje.

Dajmy też założenie, że reprezentujemy dobrą firmę trzymającą bardzo wysokie standardy w temacie kodu, organizacji pracy, taką w której lubimy pracować.
Przyjmijmy też, że rekrutujemy osobę z 3 letnim doświadczeniem, która celuje w górne widełki juniora, która deklaruje się, że pracowała ze wszystkimi wykorzystywanymi w firmie technologiami.

Jakie pytania byście zadali? Jakie pytania chcielibyście usłyszeć?

Zgadzam się z tezą napisaną przez wiele osób, że bardzo wielu dobrych kandydatów może po prostu nie wiedzieć, nie interesować się jak dane zagadnienia działają. Jak jednak wtedy zweryfikować czy kandydat nie skłamał w CV co do swojego doświadczenia, a zadania nie zrobił mu kolega? W jaki sposób ocenić, czy na pewno zasługuje na górne widełki, a nie na dolne? Doświadczenie doświadczeniu nie równe, a koniec końców liczy się to co wnosi do firmy.

Zapraszam do dyskusji ;)

#programowanie #programista15k #pracbaza #pracait
  • 20
  • Odpowiedz
@Jurix: najgorsze jest to że musisz nawigować między tym że chcesz bardzo ogarniętego ziomka(ja zwykle mierze ludzi swoją miarą tzn szukam podobnych do mnie), a śmieciową zwykle (w polskich warunkach januszy biznesu) pulą CV i jednak presją na domknięcie rekrutacji żeby interes w firmie się kręcił...to jest mega słabe

do tego presja żeby próbować "sprawiedliwie" przeprowadzić rekrutacje dając wszystkim szanse...ale to już jest chyba utopia
  • Odpowiedz
@Bruno_: ? Wyjaśnisz co w tym złego?

@laki1: Dobra, a co jeśli ktoś mu zrobił to zadanie? Na rozmowie wypada też ocenić czyjeś umiejętności miękkie, które imo są niezwykle ważne w pracy programisty.

do tego presja żeby próbować "sprawiedliwie" przeprowadzić rekrutacje dając wszystkim szanse...ale to już jest chyba utopia


@villager: Przyjęcie kogoś chociażby na okres próbny to z perspektywy firmy zawsze ryzyko. Nawet najlepszy dev nie wdroży się w
  • Odpowiedz
@Jurix: Najlepsza rozmowa techniczna, jaką miałam, była nie wcale w korpo, gdzie niby proces ten powinien być dopieszczony, bo tam zawsze zadawali niepotrzebne pytania z dupy, byle jak najbardziej podchwytliwe i niepotrzebne w codziennej pracy. Najlepsza była w niewielkiej firmie, gdzie pan kierownik dał mi dostęp zdalny do ich komputera. Otworzył mi plik z zadaniami, była godzina na rozwiązanie. Nie zdążyłam zrobić wszystkiego, bo nawet nie taki był zamysł. Zrobiłam może
  • Odpowiedz
@Jurix: mówie z perspektywy outsourcingów czyli 90% polskich firm. tutaj nie ma czasu i pieniędzy na niańczenie ludzi, albo zatrudniamy doświadczonych albo wcale
  • Odpowiedz
Dobra, a co jeśli ktoś mu zrobił to zadanie?


@Jurix: To zamiast zadania zróbcie pair programing, może być przez hangoutsy z kamerką.

Na rozmowie wypada też ocenić czyjeś umiejętności miękkie


@Jurix: W pierwszym poście napisałeś że interesuje cie część techniczna
  • Odpowiedz
via Wykop Mobilny (Android)
  • 0
@Jurix: jeżeli rekrutujesz osobę z doświadczeniem to skupionym się na tym jakie miała doświadczenia, problemy i jak je rozwiązywała. Załóżmy że szukacie kogoś w technologi x, więc zadawalbym praktyczne pytania związane z tą technologią które odzwierciedlają specyfike projektu na którą kandydat aplikuje. Czy zna dane metody/ funkcje, jak by podszedł do jakiegoś problemu itp. chyba że faktycznie implementujecie jakieś niskopoziomowe algorytmy które trzeba jeszcze zoptymalizować, ale to chyba rzadkość, więc po
  • Odpowiedz
@laki1: Hm, może to jest dobre wyjście, tak jak wspomniała @ode45. Podczas takiego pair programmingu jak dużo prowadzący miałby pomagać, pytać? Jeśli wcale, to kłóci się z ideą pair programmingu, jeśli miałby na bieżąco komentować każdą decyzję, linię kodu, to imo jest to spory stres do kandydata. Czy np. jeśli widzimy że robi coś bardzo źle, albo kompletnie się zagubił wtedy podpowiadamy?
  • Odpowiedz
@Tasartico7: Akurat takie podejście nie bardzo widzę u mnie w firmie. Pracuję w php i o sam język nie ma wiele do pytania, szczególnie od kandydatów którzy już coś potrafią. Z frameworka też nie ma przestrzeni do zbyt wielu pytań, ponieważ stosujemy podejście framework agnostic.

Większość pisanego przez nas kodu to implementacja jakiejś logiki biznesowej, kończąc na jakiś zapytaniach i to ich optymalizacja lub jej brak zwykle odpowiada za wydajność modułu.
  • Odpowiedz
@Jurix: Uwazam ze taki sposób jest najlepszy, mam identyczne doswiadczenia jak @ode45. za to zadanie domowe to chyba najgorszy sposób rekrutacji xD Juz wole pytania o definicje z wikipedii

Co do pomocy to zalezy od poziomu na jaki rekrutujesz, jak szukacie juniora to wiadomo ze wiecej niz seniorowi. Nie chodzi zeby komentowac kazda linijke i tlumaczyc kazda decyzje, ale raczej zeby mowil co chce zrobic w stylu "zaczne od napisania
  • Odpowiedz
zadanie techniczne na które poświęcił 4 godziny


@Jurix: każdy szanujący się człowiek nie zgodzi się na coś takiego. Ja od dłuższego czasu nie zgadzam się na jakiekolwiek zadania techniczne przed samą rozmową. Złożysz parę takich zadanek do kupy i niejeden sprint darmo z tego się uzbiera. W cywilizacji bywają adaptation days ale w pełni płatne niezależnie czy kandydat się załapie i jako ostatnie etap rekrutacji.
  • Odpowiedz
@cecidimus: Zależy od firmy, od rodzaju i jakości doświadczenia.
U mnie w firmie różnica między juniorem i seniorem sprowadza się do zarobków - nie ma żadnych większych uprawnień, czy większego posłuchu z powodu tytułu, liczy się to kto co potrafi, a w przypadku np. dyskusji podczas planowania funkcjonalności, kto jest w stanie przekonać do swoich racji.

Niemniej, zaznaczyłem, że aplikuje o górne widełki tego stanowiska, a nie jedna firma jest w
  • Odpowiedz
czułbym potrzebę o zapytania czegoś z teorii


@Jurix: Nie widze jakos wiekszej przeszkody, moze troche by wybijalo z rytmu, ale moze na koniec pare pytan po tym jak juz zrobil zadanie albo skonczyl sie czas?
Pisales wczoraj o pytanie o indeksy w bazie danych, mozna by ulozyc to tak zeby jakos otrzec sie o ten temat i przy okazji o to zapytac ¯\_(ツ)_/¯
  • Odpowiedz
@laki1: Te indeksy to był tylko przykład, jednak gdyby zadanie było skonstruowane w taki sposób, żeby sprawdzić tę wiedzę, umiejętność to byłaby spoko opcja :)
  • Odpowiedz
@Jurix: Nie no wiem, ze przyklad, ale wlasnie chodzi mi o generalna zasade, ze mozna ulozyc zadanie tak zeby zahaczyc o pare tematow gdzie mozna tez zapytac o jakas teorie
  • Odpowiedz
@Jurix: Serio Twoim zdaniem to normalne poświęcić 4h na zadanie, za co nikt nie zamierza zapłacić? xD Rozumiem 30-60 minut, ale 4h no bez przesady, jakby mi ktoś taką długą rekrutację próbował zrobić to stwierdziłabym, że kogoś tu nieźle pogrzało, a to tylko jeden z miliona etapów. Skoro ktoś zrobił zadanie to jeszcze ze 3 pytania kontrolne, żeby sprawdzić czy to wykonał samodzielnie i tyle.
  • Odpowiedz
@Jurix: Prowadzę rozmowy na bieżąco.

Generalnie to czego szukam zależy od poziomu osoby z którą rozmawiam - zgodnie z każdym poziomem , będę miał trochę inne oczekiwania, ale od każdego oczekuję, że potrafi rozwiązać jakiś w miarę nietrywialny algorytmicznie problem - gdzie "rozwiązać nietrywialny algorytmiczny problem" nie oznacza, że mi napisze quicksorta z pamięci, tylko, że potrafi posłużyć się najważniejszymi strukturami danych i wymyślić algorytm do efektywnego rozwiązania problemu.

@not_me:
  • Odpowiedz