Hackerrank jako etap rekrutacji

1

Szukając pracy jako junior w zeszłym roku na niektórych rekrutacjach dostawałem właśnie zadania na tych platformach. Sam porobiłem kilkadziesiąt zadań na codewars i zdarzyło się, że omawialiśmy niektóre rozwiązania na rozmowach. Szkoda, że potem to wygląda tak, że przychodzisz do pracy, sprawdzasz kod i się zastanawiasz co tu się dzieje.

To prawie taka sama sytuacja jak firma która chwali się, że u nas same nowości a jak przychodzisz do pracy to okazuje się, że jesteście w trakcie wdrażania Javy 8

2

Najgorsze jest czasem w tym wszystkim to, że możesz mieć gorszy dzień, być niewyspany (gorsza koncentracja, stres) i już tak skomplikowanego zadania nie zrobić.

1
BraVolt napisał(a):

W Polsce robi się to co się robi (korporacyjne technologie). Jednak takie serwisy jak ten nie są bez powodu na innych rynkach popularne.

Dlatego nieprzystosowanym firmom wydaje sie, ze jak dadza komus hackerranka to bedzie fajnie i nowoczesnie! Tymczasem Polski robotnik korporacyjny lapie sie za glowe i zastanawia jak to mozliwe!

Jak aplikujesz na korpo klepacza to nie bierz udzialu w takich cyrkach.
Mam kolege, ktory szukal wymagajacej pracy. Rekrutacja byla ciezka, pelna zaawansowanej algorytmiki, a w pracy po chyba miesiacu rzucil to w cholere, bo sie okazalo, ze robota jak kazda inna - klepacz korpo utrzymaniowki.
Rekrutacja pochlonela mu chyba, ze 3 miesiace + miesiac w pracy nim sie polapal gdzie trafil.

0

W jaki inny sposób checie zrobić odsiew / rekrutację i sprawdzić umiejętności programistycznej danej osoby w krótkim czasie?

1
MuadibAtrides napisał(a):

W jaki inny sposób checie zrobić odsiew / rekrutację i sprawdzić umiejętności programistycznej danej osoby w krótkim czasie?

Tracisz czas. 80% osób tutaj nie zaimplementowałoby odwrócenia Stringa bez użycia gotowych funkcji.
A po co nad tym pracować, skoro można znaleźć firmę gdzie na rozmowie spytają o różnice między interfejsem i klasą abstrakcyjną w Javie?

2
macok napisał(a):
MuadibAtrides napisał(a):

W jaki inny sposób checie zrobić odsiew / rekrutację i sprawdzić umiejętności programistycznej danej osoby w krótkim czasie?

Tracisz czas. 80% osób tutaj nie zaimplementowałoby odwrócenia Stringa bez użycia gotowych funkcji.
A po co nad tym pracować, skoro można znaleźć firmę gdzie na rozmowie spytają o różnice między interfejsem i klasą abstrakcyjną w Javie?

A skąd pewność że 80% a nie 95% albo 50%? Robiłeś jakieś badania? Czy tylko z zasady że każda informacja zawierające procenty (statystykę) brzmi mądrzej nawet jak te procenty (statystyka) są zmyślone?

