Dzisiaj będzie bardzo nietypowo. Nie jestem mistrzem pióra, dużo lepiej czuję się w technicznych tematach, jednak jest to dla mnie ważne i ciekaw jestem Twojego zdania. Dlatego zapraszam Cię do lektury i podzielenia się w komentarzu Twoją opinią na temat poruszany w treści artykułu.

Początek

Jakiś czas temu słuchałem jednego z odcinków podkastu „Z pasją o mocnych stronach” – Talenty w czasie rozmowy rekrutacyjnej. Po przesłuchaniu odcinka naszła mnie pewna myśl.

Jak rekruterzy patrzą na pomoc w rozmowach kwalifikacyjnych? Czy taka pomoc nie jest źle odbierana? Sam pełniłem różne role, będąc zarówno rekrutującym jak i rekrutowanym. Byłem ciekawy jak na ten problem patrzą inni. W związku z tym zadałem Ani następujące pytanie:

Ciekawy jestem Twojej opinii na temat przygotowywania rozwiązań do zadań z rozmów kwalifikacyjnych (w moim przypadku z branży IT). Zdarza mi się przygotowywać takie artykuły na blogu. Robię to w dobrej wierze, żeby pomóc kandydatom przygotować się do rozmowy. Zastanawiam się jednak czy nie jest to przekroczenie jakiejś granicy, która według drugiej strony nie powinna być przekroczona? Co o tym sądzisz?

W odpowiedzi dostałem artykuł, do którego przeczytania gorąco Cię zachęcam. Ania pokazując swój punkt widzenia postawiła w nim szereg trafnych pytań. Zanim przejdę do dyskusji opiszę Ci mój punkt widzenia.

Mój sposób uczenia się

Każdy jest inny, ja uczę się przez praktykę. To właśnie z tego powodu rozwiązuję zadania w Advent of Code. Dlatego też czasami zaglądam do wyzwań Codility. Zadania z książek programistycznych przepisuję samodzielnie mimo tego, że autor udostępnia gotowy kod do ściągnięcia – tak uczę się Go.

Teraz na tapecie mam tak zwane wargames. Zamiast pisać artykuły sam dziubię po nocach skrypty, rozwiązujące poszczególne etapy. Nie inaczej było z nauką Python’a, którego też uczyłem się na przykładach rozwiązując Python challange.

Czy patrzę na gotowe rozwiązania? Oczywiście! Niezależnie od tego czy rozwiążę problem samodzielnie czy nie. Jeśli uda mi się rozwiązać dane zadanie samodzielnie wtedy gotowe rozwiązanie pokazane przez autora pozwala na sprawdzenie innego podejścia. Jeśli zadania nie potrafię rozwiązać samodzielnie gotowe rozwiązanie pokazuje mi moje braki. Wtedy jest ono podstawą do dalszej nauki i poszukiwania dodatkowych materiałów.

Rozmowy kwalifikacyjne

Z zadaniami z rozmów kwalifikacyjnych jest dokładnie tak samo. Nie pozjadałem wszystkich rozumów. Nie potrafię rozwiązać każdego problemu. Jeśli mam do rozwiązania zadanie na rozmowie kwalifikacyjnej, z którym się męczę, którego nie potrafię rozwiązać, to po powrocie do domu szukam gotowego rozwiązania w Internecie.

Przygotowując się na rozmowy kwalifikacyjne także przeglądam zadania algorytmiczne. Próbuję rozwiązać je samodzielnie, w przypadku problemów szukam gotowego rozwiązania i patrzę jak autor podszedł do problemu. Gotowe rozwiązanie pozwala wskoczyć na kolejny poziom. Oczywiście nawet gotowe rozwiązania wymaga sporo samodzielnej pracy, jego analiza i zrozumienie algorytmu to proces kiedy poznaję nowe rzeczy.

Świat nie jest idealny

