Jakie umiejętności powinien mieć Junior Java Developer? – wywiad z Przemkiem Bykowskim

Wstęp

Misja to pomaganie innym

W ramach misji pomagania innym w dążeniu do pierwszej pracy jako Junior Java Developer poprosiłem Przemka Bykowskiego o wskazówki. Przemek jest doświadczonym programistą, trenerem i założycielem szkoły programowania AkademiaSpring.pl. W wywiadzie Przemek dzieli się najlepszymi, wypracowanymi wskazówkami dla osób, które chcą zostać Junior Java Developerami. 

6 pytań i 6 odpowiedzi, które przyspieszą Twój rozwój

Opracowaliśmy porady, które pomogą Ci w drodze do pierwszej pracy w Javie! Oczywiście ze wszystkimi kwestiami się zgadzam i zachęcam do wprowadzania ich w życie 😊

Gotowi?

Zaczynamy!

Spis treści

Podsumowanie

1. Jakie technologie i w jakim stopniu powinien znać Junior Java Developer?

Jeśli chodzi o umiejętności, to one zmieniają się z roku na rok dość dynamicznie. Co roku na swoim blogu publikuje radar, który pokazuje jakie technologie są najbardziej pożądane na rynku pracy.

Źródło: https://bykowski.pl/co-musi-umiec-java-developer-w-2021/

Radar został opracowany na podstawie ofert pracy z portali justjoinit, nofluffjobs, pracuj.pl i zawiera on aktualne wymagania stawiane Java Developerom.

Nie należy jednak się tym przerażać, ponieważ raport obejmuje technologie oczekiwane względem stanowiska, a nie poziomu zaawansowania. Dlatego jako Junior Java Developer możesz odetchnąć z lekką ulgą 😊

W zamian za to, w ramach społeczności, jaką prowadzę, dostaję od Uczestników przecieki jakie pytania, oraz zagadnienia są najpopularniejsze w trakcie rozmów kwalifikacyjnych. Dla Juniora są to przede wszystkim pytania, które dotyczą takich pięciu rzeczy.

Pięć rzeczy

  1. Czysta Java
  2. Złożoność obliczeniowa i algorytmika
  3. Język SQL
  4. Dobra znajomość protokołu HTTP i podstaw sieciowych
  5. Działanie frameworków takich jak Spring lub Hibernate

Przede wszystkim Juniorom radzę skupić się na pierwszych 3 punktach, ponieważ one są głównie weryfikowane w trakcie rozmów kwalifikacyjnych. Kolejne punkty przydadzą Ci się do realizacji projektu, który może potencjalnie wyróżnić Cię na tle innych Kandydatów. 

Nie bez przyczyny tutaj też wspomniałem o Radarze Technologicznym i technologiach, jakie zostały w nim ujęte między innymi: WebFlux, Continuous Integration, Kubernetes, Apache Kafka. Najpewniej, na tym etapie, umiejętność posługiwania się nimi nie jest Ci potrzebna, ale zdecydowanie warto zapoznać się z tą listą. Przynajmniej zorientuj się, do czego dana technologia służy. To pomoże Ci zrozumieć stack technologiczny firmy, do której aplikujesz, oraz lepsze zrozumienie i wyróżnienie się w trakcie rozmowy rekrutacyjnej. 

Jako Junior zawsze lepiej jest na przykładowe pytanie: „Czy wiesz czym jest Spring Cloud i architektura mikroserwisów?” odpowiedzieć:

Jeszcze z taką technologią nie mam komercyjnego doświadczenia. Wiem, że służy ona do rozwiązywania problemu xxx – czytałem o niej/oglądałem szkolenie na YT i chętnie nauczę się ją praktycznie stosować, mając możliwość pracy z nią na co dzień. 

niż odpowiedzieć:

Nie wiem, ale chętnie się nauczę 🙃

Takie podejście pokaże, że interesujesz się branżą i chętnie się uczysz. To nieoceniony plus, jaki możesz zyskać w oczach rekrutera, więc nie przegap go!

Idealnie dla Ciebie, byłoby zrobienie Hello World’a z każdą technologią opisaną w sekcji Must Have/Wanted. Jednak pamiętaj, aby jednak największą wagę i czas na naukę przeznaczyć na pierwsze 3 punkty

2. W jaki sposób podejść do nauki tych rzeczy?

Istnieje wiele podejść. Można się uczyć z kursów online, można się uczyć na korepetycjach, na różnego rodzaju szkoleniach lub z książek. Powinieneś wybrać swój ulubiony styl, który sprawia, że uczysz się sprawnie i dostarcza Ci to wiele frajdy.

To zależy od naszych predyspozycji.

