w , ,

FajneFajne Dobre!Dobre!

Jak Aktualnie Wyglądają Rekrutacje Programistów? Wyznania Specjalisty z 20 letnim stażem

Przebieg relacjonuje Mirek, który w branży IT działa już ponad 20 lat, początkowo jako administrator, teraz już 100%-towy developer. Dlatego jeśli chcesz o coś dopytać w temacie to Mirek serdecznie zaprasza do kontaktu poprzez swój profil na LinkedIn. Obydwaj wierzymy, że dzięki tym notatkom łatwiej będzie sprostać Tobie oczekiwaniom rekruterów, oraz lepiej przygotować się do podjęcia pracy. Tymczasem posłuchajmy przeżyć Mirka 😊

Prolog – oferty z LinkedIn

Na wstępie powiem tylko że od wielu lat nie miałem żadnej tego typu rozmowy więc zupełnie nie wiedziałem czego się spodziewać. Pierwsza propozycja pojawiła się wraz z pandemią – zadzwonił do mnie rekruter, który znalazł mój profil na LinkedIn (tu mała dygresja – warto o ten profil zadbać tak by potencjalni rekruterzy nas znaleźli) 😊

Był to czas kiedy pracy nie szukałem ale gdzieś w głowie pojawiła się myśl żeby sprawdzić oczekiwania na rynku więc zgodziłem się na taką próbę.

Proces rekrutacyjny

Okazało się że szukano programistów do banku Goldman Sachs. Proces rekrutacji był kilkuetapowy i składał się że następujących etapów:

  1. Zadania algorytmiczne, ale bardziej złożone niż słynny foo-bar. Związane z były głownie z łańcuchami znaków i jakimiś działaniami na nich – ten etap przeszedłem.
  2. Zadanie algorytmiczne – trudniejsze niż w pkt 1. Tym razem chodziło o przejście przez tablicę dwuwymiarową tak by zebrać największa liczbę punktów umieszczonych w poszczególnych polach – tu poległem 😅
  3. 2 rozmowy o tematyce „system design” oraz o tematyce okołojavowej – z pytaniami typu jak działa GC, w jaki sposób możemy mu pomóc w działaniu, jakie są typy referencji itp. w jaki sposób zaimplementowałbym system typu call center.

Wszystkie rozmowy i zdania prowadzone były przez pochodzących z Indii pracowników G&S z włączoną kamerą i mikrofonem. Angielski więc był niezbędny, jednak była też pewna bariera wzajemnego zrozumienia więc nie czułem się komfortowo. Ogólnie wynik – FAIL 😅

Rekrutacja do międzynarodowej firmy

Kolejna rozmowa została mi zaproponowana wiosną 2021. Również szukano programistów Java do międzynarodowej firmy – tym razem Publicis Sapient.

Etap 1 – Java i Spring

Tym razem najpierw musiałem rozwiązać test. Zawierał on pytania z Java i Spring podzielone na różny stopień trudności a ostatnie zadanie polegało na rozwiązaniu zadania algorytmicznego i napisaniu kawałka kodu. Udało mi się test zaliczyć na >80%, więc rozmawiano ze mną dalej.

Etap 2 – Zaprojektowanie systemu

Kolejne rozmowy odbyły się z pracownikami firmy – jednym z Urugwaju a drugim z Anglii. Pierwsza dyskusja dotyczyła ogólnie mojego doświadczenia z technologią: Java, programowanie funkcyjne, chmura itp. Druga dyskusja dotyczyła propozycji zaprojektowania systemu do skróconych adresów URL.

Można na YT znaleźć filmy z różnymi propozycjami rozwiązań tego typu problemów. Więc warto się z nimi zapoznać przed rozmowami – tak by mieć mniej więcej pojęcie jak to ugryźć i od czego zacząć analizę. Problem, który mi został przedstawiony był pewną mutacja ogólnie znanego problemu tinyURL.

Ważna sugestia: pytać i wnikać w szczegóły założeń projektu. Sam temat był podany w taki sposób że na początku myślałem o czymś zupełnie innym niż rekruter miał na myśli 😊 Dlatego koniecznie trzeba dopytywać o szczegóły i jak mam rozumieć to czy tamto. Tę rekrutację przeszedłem pozytywnie, ale nie dogadaliśmy się co do warunków.

