- Jak zacząć programować od zera w Javie? Część 1
- Jak zacząć programować od zera w Javie? Część 2
- Jak zacząć programować od zera w Javie? Część 3
- Jak zacząć szukanie pracy jako programista Java?
W części pierwszej i drugiej dowiedzieliśmy się jak zacząć przygodę z Javą od kompletnego początku. Po ich lekturze jesteśmy w stanie napisać proste programy. Następnym krokiem jest systematyczne powiększanie wiedzy o języku. W poście postaram się przybliżyć najprostszą drogę do tego celu.
Etapy nauki programowania
Na początku przyjrzymy się jak zwykle przebiega ścieżka nauki programisty Java.
Pierwsza styczność z aktualnymi narzędziami i językiem
Na starcie wszystko wygląda strasznie i trudno. Nie mamy pojęcia, jak daleko jest upragniony cel, a sama profesja wydaje się bardzo trudna. Dlatego też potrzebujemy pierwsze osiągnięcia i motywacji. Pierwszy krok przełamuje lody i pokazuje, że nie taki diabeł straszny jak go malują. Etap ten opisałem w części pierwszej.
Pierwsze programy
Początkowe programy powinny być minimalne i dawać szybki feedback odnośnie postępów. Dlatego też warto wystrzegać się skomplikowania jak ognia. Nie używajmy żadnych bibliotek ani nie rozwijamy za bardzo źródeł. Etap ten opisałem w części drugiej.
Fundamenty języka
Kolejny krok to rozwinięcie znajomości języka o niezbędne podstawy takie jak:
- klasa/obiekt/instancja
- typy prymitywne vs obiekty
- cechy klasy String
- modyfikatory dostępu
- modyfikator static
- podstawy dziedziczenia
- różne typy klas, interfejs
- czym są paczki
- DTO, gettery, settery
- tablice vs podstawowe kolekcje
Warto poczytać w różnych źródłach internetowych o innych fundamentalnych koncepcjach.
Na tym etapie polecam na razie nie zaśmiecać sobie głowy frameworkami czy bibliotekami. Moim zdaniem absolutne podstawy języka są czymś, co jak najszybciej warto pojąć i bawić się z nimi jak najwięcej.
Poznanie podstawowych narzędzi wspierających programowanie
Kiedy już przebrniemy przez najważniejsze fundamenty, warto skierować swoje oczy na kilka niezbędnych dodatków. Pierwszy z nich to system kontroli wersji, w tym momencie Git rządzi i nie warto stawiać na nic innego. Tutaj nie pozostaje nic innego jak założenie konta na GitHub i używanie go do swoich projektów. Druga sprawa to system budujący projekt i zarządzający zależnościami – tutaj polecam Maven. Z tymi narzędziami praca coraz bardziej będzie przypominała pracę profesjonalną.
Poznanie podstaw Springa
Kiedy już umiemy korzystać z Mavena, to bez problemu stworzymy projekt Springowy. Polecam startery springowe, które pozwalają “wyklikać” zalążek projektu. Tworzymy prosty programik, który wykorzystuje możliwości webowe Spring Boota. Poznajemy czym są beany i jak z nich korzystać.
Baza danych
Spring Boot pozwala na bardzo łatwy dostęp do bazy danych. Tutaj konieczne są podstawy SQL i co najmniej jeden system bazodanowy na komputerze. Warto pobawić się z tym, gdyż praktycznie każdy program będzie używał tego typu rozwiązań.
Grind – krew, pot i łzy : )
Na tym etapie mamy pogląd na ogrom tematu. Zanim rzucimy się w wir nauki kolejnych fascynujących bibliotek, baz danych i narzędzi polecam zrobić coś innego. Moim zdaniem, bez bardzo dobrej znajomości języka nie ma kompetentnego programisty. Dlatego też polecam zagłębienie się w Javę. Jest masa książek, które wykładają Javę w najmniejszych szczegółach(np. książki do certyfikatów). Polecam pochłonięcie kilku takich kolumbryn, które zwykle mają więcej niż 500 stron. Świetna znajomość języka jest fundamentem, na którym stoi wszystko inne. Zadbaj o to, by nic co widzisz w kodzie Cię nie zaskoczyło, zapewniam że zwróci Ci się to z nawiązką. Etap ten zajmie setki godzin, ale uwierz mi, że warto.
Rozgałęzianie od Javy
Kiedy już znamy dobrze Javę i umiemy robić kompletne programy, to możemy wypłynąć na szersze wody. Mamy do wyboru wiele dróg. Niektóre z nich to:
- zostanie Java Expertem, czyli dalsze zagłębianie się w zaawansowane i niskopoziomowe tematy
- poznawanie języków pokrewnych np. Kotlin
- dodawanie znajomości okolicznych technologi np. frontendu i baz danych, tzw. ścieżka Full-Stack
- Dev-Ops – rozszerzanie wiedzy odnośnie systemów CI/CD
- specjalizacja odnośnie struktury całych aplikacji – Architekt
Możliwych dróg jest oczywiście znacznie więcej. W tym etapie większość programistów już mniej więcej wie, co lub i automatycznie jest przyciągana do jednej z tych ścieżek.
Co dalej?
Na tą chwilę, możliwości moich porad niestety się kończą. Każdy teraz pisze własną historię, dlatego nie jestem w stanie przedstawić więcej konkretnych kroków. W tej serii pozostał jeszcze jeden temat – kiedy i jak szukać pracy podczas nauki programowania. Zapraszam ,artykuł na ten temat już za tydzień : )