W swoim doświadczeniu trenerskim zauważyłem, że dużo osób ze starszego pokolenia preferuje książki i artykuły. Styl zwięzłego opisu połączonego z licznymi przykładami w kodzie źródłowym. 

Osoby z młodszego pokolenia preferują kursy wideo i materiały na YouTubie, gdzie krok po kroku, widać jak aplikacja jest budowana, a prowadzący na głos opowiada o wszystkich krokach, przez co możesz nauczyć się “jak myśli programista”.

Polecam znaleźć swoją najlepszą drogę do tego, w jaki sposób będziesz się uczyć i nic nie stoi na przeszkodzie, aby łączyć style. Niezależnie czy wybierzesz książkę, kurs wideo, pracę z korepetytorem, to pamiętaj, że taka forma dostarcza Ci dużo teorii i wartościowego wsadu.

Ale…

Wykonuj zadania praktyczne

Po każdym takim materiale wykonuj ćwiczenia. Postaraj się zrealizować zadania, które będą nawiązywały do właśnie przerobionego przez Ciebie materiału. Przede wszystkim PRAKTYKA. Takie materiały powinny Ci dostarczać głównie teorii i orientacji, a dalej eksploatuj temat samodzielnie, realizując jak najwięcej zadań i eksperymentów. Nie wahaj się z nimi bawić 😎


3. Jak wyróżnić się wśród innych kandydatów na stanowisko Junior Java Developera?

Side project’y

Myślę, że bardzo dobrą rzeczą jest realizacja side-projectów. Dodatkowo dobrze jeśli umieścisz na swoim repozytorium każdy projekt programistyczny, w ramach którego uczyłeś się/realizowałeś przykładowe zadanie. Wówczas, rekrutująca osoba, wchodząc do repozytorium, zobaczy Twoje doświadczenie.

Zdobywaj doświadczenie

Druga rzecz. Zachęcam do realizacji wszelkiego rodzaju bezpłatnych praktyk i staży tylko po to, aby mieć doświadczenie komercyjne w projekcie. Nie wszyscy sobie mogą na to pozwolić, ponieważ wiele osób pracuje, wiele osób się przebranżawia, ale jeżeli jesteś młodą osobą i możesz zainwestować swój czas, to rób to.

Dołącz do społeczności

Kolejną rzeczą jest dołączenie do jakichś społeczności i do projektów. Jest dużo projektów open source, do których możesz dołączyć, aby pracować w ich teamie. Zdobywaj doświadczenie i umiejętności po godzinach. Ważne jest, aby starać się dołączyć do zespołu projektowego, w ramach którego nie tylko poznasz technologie, ale również podejście do zarządzania projektem. Czyli np. popracujesz w Scrumie, dowiesz się, jakie są funkcje w zespole, jakie masz konkretne odpowiedzialności oraz jak wygląda cały flow pracy.

W oczach rekrutera zaskarbisz sobie jeśli pokażesz, że wiesz, jak wygląda praca w projekcie.

4. Jak idealnie powinien wyglądać warsztat osoby, która jest już gotowa i powinna się starać o pracę jako Junior Java Developer?

Idealny warsztat nie istnieje, ponieważ specyfika każdej firmy, do której aplikujesz, jest inna. Dlatego profiluj się, czy to na potrzeby firmy, lub jeśli jesteś dobrze ukierunkowany, to względem technologii. 

Jeżeli widzisz ogłoszenie na daną pracę i jesteś Junior Java Deweloperem, to powinieneś stworzyć idealny profil, idealne CV oraz idealny list motywacyjny dla danego stanowiska pracy.

Przykładowo

Jeżeli w ogłoszeniu o pracę wymagają od Ciebie znajomości Spring Boot’a, Javy i dodatkowo GraphQL’a.

Wtedy Ty jako Junior Java Deweloper powinieneś zawrzeć informację, że znasz Spring Boot’a, znasz Javę, a jeśli nie znasz GraphQL’a, który jest wymagany na tym stanowisku pracy, wtedy powinieneś przyjrzeć się czym jest ten GraphQL. Postarać się zrobić jakiś projekt. Wrzucić ten projekt do swojego repozytorium. Osoba, która będzie Cię przyjmowała na to stanowisko dowie się, że już z GraphQL’em pracowałeś.

Powtarzam: Zawsze warto jest się profilować pod daną firmę.

Łap kontakty na LinkedIn

Dodatkowo, zanim jeszcze zgłosisz CV, warto jest złapać na LinkedIn kontakt do osoby, która już pracuje w firmie, do której chcesz się dostać. Być może jest ona w stanie zdradzić więcej szczegółów na temat rekrutacji lub na temat pracy. Posiadając jakiś pierwszy kontakt z firmą, będzie znacznie łatwiej dostać w niej pracę. Zachęcam do networking’u i do dodawania do swojej sieci kontaktów na LinkedIn osoby, które pracują w danej firmie. Udzielać się w komentarzach pod postami danej firmy. Pokazuj się i bądź widocznym. Warto rozmawiać i pokazywać, że jesteś fajną osobą, z którą warto współpracować.