BWT jakbym w pracy potrzebował odwracania Stringa bez użycia bibliotek to bym się tego nauczył, ale tak dla siebie to nie mam czasu :(

0

Aktualna oferta z 4Programmers

Opis oferty
Brand new project in its expansion phase
90% of backend tasks, 10% of frontend
Machine Learning algorithms
The application is developed and hosted in AWS
Scrum methodology

0

Niestety, ale musze się zgodzić. Sam sobie odwiedzam od czasu do czasu takie serwisy jak hakerrank ale dla mnie rekrutacja przez tego typu platformy pod mój profil zawodowy to niestety nieporozumienie. I nie chodzi o to że "ta wiedza jest nikomu niepotrzebna", ale faktem jest że w codziennej pracy nie bardzo rzadko wykorzystuje się tego typu wiedzę. To jak odpytywanie z dokumentacji co jest na stronie 743 w 3 akapicie. Ale wina to nie tylko tych platform ale też frirm które małpują rozwiązania od innych i myślą że są FAANG, gdzie faktycznie jak buduje się customowe rozwiązania pod ich problemy, gdzie takie podejście "niskopoziomowe" jest wykorzystywane dużo częściej. Ale do klepania crudów czy utrzymaniówki w Springu? Przypadek jeden ma milion. Na pocieszenie dodam że niektóre z tych platform jak Codility dostrzegają problem nieefektywności serowania tylko takich zadań i z tego co wiem starają się uświadamiać klientów o możliwości dodawania zadań bardziej tematycznych, na codility widziałem zadania z Django. Więc może za jakiś czas wyleczymy się z tego trendu.

3

Są jak widać powody dla których robi się takie rekrutacje z algorytmiką.

Można przecież zrobić rekrutację na zasadzie
2600 brutto na miesiąc. Przyjęty każdy kto się zgadza.
Mało ludzi?
3600 brutto na miesiąc. Przyjęty każdy kto się zgadza.
Trochę jeszcze brakuje ludzi?
4600 brutto na miesiąc. Przyjęty każdy kto się zgadza.
Wszystkie stanowiska obsadzone.

Zamiast się bawić z algorytmiką żeby płacić 20000 brutto na miesiąc.

2

Zadanie algorytmiczne zadaniu algorytmicznemu nie jest równe. Jeśli np. jest wymaganie rozwiazania nietryialnego problemu ze złożonością O(n) a Ty później idziesz klepać CRUDy to nie halo.
Żeby sprawdzić czy w ogóle myślisz czy tylko umiesz kopiować z SO - jestem wstanie zrozumieć.

0
BraVolt napisał(a):

Zamiast się bawić z algorytmiką żeby płacić 20000 brutto na miesiąc.

Jeśli ktoś porządnie zna algorytmy i zarabia 20 tys brutto miesięcznie, to albo jednak nie zna tych algorytmów porządnie, albo bardzo źle wybrał w życiu.

0
somekind napisał(a):
BraVolt napisał(a):

Zamiast się bawić z algorytmiką żeby płacić 20000 brutto na miesiąc.

Jeśli ktoś porządnie zna algorytmy i zarabia 20 tys brutto miesięcznie, to albo jednak nie zna tych algorytmów porządnie, albo bardzo źle wybrał w życiu.

Dobry żart.
Wiesz, że np. taki SpaceX w LA płaci mniej niż pierwszy lepszy bank?
Duże pieniądze (zwłaszcza w PL) to są w bankach i ubezpieczeniach, czyli tam gdzie większość nudnej korporoboty.

6
macok napisał(a):

Dobry żart.

To nie żart, to obserwacja.
Jeśli komuś jest dobrze z wymiataniem w algorytmach i zarobkami poniżej przeciętnej, to niech nie kozaczy i nie wywyższa się nad senior crudowcami. Bo nawet na tym forum są ludzie, którzy zarówno wymiatają, jak i karierę robią, i oni mogą być jakimiś idolami, a nie ktoś, kto marnie zarabia, za to ciągle powtarza jakie to algorytmy są niezbędne i dowartościowuje się wywyższaniem nad tymi, którym testy na Codility nie poszły.
No naprawdę to czasami wygląda jak Ferdek mówiący, że w tym kraju nie ma pracy dla ludzi z jego wykształceniem.

Wiesz, że np. taki SpaceX w LA płaci mniej niż pierwszy lepszy bank?
Duże pieniądze (zwłaszcza w PL) to są w bankach i ubezpieczeniach, czyli tam gdzie większość nudnej korporoboty.

Owszem, tam są duże pieniądze. Jeszcze większe są gdzie indziej, ale nie wszędzie można wejść z ulicy, nawet przechodząc Codility. ;)

1

Ja powiem tak, aplikowałem do Qualtrix i w pierwszym etapie rekrutacji mają hackerrank-a.
Kodowałem w C++ i przy pierwszym zadaniu przegapiłem małe UB, który powodował złą odpowiedź, a nie crasha.
Szukając problemu przy pierwszym zadaniu, brakło mi czasu na 3 zadanie (dosłownie 2 minuty).
Opisałem problem i gdzie popełniłem błąd i zaliczyli mi ten etap.

