Skończyłeś_aś studia lub stosowne kursy, przerobiłeś_aś samodzielnie kilka złożonych projektów, dopieściłeś_aś CV i profil na LinkedIn i w końcu aplikowałeś_aś na kilka ciekawych ofert pracy. Po jakimś czasie zaczynasz otrzymywać telefony od rekruterów. Czeka cię rozmowa rekrutacyjna i nagle zaczynają oblewać cię zimne poty a stres przed rozmową mocno daje się we znaki. Spokojnie! Pomożemy ci przygotować się na tyle dobrze, że rozmowa rekrutacyjna nie sprawi ci większych trudności.
Tym postem postaramy się pomóc ci dobrze przygotować się do rozmowy na stanowiska, będące związane z Data Science. Podpowiemy o czym warto pomyśleć zawczasu oraz wyszczególnimy pytania (zarówno techniczne jak i nietechniczne), które często pojawiają się na tego typu rozmowach. Pominiemy tu standardowe pytania, tzw. ogólne, które paść mogą na rozmowie rekrutacyjnej na dowolne stanowisko (pytania o doświadczenie, edukację, oczekiwania finansowe itd.). Skupimy się wyłącznie na pytaniach specyficznych dla rozmów na stanowiska analityczne, gdyż to stanowi największą wartość dodaną na rozmowie. Rozmowa rekrutacyjna nie będzie już żadnym problemem!
Pytania nietechniczne
- Opowiedz o jakimś projekcie z zakresu analizy danych/Data Science, który realizowałeś_aś.
Przed rozmową warto jest przestudiować projekt, z którego jesteś najbardziej dumny_a. Nieważne czy to projekt, który realizowałeś_aś w ramach poprzedniej pracy, studiów czy zupełnie na własną rękę. Przypomnij sobie jaki zbiór danych analizowałeś_aś, czy i jakie były z nim problemy oraz jak sobie z nimi poradziłeś_aś. Warto wspominać o konkretnych metodach analitycznych, których używałeś_aś (np. w jaki sposób imputowałeś_aś dane, jak poradziłeś_aś sobie z niezbilansowanym zbiorem itd.). Opowiedz również konkretnie jakich algorytmów używałeś_aś i czemu akurat takich (Uwaga! Tu mogą pojawić się dodatkowe pytania o te algorytmy, więc raczej unikaj mówienia o czymś czego nie jesteś pewien_na).
- Opowiedz o projekcie/zadaniu, które było dla Ciebie największym wyzwaniem
To może być ten sam projekt co w punkcie 1. Warto jednak przygotować odpowiedź na pytanie co stanowiło dla ciebie największe wyzwanie. Nie musiały być to problemy z samą analizą danych ale równie dobrze problemy z podziałem zadań w zespole, problem ze zdefiniowaniem celu biznesowego czy bardzo napięty harmonogram realizacji zadania. Pamiętaj żeby opowiedzieć jak sobie z danym wyzwaniem poradziłeś_aś, to bardzo ważne!
- Jaka jest Twoja znajomość języków programowania (np. Python, R), z jakich bibliotek, programów najczęściej korzystasz?
Przygotuj listę programów, języków programowania oraz bibliotek, z których korzystałeś_aś dotychczas najczęście. Bądź również gotowy_a opowiedzieć, które wykorzystywałeś_aś w jakim celu.
- (Jeśli masz już wcześniejsze doświadczenie zawodowe na podobnym stanowisku) Jak wygląda cały proces tworzenia i wdrożenia modeli? Kto i na jakim etapie jest odpowiedzialny za poszczególne czynności?
Tego typu pytanie wynikać może po pierwsze z ciekawości jak podobne procesy wyglądają w innych firmach ale po drugie sprawdza czy masz wiedzę z szerszego zakresu, a nie tylko i wyłącznie ze stricte analitycznej części. Osoby mające dobrą wiedzę na ten temat mogą dobrze rokować na stanowiska wyższego szczebla czy stanowiska kierownicze.
Pytania techniczne
Rozmowa rekrutacyjna to również, a może przede wszystkim pytania techniczne. Poniżej prezentujemy listę 25 takich pytań, z którymi z dużym prawdopodobieństwem się zetkniesz. Pamiętaj jednak, że jest to lista otwarta i w zależności od tego na jakie stanowisko i na jakim poziomie (junior, mid, senior) aplikujesz pytania mogą się różnić rodzajem i stopniem wnikliwości. Jeśli opowiadałeś_aś wcześniej o swoim poprzednim projekcie, pytania mogą dotyczyć metod analitycznych użytych w tym projekcie.
Pytania ogólne
- Czym różni się uczenie nadzorowane od nienadzorowanego?
- Do czego służą testy A/B i na czym polegają?
Pytania o przygotowanie danych
- Czym jest regularyzacja i w jakim celu się ją stosuje? Jakie znasz rodzaje regularyzacji, czym się różnią?
- Czym jest kroswalidacja?
- Jaka jest rola zbiorów treningowego i testowego i w jakiej proporcji zwykle są tworzone?
- Jak poradzić sobie z niezbilansowanym zbiorem danych?
- Jakie znasz sposoby na imputację danych?
- W jaki sposób można dokonać selekcji zmiennych do modelowania?
- Jak ograniczyć negatywny wpływ wartości odstających na modele?
- Czym jest standaryzacja i czy należy ją stosować zawsze do każdego modelu?
- Co to jest overfitting i jak można mu zapobiegać?
- Czym jest One Hot Encoding?
Pytania o modelowanie
- Jak działa drzewo decyzyjne? Wymień parametry, które możemy optymalizować w przypadku drzew decyzyjnych.
- Czym różni się bagging od boostingu?
- Jak działają metody wzmocnienia gradientowego?
- Do czego wykorzystuje się algorytm PCA i jak działa?
- Jakie znasz algorytmy służące do grupowania danych w klastry?
- Opowiedz jak działa algorytm K-najbliższych sąsiadów
- W jaki sposób ocenisz jakość modelu klasyfikacyjnego?
- Jakie znasz miary oceny modelu regresji liniowej?
- Czym jest macierz pomyłek?
- Czym jest krzywa ROC? Jakie są jej wady? Co to oznacza, jeśli wartość AUC jest mniejsza od 0.5?
- Czy Accuracy (dokładność) jest zawsze dobrą metodą oceny modelu klasyfikacyjnego?
- Czym jest krzywa precision-recall?
- Czym jest krzywa Lift?
Na koniec warto wspomnieć, iż często poza pytaniami technicznymi możesz zostać poproszony_a o wykonanie zadania programistycznego, które zwykle polega na wykonaniu projektu z zakresu Data Science w wybranym języku programowania (zwykle Python) na udostępnionych przez firmę danych. Na realizację takiego projektu firma zwykle daje kila dni/tydzień.
Niestety, prawdą jest, że rozmowa rekrutacyjna na tego typu stanowiska nie jest prosta i przeważnie wymaga dużo zaangażowania oraz poświęcenia sporo czasu. Bez gwarancji zatrudnienia. Dobrą radą jest (o ile nie jesteś mocno zdesperowany_a aby szybko zostać zatrudnionym_ą) aby uciąć proces rekrutacyjny gdy uznasz, że firma nie jest dla ciebie odpowiednia lub gdy pracodawca zrobi na tobie bardzo złe wrażenie. Szanuj swój czas! I nie zniechęcaj się, nawet jeśli pierwsze rozmowy nie przyniosą oczekiwanego rezultatu. To zawsze cenna lekcja i doświadczenie, które przyda się na kolejnych rozmowach. Powodzenia!