JUNIOR JAVA DEVELOPER - początek kariery w branży
Java to język wysokopoziomowy, który jest wydajny i wszechstronny. Stosuje się go w aplikacjach serwerowych, internetowych, mobilnych, a nawet aplikacjach sterujących urządzeniami. Według platformy Skillotron z Javy korzysta 22,4% programistów w Polsce, co czyni z niego najpopularniejszy język wysokopoziomowy. Java jest też najpopularniejszym językiem wg rankingu Tiobe (a pozycję tę utrzymuje już drugi rok!), według Stack Overflow jest 2. najczęściej tagowanym językiem, a na GitHub ma trzecią pozycję pod względem ilości napisanych projektów. Ma też ogromną społeczność, co znacznie ułatwia naukę oraz daje wsparcie podczas pracy.
Język Java jest wykładany na wielu uczelniach na kierunkach informatycznych, dlatego stanowisko Junior Java Developera jest jednym z najczęściej wybieranych przez osoby, które chcą rozpocząć karierę jako programista.
Okazuje się jednak, że same studia zazwyczaj nie wystarczają, by uzyskać upragnione stanowisko. Wiedza z wykładów i projekty, które tworzy się na zaliczenie to za mało. Jeśli student poważnie myśli o karierze developera, już na II lub III roku powinien poszukać praktyk lub stażu. Organizuje je bardzo wiele firm i to nie tylko w okresie wakacyjnym, ale również przez cały rok.
Plusem praktyk jest możliwość pracy z doświadczonymi programistami, realizacja prawdziwych komercyjnych projektów i poznawanie w praktyce metodyk wytwarzania oprogramowania. To najlepsza opcja na start w branży.
Czy można być juniorem po 40-stce?
Programowanie to dziedzina, która przyciąga wielu. Są ku temu trzy podstawowe powody: atrakcyjne warunki wynagrodzenia, bardzo dużo ofert pracy oraz to, że praca ta jest ciekawa i twórcza. Pozwala tworzyć coś, z czego korzystają inni użytkownicy, co ma nie tylko wirtualny, ale również realny wymiar.
Do branży informatycznej dołączają zatem osoby, które już dawno rozpoczęły karierę, ale w innym obszarze i w pewnym momencie zorientowały się, że to, co robią, nie do końca im odpowiada. Decydują na przebranżowienie. Czy można zostać juniorem Javy mając 30-40 lat? Okazuje się, że jest to możliwe, choć niełatwe. Kilkoma radami na temat tego, jak sobie radzić z obawami, dzieli się Maciej Wójcik, Java Developer w e-Service, który wcześniej przez 18 lat pracował jako… główny księgowy.
Rozpoczęcie kariery jako Junior Java Developer w wieku prawie 40 lat nie jest proste. Odbijałem się od rozmów, widziałem zdziwione miny rekruterów i osób technicznych obecnych podczas rekrutacji. W CV nie podawałem wieku ani zdjęcia, a nie każdy zwrócił może uwagę na LinkedIn i zamieszczone tam zdjęcie. – wspomina Maciek. Zawsze pierwszym pytaniem podczas spotkania rekrutacyjnego było to, dlaczego zacząłem uczyć się programowania. Na to pytanie musiałem mieć gotową odpowiedź – śmieje się Maciek. Trzeba się tym nie przejmować, pogłębiać wiedzę i próbować!
Osoby, które są w takiej sytuacji, w jakiej ja byłem, powinny pamiętać o posiadaniu profilu na GitHub. Napisanie projektu microserwisu od początku do końca i umieszczanie na git swojego kodu pokazuje pracodawcy jakie mamy kompetencje i czego się już nauczyliśmy. Daje wgląd w jakość kodu, jaki tworzymy, ale przede wszystkim pokazuje, że mamy motywację. Ważny jest też profil na LinkedIn. Niby jest to oczywiste, ale nie każdy o tym pamięta. W moim przypadku przynajmniej 3 na 10 rozmów o pracę były właśnie z LinkedIn.
Własny fragment kodu, napisanie własnej aplikacji daje dodatkowy plus w czasie rozmów nie tylko dlatego, że sami coś zrobiliśmy, ale również dlatego, że w czasie pisania aplikacji napotkamy różne problemy, które sami rozwiążemy – a to już doskonały temat do rozmowy w czasie rekrutacji o naszych doświadczeniach z programowaniem.
Rozmowa kwalifikacyjna na Junior Java Developera - czego się spodziewać? Jakie pytania mogą paść?
Wiele osób, które chcą rozpocząć karierę, napotyka barierę - okazuje się, że nie jest tak łatwo znaleźć pracę jako Junior Java Developer. Na jakie pytania warto znać odpowiedzi? Jak się przygotować do spotkania?
Dawid Rabicki, Java Developer w firmie eService mówi, że warto czuć się w Javie pewnie: Nie chodzi o to, by mieć kompilator w głowie, raczej być świadomym dostępnych rozwiązań i umieć w razie potrzeby doszukać sobie o nich informacji. – wyjaśnia. Na pewno warto: rozumieć idee enkapsulacji, znać podstawy clean code, korzystać z jakiegoś framework’u (ja polecam oczywiście Springa), korzystać z systemu kontroli wersji (np. git). Z uwagi na to, że pracodawca jest zazwyczaj zainteresowany komercyjnym zastosowaniem oprogramowania, trzeba mieć podstawową wiedzę o aplikacjach biznesowych, czyli np. umieć połączyć się z bazą, wystawić API, wiedzieć, czym jest stopień pokrycia kodu itd. – dodaje.
Maciej Wójcik, Java Developer, wspomina, że pytano go o wzorce projektowe oraz pytania o bazy danych: W moim cv wpisane były tylko relacyjne bazy danych, dlatego zawsze dostawałem zadanie napisania prostego zapytania dowolnego dialektu SQL.
Jaki projekt warto mieć w portfolio? Możliwości jest wiele. Ważne, by projekt był dobry. Takim przykładem mogłaby być np. aplikacja, która potrafi korzystać z publicznego API, łączy się z bazą danych i do przetwarzania danych korzysta np. ze Streamów. – wyjaśnia Dawid Rabicki. Do tego warto zadbać o to, by dodatkowe funkcjonalności były scalane z osobnych gałęzi (feature-branch), a nie wszystko na masterze oraz by w kodzie był ogólny, semantyczny porządek – to świadczy o tym, że junior zna dobre praktyki.
Obaj specjaliści z firmy eService podkreślają, że jest to dość spory próg wejścia dla osób dopiero uczących się języka i takich zagadnień często na studiach się nie porusza, trzeba zatem dokształcić się samemu.
Dalszy rozwój zawodowy - MID DEV - kwalifikacje i kompetencje zawodowe
Przejście z poziomu juniora na mid developera można poznać po tym, że developer samodzielnie realizuje powierzone zadania, nie myśli już jak rozwiązać pojedynczy problem, ale jak to rozwiązanie wpłynie na całą aplikację – jej wydajność, skalowalność, możliwość przyszłej rozbudowy, zmian, użyteczność. To również umiejętność stosowania różnych technologii i ich dopasowywania do określonych potrzeb.
SENIOR - nowe perspektywy i wyzwania
Dla potrzeb rekrutacji stanowisko seniora opisuje się przynajmniej 5-letnim doświadczeniem zawodowym. W praktyce jednak to poziom umiejętności i doświadczenia praktycznego, a nie konkretny staż pracy decyduje o tym, czy programista może już być seniorem.
Z perspektywy managera zespołu bycie seniorem to nie tyle kwestia samego doświadczenia liczonego w latach, ile samodzielność w realizacji technicznej części małych projektów oraz zdolność do angażowania pozostałych członków zespołu w dyskusje na temat wyboru odpowiednich narzędzi, frameworków, architektury, poszukiwania nowinek technicznych czy też rozwiązań trudnych problemów.
Dodatkowo nasi seniorzy potrafią podzielić zadania na kilku programistów (zwykle mniej doświadczonych) i w takim „teamie” dostarczać je w obiecanym przez siebie terminie. Senior musi więc wykazać się umiejętnością pracy w zespole i z zespołem. – wyjaśnia Piotr Wiśniewski, Dyrektor Biura Rozwoju Usług IT w eService.
Senior jest osobą, która rozumie cel biznesowy aplikacji i potrafi się na nim skupić. Jest w stanie przełożyć nietechniczny język klienta, którym opisuje on swoje potrzeby na język kodu. Zdaniem seniorów najciekawszym elementem pracy są wyzwania, którym należy sprostać - na tyle nietypowe lub skomplikowane, że podpowiedzi nie da się łatwo znaleźć w internecie.
Perspektywy rozwoju Senior Java Developera
Senior developer, który szuka zmian, ma dostępnych wiele różnych opcji. Może rozwijać się w zupełnie nowej technologii. A jeżeli jest otwarty na większą zmianę – staje przed perspektywą rozwoju, np. jako Architekt rozwiązań IT lub Lider techniczny. Ta ostatnia rola łączy aspekty pracy specjalisty z pracą menadżera odpowiedzialnego za efektywną pracę i motywację kilkuosobowego zespołu. – wyjaśnia Piotr Wiśniewski.
Od juniora do seniora - Java Developer i jego zarobki
Wynagrodzenia w branży rosną dynamicznie, choć początki wcale nie są aż tak różowe, jak wydaje się wielu kandydatom, którzy jeszcze nie rozpoczęli kariery.
Zarobki według Raportu Płacowego Hays (2019)**:
• Junior Java Developer (1-3 lat doświadczenia) 40 – 60 zł / godz. netto B2B
• Developer (3-5 lat doświadczenia) 60 – 110 zł / godz. netto
• Senior Developer (5+ lat doświadczenia) 90 – 120 zł / godz. netto
• TeamLeader (5+ lat doświadczenia) 125 – 140 zł / godz. netto
W branży technologicznej duża część specjalistów zatrudniana jest na podstawie kontaktu B2B. W przypadku umowy o pracę kwota brutto wynagrodzenia jest odpowiednio dopasowywana.
Raport płacowy CPL Jobs (2019 Salary Guide) prezentuje wynagrodzenia programistów Java w perspektywie lokalizacji. I tak Junior Developer zarobi***:
• w Krakowie 6 000 – 9 900 zł brutto (umowa o pracę)
• w Poznaniu 7 000 – 10 500 zł brutto
• we Wrocławiu 6 500 – 10 500 zł brutto
• w Warszawie 8 000 – 10 000 zł brutto
Mid Java Software Developer zaczyna wynagrodzenie od górnej stawki juniora, czyli:
• w Krakowie 9 900 – 14 000 zł brutto (umowa o pracę)
• w Poznaniu 10 500 – 15 000 zł brutto
• we Wrocławiu 10 500 – 16 000 zł brutto
• w Warszawie 10 000 – 16 000 zł brutto
Senior Java Software Developer:
• w Krakowie 14 000 – 18 000 zł brutto (umowa o pracę)
• w Poznaniu 15 000 – 20 000 zł brutto
• we Wrocławiu 16 000 – 19 500 zł brutto
• w Warszawie 16 000 – 20 000 zł brutto
Nie tylko wynagrodzenie - na co jeszcze mogą liczyć developerzy Java?
W tak konkurencyjnej branży dochodzi do sytuacji, która w Polsce jest rzadko spotykana – dla pracownika pierwszym kryterium wyboru pracodawcy przestaje być wysokość wynagrodzenia. Liczą się warunki pracy, możliwości rozwoju, to czego konkretnie będzie dotyczyła praca (jakie projekty będzie realizować developer, z kim będzie pracował w zespole, jaką metodykę tworzenia oprogramowania stosuje firma).
Firmy oferują zatem:
• budżety szkoleniowe,
• wyjazdy na konferencje i meetupy (również zagraniczne),
• dodatkowy czas na rozwój własnych projektów,
• świetnie wyposażone, nowoczesne biura.
Praca częściowo zdalna jest już popularnym benefitem w IT, a osoby z większym doświadczeniem (od poziomu MID) mogą liczyć również na opcję znalezienia pracy w pełni zdalnej, która pozwala np. na łączenie podróżowania z pracą i zostanie cyfrowym nomadem.
Inną ciekawą opcją jest możliwość pracy w niepełnym wymiarze godzin – to opcja dla tych, dla których wynagrodzenie jest kwestią drugorzędną, a chcą więcej czasu poświęcić bliskim lub na rozwój swojego hobby.
---
* Dane statystyczne od I 2017 roku do X.2019. Stanowiska Programista JAVA na wszystkich poziomach zaawansowania, (z wykluczeniem stanowisk dla programistów Java Script).
** Stawka netto w ramach kontraktu B2B.
*** Raporty Płacowe uwzględniają w wynagrodzeniu również wszelkiego rodzaju premie i dodatki. Podana kwota nie odzwierciedla zatem stricte miesięcznego wynagrodzenia podstawowego tylko całościowe wynagrodzenie roczne podzielone na 12 miesięcy.