Jak się rekrutować i nie zwariować
- Processes, standards and quality
- Technologies
- Others
Pewnie każdy chociaż raz zadał sobie jedno z powyższych pytań i rozważał wszelkie możliwe opcje. Często dochodzimy do wniosku, że TEN czas to najlepszy czas na szukanie pierwszej lub nowej pracy. W końcu za coś trzeba żyć, a w naszym otoczeniu spotykamy osoby, które często robią ten krok. Wniosek? To nie może być aż tak trudne… ale czy na pewno?
Studia, studia i po studiach… A co potem?
Kolejny rok nudnego projektu, ile jeszcze dam radę?
Tutaj już nic więcej nie osiągnę, może czas na jakąś zmianę?
Jestem architektem oprogramowania oraz jednym z rekruterów technicznych w Future Processing. Zajmuję się weryfikacją wiedzy i umiejętności technicznych naszych kandydatów już od ponad 5 lat i mam za sobą ponad 120 przeprowadzonych rozmów kwalifikacyjnych. Chciałbym podzielić się kilkoma spostrzeżeniami i wnioskami, jakie wyciągnąłem z tych kilku lat jako rekruter.
Przygotowanie, ważna sprawa…
First things first, czyli przygotowanie.
Zdarzają się kandydaci, którzy przychodzą na rozmowy kwalifikacyjne sądząc, że mają wystarczającą wiedzę i nie przygotowują się do niej w żaden sposób. Zauważyłem, że częściej dotyczy to studentów i młodszych programistów. Niestety szybka weryfikacja potrafi niejednego brutalnie sprowadzić na ziemię. Można wysnuć prosty wniosek: z upływem lat w zawodzie rośnie nasze doświadczenie i lepiej radzimy sobie na takich rozmowach – ale i to nie jest regułą.
Jak sobie z tym poradzić? Nic prostszego! Jeśli jesteś studentem i wiesz, że swoją przyszłość chcesz związać z wytwarzaniem oprogramowania jako programista, tester, specjalista od baz danych itp., zacznij do takiej rekrutacji przygotowywać się już teraz: wybierz technologię, która na ten moment Cię interesuje i zacznij zgłębiać jej tajniki. Na rynku jest sporo dobrej literatury, która pozwoli Ci zacząć przygodę z programowaniem w Java/C#/Python/JavaScript i wszelkich innych językach, które kiedyś wymyślono. Dostępne są też różnego rodzaju kursy online, zarówno płatne, jak i darmowe.
Jak już zrobisz pierwszy krok, to czas na następny – zacznij programować. Napisz swój pierwszy program, który robi cokolwiek a potem go rozwijaj. Gwarantuję, że po kilku tygodniach czy miesiącach intensywnej nauki dobrze opanujesz nie tylko podstawy.
Bardzo częstym błędem jest przygotowywanie się na dzień lub dwa przed rozmową. To szczególnie niebezpieczne, gdy nasza baza wiedzy jest uboga i potrzebujemy nie tylko odświeżyć sobie pewne wiadomości, ale wręcz nabyć je od podstaw.
Wielokrotnie miałem do czynienia z kandydatami, którzy po usłyszeniu pierwszego pytania próbowali mi na nie odpowiedzieć, ale ich słaba znajomość tematu w połączeniu z brakiem doświadczenia i niejednokrotnie stresem towarzyszącym takiej rozmowie (w końcu to kolejny egzamin w naszym życiu, a te zazwyczaj stresują) sprawiały, że kompletnie gubili się w tym, co chcieli powiedzieć.
Podobnie jest kiedy jesteśmy już programistami z wieloletnim doświadczeniem, ale utknęliśmy na długi czas w jednym projekcie ze ściśle określonym stosem technologicznym. Taka stagnacja sprawia, że powoli – mniej lub bardziej świadomie – przestajemy się rozwijać, a świat IT nie. Jeśli nie nadrabiamy wiedzy we własnym zakresie, na rozmowie rekrutacyjnej czeka nas brutalne zderzenie z rzeczywistością. Zdarzyło się już kilka razy, że po rekrutacji oceniałem ludzi z ponad 10-letnim doświadczeniem na poziom młodszego programisty, bo np. jego wiedza z platformy .Net zatrzymała się na wersji .NET 3.5 i nie wiedział prawie nic o tym, co się działo przez kolejne lata. Dodatkowo współczesne technologie mobilne czy webowe były dla niego tajemnicą, a praktyki wynikające z Agile były mu obce.
Reasumując: wiedza teoretyczna to nasze narzędzie codziennej pracy. Należy ją rozwijać i dbać o to, aby nie zestarzała się za szybko. Bazując na niej, budujemy nasze doświadczenie, poprzez tworzenie oprogramowania. Rozwijajmy się systematycznie, a nie będzie problemu w czasie rekrutacji. Zmniejszy się również stres związany z rozmową, a to już bardzo duży komfort.
Rekrutacja to proces
Rekrutacja często kojarzy nam się z rozmową kwalifikacyjną. Są firmy, które ograniczają się tylko do takiej formy weryfikacji potencjalnych pracowników. Należy być jednak świadomym, że rekrutacja to nie jeden punkt w czasie (rozmowa rekrutacyjna) ale proces, który może zająć kilka lub nawet kilkanaście dni. Taki proces może zostać zainicjowany albo przez rekrutera szukającego odpowiednich pracowników do swojej firmy albo przez nas samych. I to na tej możliwości się teraz skupię.
Kiedy kilka lat temu postanowiłem zmienić pracę, rozesłałem swoje CV do kilku firm w regionie i czekałem. Jakież było moje zdziwienie, że nikt się do mnie szybko nie odezwał! Pierwsza myśl, jaka mi przyszła do głowy, to totalne zwątpienie w siebie. Naszły mnie wątpliwości czy na pewno nadaje się do tego zawodu. Teraz kiedy wiem, jak wygląda rekrutacja z drugiej strony i widzę, jak taki dział obłożony jest pracą, zrozumiałem, że potrzeba czasu, aż nasze CV trafi w ich ręce. Dajcie działowi HR ten dzień czy dwa i spokojnie poczekajcie.
Kolejne zaskoczenie, które mnie spotkało, to był fakt, że tylko nieznaczna część firm odpowiedziała na moje zgłoszenie. Wątpliwości powróciły. Kiedy zrobiłem szybki rekonesans w Internecie okazało się, że to po części moja wina. Złożyłem CV do jednej z firm, która nie szukała młodszych programistów tylko osób z większym doświadczeniem. Ja takiego nie miałem. Inna poszukiwała aktywnie tylko programistów doświadczonych w Javie, ja natomiast miałem doświadczenie w technologiach związanych z platformą .Net. Takie sytuacje często się zdarzają, więc warto poświęcić trochę czasu na rozeznanie sytuacji czy aby na pewno firma, do której chcę aplikować, poszukuje pracowników o profilu zbliżonym do mojego.
Co do samego procesu rekrutacji, chciałbym wspomnieć, że każda firma organizuje go na swój sposób. Jeśli jesteś osobą, która ma za sobą nie jedną rekrutację w swoim życiu, to wiesz, o czym piszę: rozmowa przeprowadzana jest w biurze pracodawcy albo zdalnie (przez telefon czy jakiś komunikator internetowy), potem zadanie praktyczne do zrobienia w domu, live coding na spotkaniu i różnego rodzaju testy (nie tylko z zagadnień związanych z IT, ale często też matematyczne, psychologiczne itp.) czy weryfikacja umiejętności językowych. Wachlarz możliwości jest duży. By nie dać się zaskoczyć, warto wcześniej dowiedzieć się, jak ten proces przebiega w danej firmie – często firmy informują o tym na swoich stronach, a jeśli nie znajdziesz tam żadnego opisu, zapytaj o niego rekrutera podczas pierwszej rozmowy.
Co więcej, w większości firmach rekrutacje jest wieloetapowa. Jeśli więc nie chcemy brać w czymś udziału, bo np. zajmuje za dużo czasu, którego nie chcemy poświęcić, to świadomość tego, jak wygląda proces, pozwoli nam podjąć taką decyzję na samym początku i zaoszczędzi czas obu stronom.
Podsumowując: przygotowanie do rekrutacji to nie tylko wiedza techniczna, ale również świadomość tego, gdzie aplikujemy i jakim wyzwaniom zostaniemy poddani.
Co powiedzieć na rozmowie, a czego lepiej nie?
W końcu nadszedł ten moment, kiedy spotykamy się twarzą w twarz z tym drugim człowiekiem. Czasami jest to jedna osoba, czasami może być tych osób więcej (lider projektu, który jest zainteresowany pozyskaniem nowego członka zespołu, osoba techniczna do weryfikacji naszych umiejętności itp.). Rozmowa, wbrew pozorom, może sprawić problem, gdyż pytania są różne. Warto się przygotować na pytanie o zarobki – bo takie na pewno padnie. Nie ma narzuconych z góry wytycznych kto ile powinien zarabiać – to zawsze kwestia indywidualna, ale dobrze mieć przygotowane jakieś widełki na wypadek negocjacji : )
Inne trudne pytanie to „jakie są Twoje mocne i słabe strony?”. O ile większość kandydatów nie ma problemu z opisaniem swoich atutów, to kiedy temat schodzi na słabe strony, wiele osób mówi, że takich nie ma albo wręcz próbuje się bronić, atakując swoich rozmówców. Nawet nie potrafię policzyć, ile razy słyszałem, że w poprzedniej firmie czy projekcie to wszyscy byli winni niepowodzenia w projekcie, tylko nie mój rozmówca. To lider źle zarządzał, główny programista nie słuchał dobrych rad, tester nie potrafił znaleźć bugów… Wszyscy winni tylko nie on. Wierzcie mi, ale nie o taką odpowiedź chodzi w tym pytaniu. Wszyscy jesteśmy ludźmi i mamy prawo do popełniania błędów. Grunt, żeby być tego świadomym i wyciągać z nich wnioski.
Jeśli nie jesteś świadom swoich mocnych stron, to powiem tylko, że obecnie programista nie jest tylko maszynką do tworzenia kodu. Obecnie naszym głównym wyzwaniem jest dostarczyć biznesowi to, czego tak naprawdę potrzebuje. Do tego niezbędny jest szereg różnego rodzaju umiejętności: analiza, tworzenie oprogramowania, testowania, komunikacja, praca zespołowa, praca pod presją czasu i wiele innych. Jeśli chcecie wiedzieć, co jest ważne dla współczesnego inżyniera oprogramowania, zajrzyjcie do książki
„97 rzeczy, które każdy programista powinien wiedzieć”.
Jest jeszcze jedna bardzo istotna kwestia – każdemu z nas czasami zdarza się wyolbrzymić coś lub skłamać. Odradzam poddania się takiej pokusie. Jeśli osoba przeprowadzająca z wami rekrutację przyłapie Was na kłamstwie chociaż raz, to już koniec. W tym momencie można uznać, że wszystko co powiedzieliście do tej pory było kłamstwem. No bo dlaczego miałoby być inaczej? Lepiej przyznać się do błędu czy niewiedzy niż wyolbrzymiać swoje osiągnięcia.
Próbki kodu
Zawód programisty czy testera to nieustanna praca z kodem. Często rodzi się pokusa albo wręcz konieczność, aby pochwalić się próbkami swojego kodu przed rekruterem. Niby nic prostszego, a jednak łatwo tutaj o wielką wtopę.
Zanim pokażecie komuś swój kod, zróbcie sobie sami Code Review i sprawdźcie, czy aby kod, który zabieracie ze sobą na spotkanie, jest czysty. Jeśli nie wiecie o czym mówię, to warto zajrzeć do książki Uncle Boba „Czysty kod”.
Bardzo często miałem do czynienia z kodem, który zawierał dużo antywzorców (np. god-class), wykomentowaną sporą część funkcjonalności czy też nieprzemyślaną architekturę. Zdarzyło się nawet, że ktoś przyniósł wydruk swojego kodu na kartkach A4 zadrukowanych dwustronnie z tekstem umieszczonym w dwóch kolumnach. Sama radość podczas czytania : )
Inna kwestia to czy demonstrowany kod naprawdę należy do kandydata. O ile pokazywany przez niego kod, który był robiony w grupie studentów jako program na zaliczenie przedmiotu, nie sprawia większego problemu w ocenie (pomijając fakt, że zweryfikowanie napisanych przez niego linijek kodu może być problematyczne), to kod, który powstał jako projekt biznesowy wykonywany przez obecnego pracodawcę na rzecz jego klienta, nigdy nie powinien być demonstrowany. Pomijam aspekt etyczny oraz fakt, że prawie zawsze nad takim kodem pracowała grupa osób – należy uzmysłowić sobie, że takie zachowanie może ponieść za sobą nawet przykre konsekwencje prawne. W końcu każdy z nas ma w umowie klauzule poufności czy inne podobne zabezpieczenia.
Feedback
Bardzo istotną rolę w procesie rekrutacji odgrywa informacja zwrotna. Dla każdego najistotniejsze jest zwykle to, czy rekrutacja zakończyła się pozytywnie czy negatywnie, jednak nie mniej istotna jest też informacja o tym, co poszło dobrze, a co źle. Dlaczego? Tutaj zatoczyliśmy koło i wracamy do punktu pierwszego, czyli przygotowania. Jeśli kandydat został oceniony negatywnie, ale nie wie dlaczego, pozostaje sam ze sobą bez przydatnych wskazówek na przyszłość. Jednakże, kiedy takiej ocenie towarzyszy garść informacji o słabych stronach i potknięciach, wtedy jest to doskonała okazja, aby je poprawić i lepiej przygotować się do następnej rekrutacji. Feedback udzielony przez osoby rekrutujące jest doskonałym narzędziem pozwalającym popracować nad sobą.
Jeśli nie nikt Wam takich informacji nie udzielił po zakończonym procesie rekrutacji, nie miejcie obaw i sami zapytajcie, co poszło nie tak. W końcu też poświęciliście sporo czasu, biorąc udział w procesie rekrutacji i powinniście coś z tego mieć dla siebie – poza nową, upragnioną pracą : )
Rynek pracy
Ostatnią rzeczą, która ma wpływ na to, czy jesteśmy atrakcyjnym kandydatem dla potencjalnego pracodawcy jest to, jak wygląda obecnie rynek pracy. Tutaj mam złą wiadomość – nie macie na to prawie żadnego wpływu. Można obserwować, co dzieje się w branży IT w Polsce i na świecie i na tej podstawie oceniać, czy szanse na znalezienie pracy są większe czy mniejsze. Czasami warto pomyśleć o pracy zdalnej a czasami o relokacji, jeśli taka opcja wchodzi w grę.
Już teraz wiecie, co może pomóc lepiej przygotować się do rekrutacji kiedy już będziecie chcieli zmienić coś w swoim życiu. Mam nadzieję, że przekazana przeze mnie wiedza sprawi, że podejdziecie do tej zmiany z mniejszym stresem, gdyż już wiecie, jak być na nią gotowym.