W podsumowaniu, zastrzeżenia jakie mieli ze swojej strony to moje małe doświadczenie z technologiami chmurowymi. Trochę żałowałem mojej decyzji bo mogłem zgodzić się na ich warunki, ale ponieważ nie miałem „noża na gardle” to w sumie pomyślałem że poczekam na jakieś inne oferty. Nie spieszyło mi się.

Wysyp ofert pracy

Pod koniec roku 2021 był istny wysyp propozycji i tak się szczęśliwie złożyło że miałem tygodniowy urlop więc mogłem dość swobodnie umawiać się na rozmowy rekrutacyjne podczas czasu wolnego.

Jedna z firm poszukujących pracowników, najpierw wysłała mi test do zrobienia. Na test miałem chyba 60 min i zawierał on pełen przekrój tematów związanych z pracą programisty javowego: Java, Spring, git, SQL, agile. Test był przygotowany na specjalnej platformie. Po jego zaliczeniu dostałem propozycje rozmów już bezpośrednio z firmami szukającymi nowych ludzi.

Pytania rekrutacyjne

Poniżej kilka tematów które były poruszane we wszystkich rekrutacjach + wnioski względem całego procesu job interview

  • HashMap – budowa i zastosowanie.
  • Metody hashCode i equals – wyjściowy problem był związany z tym że equals dla dwóch „identycznych” obiektów jakiejś prostej klasy zwracał false. I od tego wyszła rozmowa o tych dwóch metodach, konieczności ich implementacji i skutkach ich braku
  • Napisać fragment kodu z użyciem lambdy – redukcja kolekcji.
  • Napisać testy do utworzonej metody (JUnit4).
  • Omówienie zaprezentowanego kodu i opisanie jak można go ulepszyć:
    – głównie to co zauważyłem to brak programowania do interfejsów
    – tight coupling
    – działanie @Transactional i potencjalne problemy (ps. na temat wykorzystywania transakcji w praktyce, potencjalnych problemów i sposobów radzenia sobie z nimi będzie najbliższe szkolenie live, które odbędzie się 28/03/2022, więcej informacji na Live.Bykowski.pl)
  • Sposoby synchronizacji wątków.
  • Opowiedzieć w j.ang o jakimś wybranym wzorcu projektowym.
  • Kilka pytań w stylu z zadań certyfikacyjnych – czyli czy dany kod się skompiluje, lub czy rzuci wyjątkiem lub wykona się poprawnie i jeśli tak to co zwróći.
  • Kody związane z equals, z lambdami (użycie zmiennych które muszą być final lub effective final).
  • Były tez pytania z Linuxa – jakieś proste komendy (ale to może dlatego że w CV umieściłem info że pracuję na ux’ach)

Cenna garść porad na koniec

Pytać, pytać i pytać! Dostałem zadanie którego treść w moim rozumieniu była niejednoznaczna i dopytałem o szczegóły – to się rekruterom spodobało. Gdy utkwisz na czymś to trzeba umieć szukać rozwiązanie w necie – rekruter chciał zobaczyć mój ekran i w jaki sposób szukam rozwiązania – czyli to też jest ważne.

Tak naprawdę to oprócz rekrutacji na seniora, nie było jakichś skomplikowanych lub podchwytliwych pytań. Kod do analizy był pokazywany na zoom/ms teams albo dostałem link do repozytorium. Musiałem sobie go ściągnąć. Ja użyłem gita z linii komend ale sądzę że dowolny sposób byłby dobry. W każdym przypadku musiałem mieć zainstalowane IDE – Intellij.

A gdzie jesteś Ty w tym wszystkim?

Jeśli brałeś udział w rekrutacji w ostatnim czasie, to koniecznie podziel się w komentarzu swoimi przemyślanami. Jak Twoim zdaniem będzie kształtował się rynek pracy i sposób pozyskiwania wykfalifikowanych specjalistów?

Napisane przez Przemysław Bykowski

Aktywny programista i energiczny trener. Specjalizuje się w Spring Boot i uczę go w ramach AkademiaSpring.pl. Po godzinach udzielam się na YouTubach. Więcej o mnie.

Dodaj komentarz

spring data

🔴Szkolenie Live: Spring Data

Transakcje w Spring Boot

Transakcje w Spring Boot – Proste Wyjaśnienie