To dowodzi, że hackerrank itp nie są podczas rekrutacji ostatecznym wyznacznikiem wartości pracownika, a jedynie filtrem na debili, którzy słyszeli że w IT można dostać dobrą kasę.

1
MarekR22 napisał(a):

To dowodzi, że hackerrank itp nie są podczas rekrutacji ostatecznym wyznacznikiem wartości pracownika, a jedynie filtrem na debili, którzy słyszeli że w IT można dostać dobrą kasę.

Zgadza się, etap Hackerrank/Codility to zazwyczaj noob-filter. Niestety na takim noob-filterze odpadają często Seniorzy 20k z innych firm, którzy potem wchodzą w wątek taki jak ten i płaczą jakie te algo są bez sensu.

8

Czy to że z palca nie zaimplementuje quicksorta czyni mnie debila albo "klepacza kodu"? No chyba nie bardzo, mnie na przykład interesuje bardziej architektura oprogramowania. Wiem jaka jest złożoność obliczeniowa HashMapy (i jak ona działa) albo jak działaja drzewa binarne, ale nie zaimplementuje z palce złozonych algorytmów z użyciem O(n). Ludzie tak nabiają się z "CRUDów", więc jestem ciekawy czemu tak wiele to spaghetti code i droga przez mękę

3
MarekR22 napisał(a):

To dowodzi, że hackerrank itp nie są podczas rekrutacji ostatecznym wyznacznikiem wartości pracownika, a jedynie filtrem na debili, którzy słyszeli że w IT można dostać dobrą kasę.

Twoja osobista przygoda niczego nie dowodzi. Ja brałem udział w rekrutacji przy użyciu Codility, w którym brakło mi sekund, aby wgrać poprawiony kod i automatycznie dostali wersję z małym, aczkolwiek krytycznym błędem. Wysłałem od razu wersję działającą, ale to olali, bo dla nich było ważne to, co w automatycznym narzędziu.
To też czegoś "dowodzi"? No nie bardzo, bo "dowód przez przykład" to nie jest dowód.

tdudzik napisał(a):

Zamiast trollować na forum lepiej po prostu odpalić tego Cormena i LeetCode i nie będzie problemu. Starczy czasu i na algorytmy i architekture . ;)

Ale "problem" nie polega na nauczeniu się, tylko na tym, że nie ma sensu się uczyć czegoś, czego potem nie będzie się używać, bo i tak w końcu się zapomni. Czemu ma służyć taka fikcja?

8
tdudzik napisał(a):

Zamiast trollować na forum lepiej po prostu odpalić tego Cormena i LeetCode i nie będzie problemu. Starczy czasu i na algorytmy i architekture . ;) (no i nikt nie wymaga pisania quick sorta, ale o tym już była mowa).

Nie starczy. Mam żonę, hobby, życie itd.
Ogólnie starczy mi czasu tylko na jedną z tych rzeczy w rezultacie mam do wyboru uczyć się:

  • czegoś co przyda mi się w pracy (architektura)
  • czegoś co mi się nie przyda w pracy (a przynajmniej przez ostatnie 8 lat się nie przydało), ale przyda się podczas rekrutacji (algorytmy)

IHMO jest to budowanie fikcji

1

Mi osobiście od dawna nikt nie proponował testu algorytmicznego, ale miałem sytuacje z testem IQ na 100 pytań i chyba godzinę, chyba z rok temu. Gdzieś na początku uznałem, że pytania w tym teście są bez sensu pod kątem gdzie chce pracować i podziękowałem za rekrutacje.

4

Procesy rekrutacyjne w IT są skopane w mniejszym lub większym stopniu i tego się nie uniknie. Zwłaszcza dziś, kiedy jest spory napływ przebranżowionych.

