W tym artykule przedstawię historię Błażeja, który przebranżowił się na Junior Java Developer’a. Historię napisał sam Błażej. Ja tylko umieściłem ją na moim blogu dodając linki do moich artykułów, które korespondują z tym, co Błażej napotkał na swojej drodze do Junior Java Developer’a. Błażej swoje pierwsze kroki z językiem Java stawiał pod moim okiem, później samodzielnie pracował nad własnym rozwojem w stronę Junior Java Developer’a. Poniżej to, co Błażej spisał.
Błażej: “Naukę programowania w Javie rozpocząłem pracując w firmie na pełen etat jako IT Consultant (obowiązki mocno rozszerzonego IT Support w międzynarodowej Duńskiej firmie). Czas na programowanie poświęcałem po pracy. Uczyłem się z kursów Udemy, kursy na YouTube, dokumentacja Oracle – Przydatne książki i strony do nauki języka Java. Po ok. 8 miesiącach rozpocząłem rozsyłanie CV – Jak znaleźć pierwszą pracę jako Junior Java Developer?. Gdy nadarzyła się okazja pracy w dużej korporacji Tieto postanowiłem przeprowadzić się do obcego mi wtedy miasta Szczecin, aby zyskać pierwsze tak ważne doświadczenie jako Java Developer. Cała rekrutacja była online i dwuetapowa, najpierw miękki hr, a później spotkanie z osobą techniczną. W czacie trzeba było napisać kod trzech zadanek i od razu wyjaśnić dlaczego taki kod. Wszystko po to aby pokazać rozumienie kodu. Z uwagi na otrzymanie nowej pracy musiałem się przeprowadzić, firma pokrywała koszty przeprowadzki. Projekt był ciekawy mieliśmy team 3 developerów i devopsa. Trzeba było zbudować aplikacje tweatera backend plus wyświetlanie contentu na stronie internetowej. Stack technologiczny Java 8, EJB, IntelliJ, Gerrit, Jenkins, GitLab, JSON, REST, Jboss, PostgreSQL – Kiedy sam język Java to za mało. Jak nie utonąć w morzu technologii związanych z językiem Java?. Projekt był prowadzony w metodyce Scrum. Rozpoczęliśmy od Scrum Procker, następnie rozpisaliśmy w Jira czego będzie dotyczył projekt. Następnie stworzyliśmy Use Case, Activity Diagram, Sequence Diagram i Diagram Klas. Następnie rozpisaliśmy na tablicy metody do zaimplementowania (To Do, In Progress, Done) – Czy sam język Java wystarczy?. Dziennie robiliśmy tzw. Daily Stand Up. Raz na tydzień mieliśmy dłuższe spotkanie z seniorami. Po trzech miesiącach zaprezentowaliśmy gotową aplikacje przed Project Managerem.”.
Błażej: “Z uwagi że projekt się zakończył i nie było nic w Javie, firma zapewniła nam projekt w Pythonie więc w pracy uczyłem się Pythona. W tym czasie rozpocząłem po pracy przygotowywania do zdania egzaminu z Javy „98-388 MTA: Programming Using Java” Tak więc mój czas był wypełniony w pracy i po pracy programowaniem, również w weekendy. Byłem w obcym mieście więc skupiłem się na programowaniu i pracy. I tak przez pół roku. Po 8 miesiącach projekt w Pythonie zakończył się i rzucono nas na Cloud i tworzenie OpenStack (odpowiednik Microsoft Azure). Jeden kolega zrezygnował bo nie było to już zupełnie związane z programowaniem, ja z tego samego powodu zrezygnowałem miesiąc później.”.
Błażej: “Od stycznia do końca maja pisałem projekty w domu, dużo aplikowałem o pracę. Dodam że jedna z ciekawszych i bardziej wartościowych rekrutacji wyglądała w taki sposób że dostałem plik PDF z opisaną funkcjonalnością programu i założeniami. Moim celem było zrozumieć biznesowe wymagania i następnie zaimplementować aplikacje do zarządzania parkingiem: podawanie nr tablicy rejestracyjnej, opcjonalne zaznaczenie opcji niepełnosprawności (inna stawka za godzinę postoju), włącznie/zatrzymanie licznika i wyświetlenie ile jest do zapłaty. Moduł dla administratora parkingu z informacją kto ma włączony licznik a kto nie, moduł dla właściciela zliczający zarobek dzienny i miesięczny. Wszystko z wykorzystaniem SOLID, DRY – Dlaczego kod w języku Java powinien być SOLID’ny oraz suchy, DRY? – logowanie błędów, interfejs z poziomu strony internetowej więc był też wykorzystany REST. Inne projekty ciekawe przy rekrutacjach to np. napisanie aplikacji która po API łączy się z instytutem sejsmologicznym i po podaniu współrzędnych geograficznych zwraca top 10 w najbliższej odległości trzęsień ziemi tego dnia.”.
Błażej: “W maju w jednym momencie otrzymałem 3 oferty pracy. W dużym amerykańskim korpo Clear2Pay-FIS branża bankowa język angielski na co dzień w pracy, druga w dużej ale polskiej firmie piszącej rozwiązania dla urzędów i trzecia miała 15 osób pisząca dodatki do JIRA. Oczywiście język programowania Java. Wybrałem największą tą amerykańską firmę. Pierwszy miesiąc nauka bankowości, procesów finansowych, po intensywnym miesiącu z bankowości egzamin, aby pracować dalej trzeba go zaliczyć na 50%, miałem 54% 🙂 Dla porównania senior w Javie który ze mną zaczynał miał 57%. Drugiego i trzeciego miesiąca to było otrzymywanie ticketów w JIRA i szukanie w kodzie gdzie występuje błąd aby następnie poprawić jedną linijkę. Czasem schodził mi tydzień nie rzadko trzy dni aby znaleźć taki błąd – ogólnie siedzenie i analizowanie kodu długimi godzinami. Kodowania prawie zero, za to 99% czasu to analizowanie kodu – Czy sam język Java wystarczy?. Raz na 2 tygodnie reinstalacja środowiska z uwagi na pewne problemy ze stabilnością niektórych kontenerów Dockerowych. Kod ma już kilkanaście lat od Java 1.4 do 1.8 Spring i EJB oddziały które piszą ten kod są rozproszone po całym świecie. Pozostały stack technologiczny IntelliJ, Docker, Confluence, Jenkins, SVN. Po kolejnych dwóch miesiącach dobiegł końca mój okres próbny i nie przedłużono mi umowy. Następnie przeniosłem się do rodzinnego miasta.”.
Błażej: “Postanowiłem pouczyć się języka bardziej przyjaznego freelancerom i był to .NodeJS zrobiłem w tym pierwsze projekty poduczyłem się AWS po to aby deployować projekt. Zaproszono mnie na trzy rozmowy związane z Node. Ostatecznie prace znalazłem w rodzinnym Bielsku-Białej jako uwaga junior w C# 🙂 Firma poszukiwała kogoś z C# a że Java trochę podobna to powiedzieli ok 🙂 Chodziło o pisanie modyfikacji do programu dla księgowych i do ERP marki eNova. C# jest trochę podobny do Java, jest to jęzk obiektowy. Niestety system jaki był rozwijany tj. eNova jest polskiej produkcji, więc mamy do czynienia z systemem embeded przez co zero informacji w Google, zapomnij o StackOverflow. Dokumentacja przemieszana i mało można było się z niej dowiedzieć. Problem w firmie pojawił się z tym, że firma była bardzo mała 4 programistów, plus ja osoba do wdrożenia. Programiści byli bardzo zajęci i nie mieli czasu, aby poświęcić go nowej osobie aby wdrożyć w system i w nowy język. Ostatecznie po trzech miesiącach nie przedłużono mi umowy, firma wytłumaczyła to z brakiem osoby która mogła by mnie wdrożyć w to jak funkcjonuje system. – Junior Java Developer umiejętności techniczne, a umiejętności miękkie“.
Błażej: “Z programowaniem jest tak, najpierw trzeba opanować język, to jest do zrobienia, ja tak opanowałem Jave i podstawy Pythona i zrobiłem jakieś projekty w Node. Języki są do siebie podobne i dużo między sobą zapożyczają z rozwiązań. Później trzeba nauczyć się nowej dziedziny np. bankowości albo finanse albo jeszcze coś innego oraz dowiedzieć się gdzie co w kodzie jest napisane aby wiedzieć jak się do tego odnieść aby zrobić modyfikacje w kodzie. Jeżeli nie wie się gdzie w kodzie co zostało napisane to nie wiesz gdzie szukać błędu ani jak korzystać z różnych metod/funkcji. Trzeba mieć też wiedzę teoretyczną z danej dziedziny. Tak więc samo nauczenie się programowania i pisania aplikacji od zera i przedstawiania gotowych aplikacji nie oznacza, że już wszystko wiecie, wbrew przeciwnie. – Ja chcę pisać tylko kod, nie interesują mnie wymagania biznesowe!“.
Błażej: “Język to 1/3 sukcesu, trzeba opanować nowy przedmiot w jakim działa firma np. bankowość, prawo bankowe regulacje itd. Trzeba wiedzieć, co nalicza się w księgowości, co mówi prawo polskie gdy jest taka i taka spółka która rozlicza VAT i płaci taki podatek, trzeba wiedzieć co dopisać aby w programie było to zgodne z prawem i pilnowało aby osoba wprowadzająca koszty i zakupy firmy dobrze wszystko wprowadziła i przeliczyła aby wszystko dobrze powpadało na konta księgowe. Jest jeszcze jedna kwestia związana z czytaniem kodu, który już istnieje. To kolejne wyzwanie, kolejna trudność. Możesz pisać swoje programy, wiedzieć w każdej linii co się dzieje. Ale to nie znaczy że potrafisz czytać cudzy kod. I nie mówię o rozumieniu StackOverflow ale rozumieniu czasem rozbudowanych struktur w kodzie. Kod często jest różnej jakość i jest często pisany przez różne osoby pisane tj. lepszych i gorszych programistów. Czytanie i rozumienie kodu to kolejne wyzwanie w pracy programisty.”.
Błażej: “Aktualnie po 2 latach z programowaniu chce wykorzystać wiedzę techniczną z programowania i IT aby połączyć ją z moimi umiejętnościami miękkim w komunikacji i relacjach międzyludzkich i współpracy międzynarodowej z menagerami.”.