Rzeczy techniczne to jedno, a umiejętność budowania relacji to drugie i jest to obecnie bardzo cenione.


5. Często na stanowisko Juniora Java Developera jest wymagane doświadczenie. Jak sobie z tym poradzić jako osoba, która dopiero zaczyna w świecie IT?

Polecam starać się dołączyć do różnego rodzaju firm/społeczności/inicjatyw, które są w stanie wydać Ci zaświadczenie o tym, że pracowałeś przy danym projekcie. Wystarczy popytać na grupach programistycznych, ponieważ takie inicjatywy istnieją, trzeba je tylko wyszukać.

Dodatkowo nic nie stoi na przeszkodzie, aby zapytać na grupie o realizację własnego projektu i zebrać zespół do wspólnej pracy i nauki 🙌


Zawsze możesz dołączyć do projektów open source lub zacząć rozwijać własny.


6. Jakie książki, kursy lub strony z wiedzą polecasz? Czy są takie, które po prostu trzeba przeczytać jako początkujący?

Polecam nie fiksować się na konieczne przeczytanie topowych książek, tylko i wyłącznie z powodu, że jakaś książka jest rekomendowana.

Powinieneś zaplanować swoją ścieżkę kariery i w zależności od tego, jaką ścieżkę kariery wybierasz, takie książki i powinieneś dla siebie wybierać.

Przykładowo

Jeżeli chcesz profilować się na specjalistę, który będzie pracował z Dockerem, to powinieneś zacząć czytać książki typowo związane z utrzymaniem i tej tematyce podobne.

Ale jeżeli docelowo chciałbyś zostać FullStackiem, to powinieneś zacząć czytać książki bardziej związane z komunikacją pomiędzy komponentami i formatami wymiany danych.

Stawiałbym na to, aby w zależności od wybranej ścieżki kariery wybierać takie książki, jakie są Ci po drodze.

I wydaje mi się, że przeczytanie książki typu “must have” może być w wielu przypadkach anty wzorcem. Nie zachęcam do tego, ponieważ możesz ugrzęznąć w stosie nieprzeczytanych książkach. A pytanie – czy te książki w ogóle Ci się później przydadzą…

Może zamiast super rekomendowanej, TOPowej książki o Clean Code (bo z pisaniem czystego kodu radzisz sobie dobrze) lepiej będzie poczytać coś o testach, które w Twoim projekcie są zaniedbane? 

Warto wybrać sobie takie książki/publikacje, które aktualnie są Ci potrzebne, a nie po prostu czytać wszystkie książki z rankingu najlepszych książek.

Przed przystąpieniem do studiowania danego materiału polecam Ci też zrobić prostą fiszkę:

Źródło: https://bykowski.pl/5-rzeczy-ktore-pomogly-mi-rozwinac-sie-jako-programista/

Mentor

Zdecydowanie polecam znalezienie dla siebie mentora, czyli osoby, który pomoże tę ścieżkę wytyczyć. Powie Ci – jakich technologii warto się uczyć, z jakich źródeł i w jaki sposób nad jakąś zmianą w sobie pracować. Jednak wszystko to w zależności od Twoich indywidualnych potrzeb i możliwości. Mentor jest w stanie wskazać Ci twoje aktualne braki, ale również i talenty. Dzięki niemu znacznie szybciej przejdziesz na wyższy poziom. 

Polecam znaleźć sobie mentora, który będzie dzielił się swoimi doświadczeniami i wskazywał Ci zawsze najlepsze rozwiązanie w danej sytuacji. Ważne jest, aby odróżniać go od nauczyciela, który tłumaczy Ci np. jak działa framework, oraz jak pisać kod.

Znalezienie takiego mentora jest w stanie znacznie przyspieszyć ścieżkę Twojej kariery. To może być cenniejsze niż wiele przeczytanych książek czy zrealizowanych kursów.

Co jeśli nie masz funduszy na DOBREGO mentora?

Ważne jest, aby mieć dobrego mentora, lubić go, mieć z nim nić porozumienia. Niestety najlepsi mentorzy są niedostępni czasowo lub bardzo kosztowni. Dlatego w takim przypadku warto by było znaleźć jakiegoś programistycznego ROCKSTARa, którego będziesz śledzić.

Znajdź jakiegoś fajnego znanego programistę. Sprawdź, czego on się uczył, jak on się uczył i jakie książki przeczytał. I jeżeli chcesz mieć ścieżkę kariery podobną do danej osoby, wówczas obserwuj tę osobę.