Hackerrank/codility/etc czy coś pozwala robić prosty, niemal automatyczny i szybki odsiew. Kandydat poświęca godzinę lub dwie na pierdołę z języka typu odwracanie stringów/tablic i koniec, dodatkowo sprawdza się, czy on po inglish w ogóle zrozumiał o co kaman. Oczywiście, może to też odsiać jakichś obiektywnie dobrych programistów, zwłaszcza siedzących głównie w architekturze, którzy albo nigdy nie przysiedli na dłużej do takich zadań, albo je dawno zapomnieli, albo mieli zwyczajnie zły dzień. Tego się tutaj nie uniknie.

Z drugiej strony można ograniczyć się do samych technicznych interview - ale jak kandydatów będzie dużo to co, po 2h na każdego rokującego? To wyłoży pracę w każdej firmie, nawet zakładając jakąś 5 minutową rozmową telefoniczną "filtrującą". Team musi się context switchować przez takie interview, bo często chodzi więcej niż 1 rozmowa na rozmowę z kandydatem.

Jest jeszcze opcja "zadanie do domu", i znów: mocno niedoskonała. Bo dostanie ktoś jakiś projekt typu API z testami i dokumentacją, spędzi nad tym tydzień, a feedbacku dostanie dwa zdania ("złe, bo tak", "złe, bo mam migrenę itp", "złe, bo małżonek mnie wkurza") choć może zrobić dobrze zadanie według przedstawionych wymagań, ale np. nazewictwo zmiennych może komuś nie podpasować, kto źle wstał i sprawa uwalona i parę dni w plecy na marne. Zresztą, nawet jeśli zakładamy dobrą wolę rekrutujących to i tak muszą się z takim kandydatem skontaktować, popytać co nieco i upewnić, że mu kolega tego zadania nie zrobił, a to generuje dodatkowy narzut czasowy.

Także ten, nie ma co narzekać na te procesy, bo każda firma orze jak może. Były, są i będą skopane, nic się na to nie poradzi.

13

Testy Codility mnie wkurzają, bo badają pisanie algorytmów na czas, a ja tak nie umiem. Owszem, jakbym miał kilka godzin, to bym wykminił, ale nie bardzo mając na to 40 minut i robiąc w pośpiechu. No i na Codility często jest to wysyłanie w ciemno, bo możesz mieć błąd w algorytmie, który się uaktywni przy większej ilości danych, ale tego już się nie dowiesz, zanim nie wyślesz. Przechodzenie testów Codility jest jak testowanie jakiegoś systemu na produkcji, który działa jak czarna skrzynka.

Czy może on więc badać skille programistów?

Myślę, że tak. Jak ktoś jest dobry w troubleshootingu i nieraz rozwiązywał jakieś problemy na produkcji robiąc coś "na czuja" - to pewnie w Codility sobie poradzi - więc jeśli szukamy osoby do rozwiązywania problemów na produkcji - to Codility może się sprawdzić.

Ponadto - jeśli ktoś jest wyćwiczony w algorytmach to możliwe, że żadnych problemów nie będzie miał, a po prostu zakoduje z pamięci algorytm (ja nie jestem wyćwiczony w algorytmach, więc wymyślałem "na żywo" algorytmy).

A co jeśli ktoś jest dobry w algorytmach, ale jest powolny czy zbyt skrupulatny, więc dany algorytm by zaimplementował dłużej niż czas pozwala? Albo nie zna wszystkich algorytmów i dopiero podczas robienia zajrzy sobie w Google, StackOverflow itp. i dopiero rozkmini algorytm? I zajmie mu to aż kilka godzin. Czy to skreśla taką osobę?

Myślę, że może skreślać, jeśli szukamy typowego klepacza, który będzie klepać taski z prędkością błyskawicy (ale przecież taski, które się klepie z prędkością błyskawicy to zwykle nie są te, w których trzeba użyć jakiegoś zaawansowanego algorytmu). No i czy lepszym programistą jest taki, który zna algorytmy na pamięć, czy taki, który może rozkminić nieznany wcześniej algorytm czytając o nim w necie i próbując go samemu zaimplementować?

Więc - nie kumam w zasadzie, co ma Codility mierzyć tak naprawdę, bo wydaje mi się, że obietnica wartości odbiega zupełnie od tego, co jest faktycznie mierzone.