Jeszcze drobna dygresja. Chcę żyć w bańce, w której każdy jest uczciwy. Wierzę, że tak jest po prostu lepiej. Cały czas uważam, że kłamstwo ma krótkie nogi i wcześniej czy później wychodzi na jaw. Nie inaczej jest w IT. Udało Ci się oszukać na rozmowie kwalifikacyjnej. Jogibabu, brawo Jasiu! Chyba nie chcę z Tobą pracować. Tylko, co to znaczy „oszukać na rozmowie kwalifikacyjnej”?

Dyskusja

W ogólności zgadzam się z punktem widzenia Ani, jednak moim zdaniem nie wszystkie argumenty pasują do problemu gotowych rozwiązań dla programistycznych zadań rekrutacyjnych.

Jest problem

Co pomaga realnie i długofalowo? Co daje większą wartość i wspiera faktyczny rozwój? Czy na pewno pokazanie rozwiązania jednego problemu da Twoim odbiorcom więcej niż nauczenie sposobu myślenia o problemach?

Kurka wodna. W punkt. Tylko jest jeden malutki problem. W nauce programowania zdarzają się ślepe zaułki. Można przedstawić wiedzę teoretyczną, pokazać sposób jej zastosowania jednak dalej jest problem z jej praktycznym zastosowaniem. Można „słowno-muzycznie” opisać problem. Można też zrobić to konkretnie, nie pozostawiając żadnego miejsca do interpretacji. Takim konkretnym opisem jest implementacja algorytmu. Podanie podobnego zadania niewiele zmieni. Potencjalny kandydat dalej będzie miał gotowca z algorytmem, który w przypadku obu zadań będzie taki sam.

Pomagam w sposób, który sprawdza się u mnie. Dochodzenie do rozwiązań samemu jest zdecydowanie najlepszym sposobem. Podkreślam to na każdym kroku. W każdym artykule, w którym są zadania z przykładowymi rozwiązaniami. Problem polega na tym, że mając wiedzę teoretyczną często jest bardzo trudno przełożyć ją na praktykę. Owszem jest X% ogona w krzywej Gaussa. To ci wybitni, którzy rozumieją wszystko w lot. Niestety nie należę do tego ogona, podobnie jak ogromna większość (potencjalnych) programistów. W takim przypadku zostaje mi analiza i próba zrozumienia rozwiązania wypracowanego przez inne osoby. Nie ma w tym absolutnie nic złego.

Tutaj drobna dygresja, która przychodzi mi do głowy. Był sobie dr Wieczorek. Prowadził zajęcia z fizyki na Politechnice Wrocławskiej. W zbiorze zadań było zadanie: „Biedronka porusza się po kręcącej się tarczy…”. Na kolokwium pojawiło się zadanie kropka w kropkę to samo różniące się jednym szczegółem. Na kolokwium po tarczy chodził żuczek. Pewna osoba, która miała zestaw ściąg nie rozwiązała zadania – nie zgadzał się początek treści zadania. Kurtyna.

Kłamstwo ma krótkie nogi

Rolą osób weryfikujących jest sprawdzenie, czy kandydat spełnia wymagania/rokuje/ogarnia/wyjada/inne określenie branżowe. Zgadzamy się co do faktu, że jak na dłoni widać osoby korzystające z gotowców. Zatem czy to przypadkiem nie pomaga od razu odsiać osób, z którymi nie chcemy mieć do czynienia? Czy kandydat pływający po wszystkich tematach, który nagle odnajduje się w jednym zdaniu technicznym nie zapala czerwonej lampki? Owszem można odebrać to jako marnowanie czasu. Czym zatem będzie zatrudnienie tej osoby?

Brałem udział w takiej rozmowie. Kandydat nie przeszedł do kolejnego etapu.

Brałem udział także w innej rozmowie. W której kandydat otwarcie przyznał, że zna to zadanie. Zna jego sposób rozwiązania. Czy to nie właśnie takie podejście powinno być premiowane? Czy taka uczciwość od samego początku to nie jest to czego pracodawcy potrzebują?

