Jak zacząć programować od zera w Javie? Część 3

This entry is part 3 of 4 in the series Nauka programowania od zera

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ń : )

Leave A Comment