6

Matura z matematyki mnie wkurza, bo badają rozwiązywanie zadań na czas, a ja tak nie umiem. Owszem, jakbym miał kilka godzin, to bym wykminił, ale nie bardzo mając na to 40 minut i robiąc w pośpiechu. No i na maturze często jest to wysyłanie w ciemno, bo możesz mieć użyty trik w zadaniu, który formalnie nie ma prawa bytu, ale tego już się nie dowiesz.

Czy więc matura może badać skille ludzi?

Myślę, że tak. Jak ktoś jest dobry w klepaniu zadań i nieraz rozwiązywał jakieś zadania na maturze próbnej robiąc coś "na czuja" - to pewnie na finalnej maturze sobie poradzi - więc jeśli szukamy osoby do rozwiązywania zadań maturalnych, to wyniki z matury będą dobrze prognozować.

Ponadto - jeśli ktoś jest wyćwiczony rozwiązywaniu zadań maturalnych to możliwe, że żadnych problemów nie będzie miał, a po prostu z pamięci zastosuje schematy do rozwiązania (ja nie jestem wyćwiczony w zadaniach, więc wymyślałem "na żywo" schematy).

A co jeśli ktoś jest dobry w zadaniach maturalnych, ale jest powolny czy zbyt skrupulatny, więc dane rozwiązanie pisałby dłużej niż czas pozwala? Albo nie opanował wszystkich zadań i dopiero podczas robienia zajrzy sobie w tablice maturalne, ściągi itp. i dopiero rozkmini zadanie? I zajmie mu to aż kilka godzin. Czy to skreśla taką osobę?

Myślę, że może skreślać, jeśli szukamy typowego rozwiązywacza, który będzie klepać zadania z prędkością błyskawicy (ale przecież zadania, które się klepie z prędkością błyskawicy to zwykle nie są te, których trzeba użyć podczas rozwiązywania jakiegoś zaawansowanego problemu matematycznego). No i czy lepszym matematykiem jest taki, który zna zadania na pamięć, czy taki, który może rozkminić nieznany wcześniej schemat zadania czytając o nim w necie i próbując go samemu zaimplementować?

Więc - nie kumam w zasadzie, co tak naprawdę mierzyć matura z matematyki, bo wydaje mi się, że obietnica wartości odbiega zupełnie od tego, co jest faktycznie mierzone.


Może oni stosują te codility, bo szukają ludzi, którzy już są biegli? :P

2
WeiXiao napisał(a):

Matura z matematyki mnie wkurza, bo badają rozwiązywanie zadań na czas, a ja tak nie umiem. Owszem, jakbym miał kilka godzin, to bym wykminił, ale nie bardzo mając na to 40 minut i robiąc w pośpiechu. No i na maturze często jest to wysyłanie w ciemno, bo możesz mieć użyty trik w zadaniu, który formalnie nie ma prawa bytu, ale tego już się nie dowiesz.

To miała zdaje się być parodia mojej wypowiedzi, ale jednak kiepski przykład. Matura z matmy (i nie tylko z matmy zresztą) to przecież jak najbardziej taki sam wyścig z czasem i wygrywa ten, kto natrzepie mocno typowe zadania egzaminacyjne na ileś miesięcy przed egzaminem, żeby już potem lecieć na autopilocie. A z drugiej strony - jak komuś wolno idą zadania, to znaczy tylko tyle, że wolno mu idą zadania. Być może jest słaby z matematyki, być może powód jest inny.

Poza tym o maturę jeszcze można się spierać, ale to:

No i czy lepszym matematykiem jest taki, który zna zadania na pamięć, czy taki, który może rozkminić nieznany wcześniej schemat zadania czytając o nim w necie i próbując go samemu zaimplementować?

To chyba oczywiste, że w matematyce ważniejsza jest umiejętność myślenia niż znajomość wszystkiego na pamięć. Tak samo w innych dziedzinach ścisłych czy w programowaniu.

