Jeśli odpowiadasz za rozwój działu Big Data w Twojej firmie, podstawą jest oczywiście solidny zespół. Dziś chciałbym dać kilka subiektywnych rzeczy, na które można zwrócić uwagę podczas rekrutacji. Liczę, że pomogą dobrać odpowiednie osoby i w konsekwencji zbudować znakomicie działający mechanizm;-).
Na samym początku dajmy dwa założenia:
- Rekrutujemy “świeżaka”, który dopiero będzie doszkalany, lub będzie szlifował podstawową wiedzę.
- Raczej skupię się na procesie samej rozmowy i tego co zrobić wokół niej. Kwestie techniczne dotyczące wynajdywania takich osób zostawiam HRom;-).
Zacznij rozmowę i… bądź człowiekiem, z którym chce się pracować!
Zanim przejdziemy do 6 rzeczy, które uważam za istotne – najpierw drobna uwaga. Choć zwykło się sądzić, że rozmowa rekrutacyjna jest pewnego rodzaju “odpytką”, zwracam na piękne podejście języka polskiego do tej sprawy. Otóż – mamy tu do czynienia z rozmową. To sugeruje, że mamy dwie strony, które w pewnym zakresie powinny się traktować po partnersku (trochę to inaczej wygląda niż “interview” prawda?;-)). Dokładnie tak powinniśmy podchodzić do rozmowy – chociaż my reprezentujemy firmę, mamy lepszą pozycję i więcej pewności siebie – nie daj się skusić aby wykorzystać to do podbudowania swojego ego.
Pamiętaj, że także aplikant jest stroną. Oznacza to, że także i firma musi się spodobać jemu! Jest to szczególnie silne w dzisiejszej sytuacji, gdzie w Polsce IT jest książkowym przykładem rynku pracownika. A więc co zrobić? Przede wszystkim stań na rzęsach, żeby człowiek z którym rozmawiasz, poczuł się swobodnie.
Druga rzecz która jest z tym związana, to prawdziwe przetestowanie umiejętności aplikanta. Nie, nie zrobimy tego tworząc stresowe sytuacje. No, chyba że rekrutujesz do sił specjalnych. W większości sytuacji jednak, budując zespół Big Data warto zadbać o takie luźne podejście. To właśnie wtedy możemy przetestować najbardziej umiejętności. Uśmiechnij się, zażartuj, zadaj proste pytanie “na rozruch”. Niech kandydat poczuje się pewnie – wtedy wyjdzie z niego maksimum jego wiedzy.
Daruj sobie wszelkiego rodzaju kodowanie “live”, na oczach ekipy rekrutującej. Już słyszę głosy oburzenia – “ale ale, muszę przetestować jak działa w sytuacjach stresowych!”. Nie prawda, nie musisz. Poza tym, nawet jeśli w naszej robocie jest stres, to nie wynika on z tego, że szef patrzy przez ramię (a jeśli tak, to czas zreformować się od środka). Stres stresowi nie jest równy. Jeśli chcesz przetestować możliwości koderskie, powiedz że wyjdziesz zrobić sobie (rozmówcy?) kawę i wrócisz za 15 minut.
Pomijam oczywiście różne dziwne pytania typu o to jakim zwierzęciem byłbyś. Cóż… rozmawiając, po prostu dążmy do tego, żeby sprawdzić czy to dobry fachowiec oraz czy będzie pasował do zespołu. Tylko tyle i aż tyle. Nie róbmy sztuki dla sztuki.
A już teraz przechodzimy do 6 rzeczy, na które ja zwracam uwagę, rozmawiając z nowymi koleżankami i kolegami!
Wiedza teoretyczna
Zacznijmy od najbardziej banalnej rzeczy. Oczywiście podstawą wszystkiego jest posiadanie wiedzy teoretycznej. O ile na późniejszych etapach sprawdzać ją można nieco inaczej, to w przypadku “świeżaka” po prostu trzeba zadawać pytania i słuchać odpowiedzi. Najlepiej, żeby pytania były dość standardowe. Być może to kogoś oburzy, ale naprawdę wielu rzeczy można się nauczyć – nie trzeba od kompletnego nowicjusza oczekiwać zagwozdek Scalowych czy Javowych, bo realnie to tylko jedno z bardzo wielu narzędzi (choć jest fundamentalne!).
Warto jednak, żeby znał podstawy, szczególnie te “sztampowe”. To właśnie pytania, które można znaleźć wpisując w DuckDuck Go (;-)) “java interview questions”. Co to może być? Kilka podpowiedzi – niezależnie od tego czy rekrutujemy osobę dopiero do przeszkolenia, czy Inżyniera Big Data w stopniu juniora.
- [Java] Interfejs a klasa abstrakcyjna, enkapsulacja, kolekcje, co robi dany kod, streamy.
- [Scala] Trait a klasa abstrakcyjna, konstruktory, paradygmat funkcyjny w scali (ogólnie), opisać map/filter/foldLeft, companion objecty, package objecty, czym jest podłoga/underscore (jak powie że wszystkim i niczym, albo że czymkolwiek to śmiało zaliczaj;-)).
- [Bazy Danych] czym są relacyjne bazy danych, co to jest klucz obcy, czym jest SQL, rozwiązać przykładowe zadanie z SQL, działanie indeksów.
Powyższe pytania są do każdego. Dalej kwestia się rozdziela w zależności od tego czy jest kimś, kto ma bardzo luźny związek z Big Data, czy to jednak już jakiś początkujący.
Osoba do przeszkolenia: tutaj po prostu należy sprawdzić na ile przygotowała się do rozmowy oraz jaki research zrobiła w kontekście Big Data. Można podpytać czemu w ogóle wyróżniamy taką dziedzinę jak Big Data skoro mamy tradycyjne rozwiązania, czy kojarzy jakieś technologie, a jeśli tak – niech coś opisze. Każda odpowiedź dodatkowa to plusik.
Jeśli natomiast osoba miała już kontakt z technologiami, sprawa jest prosta – bierzemy CV i lecimy po kolei, a rozmówca opisuje jak taki framework działa i co robi.
Projekt na repozytorium
Pisałem już o tym w artykule “Przeszedłem szkolenie Big Data – co dalej, by zostać prawdziwym ekspertem?”. Razem z CV (oraz wstępnym testem, jeśli takowy został przeprowadzony) osoba która aplikuje może dostarczyć także adres swojego repozytorium. Zajrzyj tam. Jeśli są jakieś projekty, bo powinien to być ogromny plus. Oczywiście jeśli projekty te mają ład i skład oraz nie są napisane w skandaliczny sposób.
Pamiętaj, że budowanie swojego projektu Big Datowego “po godzinach” wymaga naprawdę dużo dyscypliny, solidności i determinacji. Pokazuje także inicjatywność oraz odwagę programisty. Skoro już się odważył – wejdź w projekt i sprawdź jak jest napisany. Schludnie? Zgodnie ze wzorcami? Ma testy?
Oczywiście nie zapomnij porozmawiać o projekcie podczas rozmowy rekrutacyjnej. Niech opisze dlaczego akurat to zrobił, dlaczego wybrał te technologie, niech powie co zrobił źle. Z czego jest dumny, a co mógłby poprawić? To naprawdę nie wstyd zrobić coś źle, czy nawet fatalnie w projekcie “po godzinach”. Jeśli tylko potrafi się na tym nauczyć, to jest to gigantyczny plus. Co ważne w kontekście Big Data – spytaj, czy uruchamiał to u siebie na komputerze, czy miał do dyspozycji jakąś bardziej zaawansowaną infrastrukturę (klaster).
Prace podejmowane przedtem – także poza branżowe
Jeśli zatrudniamy studentów, warto zerknąć do CV. Być może będzie to ich pierwsza praca. Jeśli tak – nic w tym złego. Jeśli jednak mają się czym pochwalić wcześniej, wiele to mówi o nich samych. I niekoniecznie chodzi tu o doświadczenie branżowe. Cóż… jeśli zatrudniasz studenta, który ma już doświadczenie branżowe, to jest to naprawdę wymarzona sytuacja.
Może się jednak okazać, że Twój potencjalny przyszły współpracownik pracował na kasie, jako hostessa, w call center lub na zbiorach truskawek. W takiej sytuacji trudy życia zaznał w młodym wieku, gdy większość osób “baluje”. Pokazuje to, że jest pracowity, nie boi się “ubrudzić”, ćwiczył dyscyplinę i zna smak pracy.
Umiejętność łączenia wątków i “dobrego kombinowania”
Zdarza się, że osoba ma braki w wiedzy teoretycznej. Naszą rolą jest wtedy stopniowe naprowadzanie na właściwą odpowiedź. Możemy posłużyć się analogiami lub podsunąć logiczną ścieżkę, po której może dotrzeć do odpowiedzi. I tutaj ujawnia się umiejętność łączenia wątków i dobrego kombinowania. Umiejętność znacznie ważniejsza, niż wyuczona formułka z wiedzy teoretycznej.
Pomyślmy logicznie – Big Data to ogromna dziedzina. Można siedzieć latami w konkretnych technologiach i ciągle mieć wrażenie, że nie wiemy zbyt dużo. Nowa osoba i tak jest skazana na ciągłą naukę. Pytanie jednak, czy będzie to robić świadomie, poznając mechanizmy, rozumiejąc je i łącząc ze sobą wątki? Bez tego nie damy rady zbudować dużych, spójnych systemów, a już na pewno nie będą one wydajne.
Właśnie dlatego szalenie ważne jest przetestowanie tej umiejętności. Najlepiej zrobić to właśnie wtedy, gdy pojawiają się braki w wiedzy.
Nastawienie oraz potencjał dopasowania do zespołu
Co jak co, ale sama wiedza techniczna nie wystarczy. Współczesne systemy buduje się przez pracę zespołową i to właśnie ona powinna być głównym kryterium wyboru. No dobrze – przynajmniej jednym z paru głównych;-). Rozmowa rekrutacyjna i cały ten proces to okazja, żeby sprawdzić, czy osoba która do nas aplikuje nada się w boju. A na to składają się z grubsza trzy rzeczy:
- Umiejętności techniczne – załatwione przez poprzednie punkty (i następny)
- Dopasowanie do zespołu
- Nastawienie do pracy
W kontekście drugiego punktu, wszystko zależy od tego jaki macie zespół. Nie zachęcam oczywiście do dyskryminacji, natomiast osoba “z innej bajki” może wiele napsuć. Wiem, bo sam kiedyś byłem z innej bajki;-). Źle się czułem w danym miejscu, źle pracowałem i chyba także źle wpływałem na resztę zespołu. Wiem też jak bardzo duże profity potrafi przynieść dobrze dobrana załoga. Tu jednak już rola osób które rekrutują, aby znały tą specyfikę i umiały ją zgrabnie modelować poprzez dodanie nowych członków.
Jeśli chodzi o trzeci punkt – można wprost spytać jak osoba z którą rozmawiamy podchodzi do pracy i zdobywania nowych umiejętności. Jest systematyczna, czy woli pracować “zrywami”? Ma metodyczne podejście, czy chaotyczne? Lubi dopracować swoje dzieło, czy chce zrobić jak najwięcej w jak najkrótszym czasie?
Umiejętność myślenia “po bigdatowemu”… lub chociaż potencjał;-)
Big Data to wciąż młoda, trochę jeszcze dzika branża. Trzeba tu myśleć w nieco inny sposób, niż w wielu miejscach. Mowa przede wszystkim o “odgórnym” spojrzeniu na architekturę. Aby sprawdzić potencjał takiego myślenia, warto dać rozmówcy zadanie. Zadanie bardziej intelektualne niż techniczne. Przykładowo może to być coś w tym stylu:
“Dostałeś za zadanie stworzenie systemu, który zbiera dane z wielu miejsc dotyczących kulinariów – np. z wikipedii oraz kilku blogów. Masz na tej podstawie zbudować dużą bazę przepisów oraz wiedzy o nich. Produktem (celem biznesowym) ma być stworzenie aplikacji, która będzie inteligentną wyszukiwarką takich rzeczy. Ma ona pokazywać takie rzeczy jak składniki, dane naukowe, język w jakim został napisany przepis itd.”.
No i przyglądamy się jak nasz rozmówca myśli – bo to jest podstawowy cel. Rozwiązań tego zadania jest pewnie nieskończenie wiele. Podobnie jak błędów które można popełnić. Najprawdopodobniej problem pojawi się w kwestii czasowej oraz tego w jakim momencie zbierać dane. Ludzie znający jedynie “tradycyjne” IT często chcą na polecenie użytkownika wysyłać requesty. To zrodzi problemy, ponieważ na odpowiedź trzeba będzie czekać bardzo długo. I tak dalej i tak dalej…
Grunt, żebyśmy brali żywy udział w takim ćwiczeniu. Naprowadzajmy, zadawajmy pytania i najważniejsze – nie dajmy się przyspawać do jednej wizji.
Co po przyjęciu?
Jeśli zdecydowałeś/aś o przyjęciu kandydata – to gratuluję! Pamiętaj, że to dopiero początek. Taka osoba wymaga teraz opieki, szkolenia oraz stopniowego nabywania praktyki. Jeśli zastanawiasz się jak zrobić to najlepiej – nie czekaj. Kliknij tutaj, a potem napisz do mnie. Razem z ekspertami RDF pomożemy Ci w budowie Twojego działu Big Data. Chociażby szkoleniem;-).
Tymczasem zapraszam do naszego newslettera. Zostańmy w kontakcie i… razem budujmy naszą wspólną, polską społeczność Big Data!