Zadanie to nie wszystko

Zadanie z rozmowy rekrutacyjnej to nie wszystko. To często wisienka na torcie. Co więcej tych wisienek często jest kilka. Moim zdaniem bycie miłym dla każdej ze stron jest obowiązkiem. W związku z tym rekrutujący, którzy podają zadania często nie zaczynają z grubej rury. Nawet kandydat, który nie spełnia wymagań i znacząco odstaje od oczekiwań nie powinien być przeczołgany przez rozmowę tak żeby nie wiedział jak się nazywa.

Często wszystko zaczyna się od bardzo podstawowego zadania, które następnie jest rozbudowywane do finalnego problemu. Często problemów jest więcej.

Po raz kolejny obowiązkiem rekrutującego jest sprawdzenie czy kandydat spełnia wymagania. Zadanie i sposób jego rozwiązania daje sporo dodatkowej wiedzy.

Nauka na pamięć nie ma sensu. Nawet jeśli ktoś dostanie rozwiązanie na tacy to nic z tego nie wyjdzie. Zawsze powtarzam, że kłamstwo ma krótkie nogi. Nie warto kłamać. A już na pewno nie jest to opłacalne w długim terminie. Mówiąc wprost, twarz każdy ma jedną. Rynek IT jest mały. Opinia o tym jak ktoś podchodzi do pracy i swoich zadań zostaje na rynku…

Na tapczanie siedzi leń

Komu teraz pomagam? A komu CHCĘ pomagać? Kto korzysta z gotowców i jak może ich użyć? Czy nie wspieram leniuchów (by nie powiedzieć „oszustów”) i nie uczę pokonywania trudności przez obejście systemu?

Tutaj mam zdecydowanie odmienne zdanie. Jak pokazałem na początku sam często uczę się w ten sposób. Zdarza mi się utknąć na problemie do rozwiązania. Czytam dokumentację, przeglądam dokładnie opis problemu, szukam powiązanych tematów, doczytuję szukając w wielu źródłach. Zdarza się, że zostaję na noc z problemem. Nic, pustka. Nie mam pojęcia jak rozwiązać dany problem. Ślepy zaułek, o którym pisałem. Rozkładu normalnego nie przeskoczę.

Co robię? Patrzę na gotowe rozwiązanie. Owszem zdarza mi się być leniwym, jednak na pewno nie nazwałbym siebie oszustem. Tym bardziej nie twierdzę, że to jest uczenie pokonywania trudności przez obejście systemu. Raczej uczenie rozwiązywania danej klasy problemów. Przeglądanie gotowego rozwiązania nie sprowadza się do bezmyślnego kopiuj/wklej. To proces, w którym można się na prawdę sporo nauczyć. A jeśli jest to bezmyślne kopiuj/wklej to docieramy do poprzedniego punktu – łatwo to wyłapać.

Innymi słowy sam fakt spojrzenia na gotowe rozwiązanie nie klasyfikuje danej osoby jako oszusta czy oportunistę. To raczej zestaw zachowań poprzedzających czy następujących po poznaniu gotowego rozwiązania coś o danej osobie mówi.

Zakładam, że chcesz pomóc kandydatom w rozwoju, a nie w dostaniu pracy, której wymagań nie spełniają, prawda? ;)

Tutaj także się nie mogę zgodzić. Jeśli dzięki rozwiązaniom na blogu ktokolwiek dostanie pracę, której wymagań nie spełnia to mam wrażenie, że osoba sprawdzająca umiejętności techniczne jest tą, która także nie do końca wywiązała się ze swoich obowiązków.

Gotowce a rozwój

