Kategorie
Junior Developer

✔️ Perfekcyjna rozmowa techniczna Junior Programista

Rozmowa techniczna na stanowisko Junior Programista to ważny element. Z jednej strony pozwala lepiej poznać kandydata, z drugiej również i on może się sporo dowiedzieć.

Zmierzmy się z tym tematem. Lecimy!

❗❗❗ Hey, na końcu artykułu jest info o kolejnym wpisie. Możesz mieć na niego realny wpływ i dowiedzieć się czegoś nowego! Także czekam na Twój komentarz 😊

junior-hava-developer-handbook-what-to-know

W procesie rekrutacji …

Każdy proces rekrutacyjny jest inny. Dlatego pamiętaj o tym, że i mój punkt widzenia może różnić się od Twojego.

Jednak rekrutacja na Junior Programistę prawie zawsze będzie zawierać rozmowę techniczną. Raz będzie to oddzielny element w procesie, czasem zdarzy się od razu razem z rozmową HR. Bywa różnie.

Tutaj staram się nakreślić, jak taka rozmowa może wyglądać w rzeczywistości. A że mam ostatnio znowu okazję występować w roli rekrutera technicznego to jest to wiedza absolutnie na czasie.

Polecam też przejrzeć wcześniejsze wpisy:

Proste na początek

Najbardziej trywialne pytanie na początku rozmowy?

Silnia rekurencyjnie! Nie, no sorry, ale nie 😊

Na przełamanie lodów warto pogadać o firmie. Mnie np. ciekawi, co przyciąga kandydata do danej firmy i jak rozumie to, co jest w niej robione.

Takie podejście pozwala na spokojne wejście w kontekst rozmowy. Jest jednak jedno ale … To pytanie jest trywialne, ale również i w tym przypadku zdarzają się po prostu skuchy. Z różnych stron dochodzą cały czas informacje o liczbach chętnych na jedno stanowisko juniorskie. Rekruterzy techniczni też znają te liczby i dokładnie rozumieją, że osoby są w jednym czasie często w kilku procesach rekrutacyjnych. Z mojej perspektywy nie ma w tym nic złego i uważam to za rzecz normalną. Jednak … gdy na tym etapie kandydat zaczyna ze zdenerwowaniem scrollować ekran w poszukiwaniu informacji o firmie, gdzie właśnie ma rozmowę online … to niestety nie świadczy to za dobrze i nie jest to dobry prognostyk dla całej rekrutacji.

Przyznam szczerze, że ostatnio na szczęście nie miałem takiej sytuacji przy rekrutacji w IT. Parę lat temu miałem jednak taką sytuację w innym procesie rekrutacyjnym w innej branży. Jeśli czytałeś o mnie na stronie Poznaj mnie to od razu będziesz wiedzieć o którą branże chodzi (i zdecydowanie nie zatrudniliśmy tej osoby).

Dlaczego zastosowałeś tutaj …

Zacznijmy od początku. Pisałem już w Rekrutacja junior programista. 5️⃣ rad o tym, jak ważne jest przejście początkowego etapu rekrutacji, czyli testu lub zadania, które realizuje się zwykle w domu. Pisałem również, że trzeba nastawić się na pytania dotyczące tego elementu.

Dlatego na ten moment przygotuj się dobrze z pytań w rodzaju:

  • Gdyby w tym miejscu był null, to jak zachowałby się Twój program?
  • Czy w tym momencie, czyli parę dni po rozwiązaniu tego zadania, zrobiłbyś je inaczej? Jeśli tak, to dlaczego?
  • Ile czasu zajęło Ci zrobienie tego zadania? Czy było trudne?
  • W jaki sposób uogólnić takie struktury przy pomocy generics?
  • A co by było gdyby tutaj nie był 10 obiektów, a 10k obiektów. Czy Twoje rozwiązanie by się jakoś zmieniło?
  • Kod wygląda na mający szansę działać. Ale jak to testowałeś?

Pytań w tym miejscu może być oczywiście więcej. Po prostu się przygotuj. Przygotowanie świadczy o zaangażowaniu, przynajmniej w moim odczuciu.

Nastaw się na zadanie ad-hoc

Ten element nie występuje zawsze. Ale akurat u mnie jest to ostatnio obowiązkowy fragment rozmowy. O co chodzi z zadaniem ad-hoc?

Zadanie domowe, czy test, robisz w spokojnym otoczeniu, masz do dyspozycji środowiski IDE, kompilator, Google i Stackoverflow. Te wszystkie elementy to duża pomoc, która pozwala doprowadzić rozwiązanie do całkiem dobrej formy.

Jednak dla rekrutera technicznego ważne jest też to, jak dekomponujesz różne problemy. Zadanie ad-hoc rozwiązywane przy pomocy narzędzi Google (np. Docs, Jamboard) pozwala sprawdzić sposób rozwiązywania problemu.

To zadanie jest dużo prostsze (u mnie) niż zadanie na początku rekrutacji. Wynika to z tego, że jest dużo mniej czasu na dojście do rozwiązania, a dodatkowym elementem jest stres związany z pisaniem kodu na żywo, gdy z drugiej strony ktoś uważnie śledzi i ocenia takie rozwiązanie.