Przykładowo

O! Akurat uczy się Dockera, to może warto zainteresować się Dockerem.
O! Polecił jakąś konferencję/szkolenie? Może warto się przyjrzeć.
Mówi o najnowszych trendach i rynku pracy? Warto tego nie przegapić! 

Grupy programistyczne

Jest jeszcze trzecia rzecz – znalezienie społeczności.

Jest wiele grup programistycznych. Możesz na takich grupach napisać na przykład:

Słuchajcie, jestem Karolina i uczę się programowania w Javie od 3 miesięcy i chciałabym znaleźć kumpli lub kumpele do wspólnego robienia projektów do wspólnej nauki

Polecam znalezienie sobie niedużej grupy ziomeczków. Dlaczego niedużej? Bo duża grupa z biegiem czasu łatwiej się rozmywa i rozjeżdża. Jeśli zawiera ona od 2 do 4 osób, to rzeczywiście może zostać naprawdę fajną zwartą grupą.

Wspólnie możecie się wymieniać doświadczeniami, robić sobie CR, mówić jakie fajne materiały/konferencje się ostatnio obejrzało i co jest warte polecenia. Właśnie w taki sposób się motywować.

Dlaczego to jest dobry sposób na naukę?

Był to mój sposób uczenia się na studiach. Kiedy sam się czegoś uczyłem do egzaminu, to zawsze znalazło się coś, co rozpraszało/było równie ważne. A kiedy spotykało się z kumplami, to spotykaliśmy się w konkretnym celu. Ustalaliśmy, że mamy przerobić konkretne zagadnienia i uczyliśmy się.

Kolega mówił: “a ja się nauczyłem o tym i o tym”.

Mówiliśmy: “Ciekawe ciekawe, opowiadaj więcej!”.

Powstawały dyskusje i debaty. Oprócz tego, że się uczysz to jeszcze poprzez taką dyskusję, wymianę poglądów czy uczenie innych, jesteś w stanie znacznie więcej zapamiętać. O tym nam mówi piramida uczenia się, w jaki sposób uczyć się efektywnie.

Łącz te trzy ścieżki

Więc polecam takie trzy ścieżki. Oczywiście nic nie stoi na przeszkodzie, aby te trzy ścieżki łączyć.

Pierwsza to jest znalezienie mentora.

Druga to jest znalezienie swojego idola w świecie IT, byś mógł śledzić jego poczynania, wzorować się na nim, czerpać od niego jak najwięcej wartości. 

Trzecia to jest znalezienie małej grupy sprawdzonych osób, z którymi bardzo chętnie będziesz móc tę wiedzę poszerzać i wymieniać.

Więcej o Przemku Bykowskim

Jestem trenerem i zawodowym programistą, który aktualnie mieszka i projektuje systemy SaaS w Norwegii

Potrafię dotrzeć do programistycznego umysłu, wytłumaczyć skomplikowane rzeczy w łatwy sposób. Inspiruję do działania, i przekazuję sporą dawkę motywacji. Właśnie to pozwoliło mi na zbudowanie społeczności pasjonatów programowania 🙂

Po godzinach nagrywam filmy na mój kanał 🔴YouTube, publikuje na 🗣blogu i prowadzę swoją społeczność o wdzięcznej nazwie Bycza Zagroda 🐂. Poza tym trenuje crossfit i jestem maratończykiem. Zawsze pełen pozytywnej energii do działania! 🙂

Złap mnie na LinkedIn ➜ https://www.linkedin.com/in/przemyslaw-bykowski/

Podsumowanie

Dziękujemy za przeczytanie tego wpisu. 👏

To był na pewno dobrze zainwestowany czas. Inwestując czas na czytanie takich artykułów prędzej czy później zdobędziesz swoją pierwszą pracę w Javie 👌

Jeśli masz jakiekolwiek pytania do mnie lub Przemka to możesz dodać komentarz do tego posta! 👀

Tymczasem…

Miłego dnia lub nocy i powodzenia w zdobywaniu Twojej Pierwszej Pracy w Javie! 👋

5 myśli w temacie “Jakie umiejętności powinien mieć Junior Java Developer? – wywiad z Przemkiem Bykowskim”

  1. Super wywiad. Scala to co już wiedziałem i porządkuje. To dowód, że jest dobrze napisany. Dzięki Bartek i Przemek👍

  2. Jestem czterdziestoletnim inżynierem który postanowił się przebranżowić. I rozpocząłem naukę podstaw programowania javy. Tu usłyszałem jak w wielu miejscach że muszę własne projekty zapisywać na np. Git Hubie. Ale usłyszałem ciekawe wskazówki o grupach i wymianie doświadczeń. Dziękuje za podpowiadanie ludzim. Przyda się ta wiedza.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *