Java developer – czym się zajmuje i jakich pytań spodziewać się na rekrutacji?

James Gosling tworząc język Java w latach dziewięćdziesiątych, z pewnością nie miał świadomości, że będzie twórcą jednego z najpopularniejszych i najbardziej cenionych języków programowania. Dzięki wielofunkcyjności pozwala na tworzenie aplikacji webowych, desktopowych czy mobilnych. Elastyczność oraz uniwersalność Javy sprawia, że znajduje zastosowanie niemal w każdej branży. Kim jest Java Developer? Czego może spodziewać się podczas rekrutacji? Na co zwracają uwagę pracodawcy, zależnie od poziomu zaawansowania kandydata? O tym Agata Wierdak-Kutek, ekspert rekrutacji talentów z Experis.
Czym zajmuje się osoba na tym stanowisku?
Java Developerem nazywamy programistę posługującego się językiem Java oraz jego frameworkami (Spring, Hibernate), to osoba odpowiedzialna za tworzenie back-endu – niewidocznej dla użytkownika warstwy aplikacji czy strony. Java Developer, mówiąc ściślej, odpowiada za projektowanie konkretnych rozwiązań oraz tworzenie oprogramowania wraz z dokumentacją techniczną. Dokładny zakres czynności uzależniony jest od poziomu doświadczenia, posiadanych umiejętności oraz znajomości technologii. Co warto podkreślić, developer pracuje zazwyczaj z innymi kolegami po fachu i ma wsparcie Project Managera, Scrum Mastera czy Analityka i Architekta.
Szukasz nowych wyzwań zawodowych? Sprawdź oferty pracy Experis.
Ścieżka kariery
Na starcie kariery ważna jest pasja do programowania i chęć nauki. Junior Java Developer początkowo otrzymuje zadania niezbyt skomplikowane, polegające na dodawaniu prostych funkcjonalności, implementację przekazanych fragmentów kodu, czy poprawianie drobnych w nim błędów. Co ważne, osoba na tym stanowisku nie powinna zostać pozostawiona sama sobie. Popełniając pierwsze linijki kodu, musi mieć oparcie w osobie mentora, który naprowadzi początkującego specjalistę IT na właściwe tory. Junior Java Developer powinien znać podstawy programowania w języku Java, a także posiadać wiedze na temat jednego z najbardziej popularnych frameworków, jakim jest Spring, wiedzieć czym jest Hibernate oraz znać bazy SQL. Ważne są również kompetencje miękkie takie jak otwartość, komunikatywność i samodzielność.
Gdy pisanie kodu staje się już codziennością, a poleganie na starszych kolegach nie jest już konieczne, z juniora przechodzimy płynnie na poziom Mid, lub inaczej – Regular Java Developera. To stanowisko obejmują osoby z około 3-letnim doświadczeniem komercyjnym w programowaniu w języku Java, które samodzielnie wykonują powierzone zadania, wiedzą jak używać technologii i narzędzi, które otrzymują, a efektem tej pracy jest działający, czysty kod. Niezbędna do działań jako Regular Java Developer jest znajomość frameworków Spring i Hibernate, tworzenie automatycznych tekstów w oparciu o JUnit, praca z mikroserwisami i w duchu Agile. Ważną i cenioną przez pracodawców umiejętnością jest także bardzo dobra znajomość języka angielskiego, która przydaje się na tym stanowisku, jest też niezbędna do przejścia wyżej w programistycznej hierarchii.
Wraz z biegiem lat i rosnącymi aspiracjami, developer naturalnie staje się Seniorem. Za Senior Java Developera uważa się programistę, który posiada przynajmniej 5-6 lat komercyjnego doświadczenia, ma kompetencje techniczne, ale i odpowiednie umiejętności miękkie. Senior nie skupia się bowiem wyłącznie na kodzie, a w projekcie, poza kwestiami technicznymi, dostrzega potrzeby klienta. Potrafi przewidzieć konsekwencje działań zespołu oraz umie zapobiec ich negatywnym skutkom w projekcie. Ciąży na nim odpowiedzialność za młodszych stażem pracowników, jest ich nauczycielem i „pierwszą linią wsparcia”.
Niezwykle ważne w jego pracy są właśnie wspomniane wcześniej umiejętności miękkie, takie jak łatwość i przejrzystość w przekazywaniu myśli, konsekwencja w działaniu, czy odporność na stres. Stos technologiczny dla seniora nie ma tajemnic i potrafi dobierać narzędzie do potrzeb zespołu oraz klienta.
Rozmowa o pracę Java Developera – czego może się spodziewać w zależności od poziomu zaawansowania?
Na dynamicznym rynku pracy, jakim jest rynek IT, cały czas poszukiwani są Java Developerzy. Wynika to między innymi z nieustannej digitalizacji, rosnących potrzeb pracodawców, jak i rotacji na stanowiskach programistycznych. Zazwyczaj firmy preferują dwuetapowe rekrutacje. Pierwsza część, niezależnie od poziomu zaawansowania prowadzona jest przez osobę z działu HR, która sprawdza tzw. umiejętności miękkie i motywację kandydata. Może wtedy dopytać o powody chęci zmiany pracodawcy, dlaczego aplikował akurat na to stanowisko. Rekruter na tym etapie rozmawia także o planach zawodowych w przyszłości, dopytuje o ulubiony projekt lub taki, który był największym wyzwaniem. Ważnym etapem spotkania jest weryfikacja języka angielskiego – krótka rozmowa w języku obcym pomoże określić poziom jego zaawansowania.
Osoby, które pozytywnie przeszły pierwszą rozmowę, zapraszane są do kolejnego etapu rekrutacji, czyli spotkania technicznego. Ma ono na celu sprawdzenie umiejętności kandydata, tego jak posługuje się wspomnianymi technologiami. Trwa ono zwykle około 60-90 minut, prowadzone jest przez osobę techniczną, często będąca członkiem zespołu, do którego prowadzona jest rekrutacja. To spotkanie już znacznie różni się w zależności od tego, na jak zaawansowane stanowisko kandydujemy.
W przypadku rekrutacji na stanowisko Junior Java Developera zazwyczaj spotkanie przebiega w formule pytanie-odpowiedź. Najczęściej zadawane są pytania o szczegóły projektu w który zaangażowany jest kandydat, używany obecnie stos technologiczny, czysto teoretyczne zagadnienia związane z językiem Java: pytania o klasy, obiekty niezmienne itp. Mogą paść również pytania o frameworki i biblioteki Java oraz bazy relacyjne.
W przypadku rozmowy o pracę Mid (Regular) Java Developera, konwencja spotkania jest podobna, ale wzbogacona o weryfikację umiejętności technicznych. Rekruterzy zazwyczaj decydują się na jedną z trzech najpopularniejszych opcji:
- Jedną z nich jest sesja live coding. To zapewne jeden z najbardziej stresujących dla kandydatów elementów rozmowy kwalifikacyjnej. Ważna jest tu dokładność, umiejętności techniczne, ale też odporność na stres oraz presję czasu. Polega na napisaniu kodu w czasie rzeczywistym przy udziale publiczności (osób prowadzących rozmowę techniczną). Kandydat udostępnia wtedy swój ekran rekruterom i wykonuje powierzone mu zadania. Poziom trudności uzależniony jest od stopnia seniority kandydata oraz oczekiwań pracodawcy.
- Coraz popularniejszym sposobem na weryfikację umiejętności technicznych, jest przesłanie zadania do zrobienia w określonym czasie, zwykle w kilka dni roboczych. Najczęściej ma ono charakter algorytmiczny, polega na poradzeniu sobie z krótkimi algorytmicznymi problemami przy wprowadzonych ograniczeniach, a oceniane jest automatycznie. To pozwala pracodawcy na szybkie przefiltrowanie kandydatów, przy niewielkim nakładzie czasu i pracy rekrutera.
- Podczas spotkań rekrutacyjnych wykorzystuje się również zadanie kreowane bezpośrednio przez programistów w firmie, do której poszukiwana jest osoba. Często są to małe projekty, składające się z kilku elementów, dużo bardziej złożone od zadań algorytmicznych i wymagają poświęcenia większej ilości czasu zarówno od kandydata, jak i osoby sprawdzającej. Możemy tam znaleźć konkretny problem do rozwiązania, jak np. zaimplementowanie usługi przy wykorzystaniu powierzonych przez klienta narzędzi. Potencjalny pracodawca zazwyczaj w punktach wymienia technologie do wykorzystania, a także zaznacza swoje preferencje odnośnie długości kodu i stylu pracy.
Senior Java Developer powinien być gotowy na szereg pytań dotyczących jego dotychczasowych doświadczeń zawodowych, projektów, w które był zaangażowany oraz technologii, które preferuje w pracy. To stanowisko, na które kandydaci rzadko są sprawdzani przez zadanie rekrutacyjne, czy live coding. Przyszły pracodawca bardziej skupia się na weryfikacji umiejętności, doświadczenia kandydata, które pasują do jego potrzeb oraz wymagań klientów, z którymi współpracuje. Senior Java Developer, prócz doskonałej wiedzy technicznej, powinien być gotowy na dzielenie się nią oraz doświadczeniem z zespołem.
Java Developerzy wciąż stanowią łakomy kąsek dla rynku pracy. Dzięki temu programiści mają możliwość wybierania ciekawych projektów, także tych międzynarodowych, i firm nawet z najodleglejszych części świata. Język programowania Java, mimo iż jest językiem stosunkowo starym i jego koniec przewidywany jest już od lat, wciąż stanowi stabilne środowisko pracy dla developerów, a także wiele możliwości implementacji.