Niestety nie zgadzam się ze stwierdzeniem, że rozwiązując problem za kogoś likwiduję jego szanse rozwojowe. Owszem jeśli dana osoba podejdzie to problemu na zasadzie kopiuj/wklej to ewentualnie można się z takim stwierdzeniem zgodzić. Jednak ponownie dochodzimy do miejsca, w którym takie osoby są odrzucane, bo da się je wychwycić. Chyba, że ktoś ma talent aktorski jak panowie Janusz Gajos, Andrzej Grabowski czy Marian Opania (swoja drogą zastanawiam się czy w takim przypadku mimo braku umiejętności programistycznych nie chciałbym z taką osobą pracować ;)).

Łut szczęścia

Odchodząc trochę od tematu chciałbym poruszyć jeszcze jeden punkt. Powodzenie w rozmowie kwalifikacyjnej to często kwestia tak zwanego szczęścia.

Jak wygląda twój biorytm w dniu rozmowy kwalifikacyjnej? Albo horoskop? Albo cokolwiek innego w co wierzysz? Mam wrażenie, że rozmowa rekrutacyjna to czasami także kwestia szczęścia. Ten sam kandydat może być oceniony różnie w zależności od wielu czynników. Pory dnia, miejsca przeprowadzenia rozmowy, nastroju rekrutującego, kolejności rozwiązywanych zadań, tego czy ktoś na rekrutującego chwilę wcześniej w kuchni nie wylał kawy itp.

Dodatkowo wszyscy jesteśmy ludźmi – nie bez znaczenia są także osobiste uprzedzenia. Na przykład jestem świadomy jednego z moich uprzedzeń – nie przepadam za ludźmi, którzy są strasznie pyszni i pewni siebie. Dużo lepiej odbieram osoby skromne, które są świadome możliwości popełnienia błędu. Czy pewni siebie są w jakikolwiek sposób gorsi? Nie! Po prostu mi ciężej się z takimi osobami pracuje.

Podsumowanie

Podsumowując, mam wrażenie, że mamy z Anią podobny punkt widzenia, jednak nasze opinie różnią się w kilku punktach. Moje zdanie jest takie, że gotowe zadania nie są z gruntu złe. Złe jest nierozważne korzystanie z gotowych rozwiązań. Owszem znajdą się osoby, które użyją gotowych rozwiązań w zły sposób, jednak zgadzamy się, że takie osoby można łatwo wyeliminować. Nie uważam, że przez ten odsetek pozostała grupa powinna być pokrzywdzona.

Zatem, programisto – korzystaj rozważnie z gotowych rozwiązań.

Co o tym sądzisz?

A jakie jest Twoje zdanie? Czy powinienem dalej bujać w obłokach i zakładać dobrą wiarę wszystkich Czytelników? Czy może od dzisiaj kolejne rozwiązania zadań nie powinny pojawić się na blogu? Czy Twoim zdaniem rozwiązania zadań w ogóle pomagają? Ciekaw jestem Twojej opinii, proszę daj znać co o tym wszystkim sądzisz w komentarzach. Na pewno pominąłem sporo ważnych tematów, które przyjdą Ci do głowy. Z góry dziękuję za Twoją opinię!

To tyle, trzymaj się!

Pobierz opracowania zadań z rozmów kwalifikacyjnych

Przygotowałem rozwiązania kilku zadań algorytmicznych z rozmów kwalifikacyjnych. Rozkładam je na czynniki pierwsze i pokazuję różne sposoby ich rozwiązania. Dołącz do grupy ponad 6147 Samouków, którzy jako pierwsi dowiadują się o nowych treściach na blogu, a prześlę je na Twój e-mail.

Ostatnia aktualizacja:

Autor: Marcin Pietraszek


Nie popełnia błędów tylko ten, kto nic nie robi ;). Bardzo możliwe, że znajdziesz błąd, literówkę, coś co wymaga poprawy. Jeśli chcesz możesz samodzielnie poprawić tę stronę. Jeśli nie chcesz poprawiać błędu, który udało Ci się znaleźć będę wdzięczny jeśli go zgłosisz. Z góry dziękuję!

Zostaw komentarz