Błażej o sobie: “Z informatyką jestem związany ponad 10 lat. Ukończyłem uczelnie informatyczną PJATK w Warszawie. Mam szerokie doświadczenie od projektowania, zbierania wymagań, po realizację, testy, wdrożenie na serwer klienta. Pracowałem w takich firmach jak IBM, Budimex, Lionbridge. W czasie wolnym biegam (ukończony półmaraton), jeżdżę na rowerze (prowadzę bloga z moimi podróżami rowerowymi po Europie www.rowerblazeja.com), gram w tenisa, chodzę po górach, pływam kajakiem, jeżdżę na rolkach, nartach i jeszcze trochę by można było tego wymieniać.”.
Mam nadzieję, że historia Błażej pozwoli przybliżyć proces jaki większość osób musi przejść chcąc przebranżowić się na Junior Java Developer’a. Oczywiście ścieżka każdej osoby może wyglądać zupełnie inaczej, ale większość elementów z historii Błażeja będzie się powtarzać.
Zapraszam do regularnego odwiedzania mojego bloga www.juniorjavadeveloper.pl, będą pojawiać się kolejne wpisy oraz do kontaktu przez email kontakt(at)juniorjavadeveloper.pl lub LinkedIn.
Ścieżka wsparcia przyszłego Junior Java Developer’a
Wychodząc na przeciw oczekiwaniom przyszłych młodszych programistów języka Java przygotowałem „Ścieżkę wsparcia przyszłego Junior Java Developera”. Dlaczego akurat takie a nie inne kroki na ścieżce wsparcia? Pod uwagę wziąłem kilka miesięcy mojej pracy z wieloma osobami, które chciały zmienić zawód na Junior Java Developer’a.

Konsultacja z Mentorem
– Zmieniasz zawód na Junior Java Developer, zastanawiasz się, co wybrać?
– Kodujesz, utknąłeś?
– Uczysz się, nie wiesz, co dalej?
ZAMÓW

Weryfikacja CV i portfolio
Zastanawiasz się jak zwiększyć szanse na dostanie pracy jako Junior Java Developer? Twoje CV i portfolio jest Twoją wizytówką i robi pierwsze wrażenie.
ZAMÓW

Symulacja rozmowy kwalifikacyjnej
Rozmowa kwalifikacyjna jest bardzo ważnym elementem procesu rekrutacji, ale jest również bardzo stresująca. To nie tylko weryfikacja wiedzy technicznej.
ZAMÓW