W każdym razie zwróć tutaj uwagę na kilka szczegółów:

  • Przede wszystkim mów. Mów o tym, jak rozumiesz zadanie.
  • Dopytaj o szczegóły, jeśli wydają Ci się ważne.
  • Najważniejsza rada. Zdekomponuj problem na mniejsze fragmenty. To ułatwi sprawę, bo Twój mózg skupi się na małych zadaniach, które doprowadzą do rozwiązania całości krok po kroku.
  • Jeśli widzisz inne możliwości rozwiązania, to też o nich powiedz.

Tutaj tak na marginesie. W zadaniu rozwiązywanym online nie chodzi o to, żeby kod np. pisany w Google Docs się kompilował po przeniesieniu do IDE. Nie chodzi też o perfekcyjną znajomość JDK. Chodzi o sprawdzenie, jak myślisz i jak dochodzisz do rozwiązania. Ale również o to, czy umiesz w jasny sposób to omówić.

Githuby pomagają

Niezależnie od tego, jak idzie Ci rozmowa techniczna na stanowisko Junior Programista warto jest na nią mieć przygotowany jakiś atut. Taki as w rękawie, który może przeważyć na Twoją korzyść.

I tym atutem może być jakiś własny projekt np. na Github. Jest to moim zdaniem duża wartość dodana i sugeruję się tym po prostu pochwalić. Zwłaszcza, gdy na dany projekt poświęciłeś więcej swojego czasu – serio to jest inwestycja. A rozmowa techniczna to jest moment spłaty tej inwestycji. Dlatego nie zmarnuj tego.

Warto pytać

Wychodzę z założenia, że rozmowa kwalifikacyjna powinna mieć wartość zarówno dla rekrutera, jak i dla osoby rekrutowanej. Dlatego chętnie czekam na pytania.

Nie będzie zaskoczeniem, że teraz najczęstszym pytaniem jest to, jak wygląda praca w czasie pandemii. To teraz temat podstawowy na świecie.

Zdarzają się też pytania o praktyki kodu, o Springa, Code Review i testy. Jeśli masz szansę na rozmowie zadać takie pytanie, to śmiało. Możesz się czegoś ciekawego dowiedzieć, a przy okazji to też pokazuje, że na serio interesujesz się pracą w danym miejscu. Warto więc przygotować sobie kilka pytań wcześniej, żeby naprędce ich nie wymyślać.

Przekaż coś ciekawego

I niekoniecznie możesz nawet wiedzieć, że tak się stało.

Taki przykład z życia. Podczas jednej z ostatnich rozmów, gdzie występowałem w roli rekrutera technicznego, pojawił się temat wyboru sposobu konkatenacji łańcuchów znakowych. Kandydat mówił o tym, że może dany kawałek kodu rozwiązać za pomocą zwykłej konkatenacji za pomocą znaku „+”, jak również i za pomocą StringBuildera. Tutaj przy okazji dodał ciekawy wątek o tym, że JDK optymalizuje od którejś wersji tę operację i wykorzystuje wewnętrznie właśnie StingBuildera. Dzięki tej uwadze trafiłem na fajne artykuły tu i tu. Dla mnie to zawsze interesujący moment, kiedy mogę dowiedzieć się czegoś ciekawego w czasie rozmowy.

Dla zaskoczonych, że tego nie wiedziałem … nie mogę wiedzieć wszystkiego o JDK 😃. Niech będze, shame on me. Z plusów ujemnych – teraz mogę o to pytać kandydatów 😊

Kończąc

Myślę, że to dobra wiedza dla Ciebie na rekrutację. Rozmowa techniczna na stanowisko Junior Programista może być ciężka i stresująca. Ale tych kilka elementów, o których pisałem może Ci pomóc przejść ją śpiewająco. Też tak myślisz? Jest to pomocne dla Ciebie?

Wracają do początku wpisu. W rzeczywistości zastanawiam się, czy następny wpis poświęcić opisowi przykładowego zadania, które daję teraz online do rozwiązania kandydatom podczas rozmowy technicznej (tak, dokładnie to zadanie, o którym jest w tym artykule). Tego, jak je oceniam i jakie byłoby idealne rozwiązanie. To drogi Czytelniku zróbmy tak. Jeśli pojawi się pod tym artykułem 10 komentarzy do wtorku, to ta super fajna treść pojawi się w przyszłym tygodniu. Zainteresowany wejściem w umysł rekrutera technicznego? Dodaj komentarz!

5 5 votes
Article Rating
Subscribe
Powiadom o
guest
6 komentarzy
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Adrian Hering
Adrian Hering
2 miesięcy temu

Fajny artykuł! I ta ciekawostka z konkatenacją. Akurat uczę się i piszę na githuba mały projekt i wszędzie w konkatenacji użyłem StringBuildera.. dobrze wiedzieć, że ma to sens jedynie w pętlach 😉

Bartłomiej
Bartłomiej
2 miesięcy temu

Chętnie poczytam na co warto zwrócić uwagę przy takim zadaniu technicznym 🙂

Arek
Arek
2 miesięcy temu

Dwa dni temu wysłałem rozwiązane swoje pierwsze zadanie techniczne w życiu (z którego teraz nie jestem zadowolony xD), także również bardzo chętnie przeczytam na co zwracać uwagę