(Chociaż pamiętanie różnych rzeczy w programowaniu pomaga, bo nie tracisz czasu na łażenie do dokumentacji co chwila, tylko zajmujesz się kodowaniem. Więc nie można też przesadzać w drugą stronę, bo ktoś, kto niczego nie pamięta i przez 40 godzin tygodniowo będzie siedział na dokumentacji i sprawdzał nazwy podstawowych funkcji też się do niczego nie przyda pracodawcy).

1

Ja z kolei mam taką obserwację, gdy aplikowałem do pewnej firmy w Krakowie, gdzie wręcz fanatycznie testowano z algorytmiki przy okazji zupełnie ignorowano umiejętność pisania czystego kodu. Jednemu z rekruterów wręcz opowiedziałem na czym polega hexagonal architecture.

Grillowanie tylko z algorytmów owszem, wyznaczy pewną poprzeczkę intelektualną, ale przepuści ludzi z pewnym profilem umiejętności.

1

@LukeJL:

To miała zdaje się być parodia mojej wypowiedzi, ale jednak kiepski przykład. Matura z matmy (i nie tylko z matmy zresztą) to przecież jak najbardziej taki sam wyścig z czasem i wygrywa ten, kto

Bo o to chodziło, że jak zamiast "algorytmów" użyjesz matury z matmy to tekst nadal ma sens, niemniej jednak matury z matmy "nikt" na 4p się nie czepia, a algorytmów już tak, co jest trochę dziwne.

Oba te "testy" nie sprawdzają czy Ty potrafisz wymyślić w 4h algorytm lub rozwiązanie problemu, a sprawdzają twoją biegłość w tych zagadnieniach, którą w przypadku matematyki miałeś zdobyć przez N lat edukacji przed podejściem do matury.

Ja rozumiem, że Codility często może być "z d**y", ale z drugiej strony czy nie zachowujemy się tutaj jak 16 latkowie przed maturą z podejściem "po co mi matma w życiu?" xD

1

Szczerze ... to te hackerranki są o d... rozbić pod warunkiem, że zadania są bardzo customowe albo rozwiązuje się je podczas rekrutacji - np. na callu albo pair-programming z członkiem zespołu, do którego miałbyć potencjalnie dołączyć. W swoim życiu dostałem na róznych rekrutacjach dwa i dwa rozwaliłem na 100 pkt - i grubo przed czasem - jedno na 3h, w którym trzeba było napisać framework, spakować kod i zrobić upload projektu - a drugi z dwoma zadaniami alrogytmicznymi na 90 min - gdzie rozwiązanie pierwszego miałem z google już po 5 min , a nad drugim musiałem się chwilkę pogłowić więc mergowanie różnych rozwiązań ze stack overflow zajęło mi 30 min żeby przeszły testy ... xD

0

W większości przypadków poziom wiedzy ogólnej i wymagania co do algorytmiki nie wykraczają ponad solidnie opanowany drugi rok studiów inżynierskich.
W tych mniejszościowych, rzeczywiście wymagających przypadkach wyraźnie firma wyraźnie informuje o poziomie trudności - w wymaganiach "oczekiwane Ph.D."

2

Ale żeby być PhD, nie trzeba być wybitnym, tylko upartym...Przyjąć się na studia i dobrze molestować promotora...

Wytrwały zrobi doktorat w te kilka lat...

3

Nie wiem/nie pamiętam co to "zadania typu Codility", chyba takie dostawałem ale pewności nie mam.
Z tego co się orientuję to zależą one od tego co zażyczył sobie pracodawca.
Jeśli pracodawca szuka speców od algorytmów to widocznie wie co robi.
No chyba że na Codility nie ma testów ze Springa, może rekrutujący wierzy w to że szuka "ludzi myślących" i że może zatrudnić kogoś kto umie myśleć np. w Pythonie do zadań ze Springa.
Ja nie rozumiem popularności testów algorytmicznych.
Może w jakimś R&D w guglu to by się przydało, ale nawet w G z tego co wiem są stanowiska "klepaczy" którzy łączą dwa skrypty w jeden, działający (SODD - StackOverflow Driven Development).

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