author-avatar
Dominik Martyniak
Junior 11 minut

Jak rozpocząć podróż w świecie programowania Java i Spring Boot


Rozpoczęcie przygody z programowaniem: Nurtujące pytania i kluczowa zasada.


Pytanie, które nieustannie nurtuje nowicjuszy: "Jak rozpocząć naukę programowania?" stanowi punkt wyjścia do podróży w świecie programowania. Osobiście często kieruję moją uwagę właśnie na to zagadnienie i przestrzeganie pewnej zasady - "Kodź , koduj i kontynuuj kodowanie" - niewątpliwie stanowi doskonałą receptę. Wnikając w tę myśl, postanawiam zgłębić jej pełniejsze aspekty na tym blogu. 


Inicjacja procesu - Kluczowe aspekty, czemu to robisz ?

 

Na wstępie warto się zastanowić, jakie są podstawowe motywacje kierujące naszą chęcią bycia developerem. Zazwyczaj jest to połączenie kilku czynników, takich jak perspektywa zarobków, spokojnego życia, elastyczności czasu pracy oraz doznania spełnienia zawodowego. Oczywiście, rzeczywistość może być bardziej zróżnicowana, a w dalszych wpisach na blogu chciałbym zająć się nawet aspektami, które mogą zniechęcać do kariery programisty, które często kończą się katastrofalnym finałem. Załóżmy jednak, że posiadasz determinację i wewnętrzne przekonanie, że programowanie to właśnie Twoja ścieżka, którą chcesz podążać a nie jedynie puste slogany, „chce być  w IT i spać na złocie”. 

 

Pierwsze kroki – Zabawa i prostota.

 

Budując już pewne „fundamenty” w dziedzinie programowania, które można zdobyć za darmo dzięki materiałom dostępnym na platformach takich jak YouTube czy różnorodne darmowe kursy online, stajemy zaznajamiać się z podstawową wiedzą na temat programowania, warto skierować swój wzrok i wysiłek w kierunku pierwszych małych projektów ("Kodź , koduj i kontynuuj kodowanie"). Mogą to być proste zadania, takie jak statyczna strona HTML, tworzona np. na poczet osiedla na który mieszkasz, zadanie domowe w języku Pascal, czy nawet bardziej rozbudowane projekty w języku C , a może bot do Discorda w pythonie by wysyłać spam z memami do znajomych? 
Jeżeli odczuwasz zadowolenie z kreowania tego rodzaju narzędzi, aplikacji oraz stron, jest to świetny sygnał, aby podjąć wysiłek w naukę programowania, który, powiedzmy sobie szczerze, pochłonie znaczną część twojego wolnego czasu. 

 

Co dalej ?

 

Tutaj zaczyna się kolejne kluczowe pytanie: Czy bardziej przyciąga nas praca nad elementami wizualnymi, np. stworzenie komponentu odpowiedzialnego za prezentację danych w postaci tabeli użytkowników z ich statystykami? A może marzymy o stworzeniu zaawansowanego kreatora prowadzącego użytkownika przez rejestrację w poradni medycznej, z uwzględnieniem szczegółowych informacji ? Jeśli w naszym sercu bije dźwięk tworzenia interfejsu użytkownika, to droga front-end developmentu wydaje się naturalnym wyborem.

Natomiast, jeśli fascynują nas wyzwania związane z przetwarzaniem danych oraz implementacją rozwiązań biznesowych opartych na analizie zestawów informacji, łączenie się z bazami danych, analiza wydajnościowa systemów, wówczas świat back-endu staje się prawdziwym polem do popisu. Tutaj ukazuje się pasjonujący obszar tworzenia infrastruktury, która na bazie danych z różnych źródeł generuje biznesowe wartości. 
W kontekście omawianego wpisu, oraz blogu , głównie skoncentrowanego na obszarze backendu, przyjrzymy się językowi Java, który jest moim obszarem ekspertyzy.

 

"Kodź , koduj i kontynuuj kodowanie” czyli programuj , kreuj i nieustannie rozwijaj swoje umiejętności programistyczne.

Na chwile zatrzymajmy się i chciałbym wskazać jeden bardzo istotny aspekt przed przejściem do roadmapy. W każdym momencie swojej przygodyu, warto starać się tworzyć własny kod. Nie zawsze będzie on idealny i czytelny, ale to naturalna część procesu nauki. Przypominam sobie swoją pierwszą aplikację opartą na JavaFX, która była prawdziwym "spaghetti" kodem.(może kiedyś odważę się pokazać tą perełkę ;D) Te doświadczenia są niezwykle cenne, ponieważ dzięki nim rozwijasz się jako programista. Czytanie i słuchanie o programowaniu to tylko jedna strona medalu. To, co naprawdę przynosi efekty, to praktyka. Właśnie poprzez tworzenie własnych projektów i eksperymentowanie z kodem, nabierasz praktycznych umiejętności oraz uczysz się radzić sobie z różnymi problemami, które napotykasz po drodze. To także doskonała okazja do wykorzystania zasobów takich jak Stack Overflow czy inne źródła internetowe, aby pozyskać różnorodne perspektywy i rozwiązania. Rozważmy sytuację, w której napotykasz na NullPointException, kłopoty z przepływem danych lub trudności z nawiązaniem połączenia z bazą. Niech inspiracją dla nas będzie fakt, że podobne wyzwania zostały już pokonane dziesiątki tysięcy razy. Dlatego warto podjąć wysiłek, by odnaleźć rozwiązania, a następnie z powodzeniem zastosować je w praktyce w swoim projekcie.

 

Zarys roadmapy java developera.

 

1. Język Angielski:

  • wszystko w IT jest w tym jezyku, wiec tutaj moim zdaniem znajomość na poziomie b2 w zupełności wystarczy by swobodnie odnajdywać się w gąszczu dokumentacji czy słuchania wykładów

2. Podstawy programowania:

  • Poznanie podstawowych typów jak: String, int, long, double, boolean etc.
  • Nauka ogólnych koncepcji programowania, jak zmienne, pętle, warunki.
  • Zaznajomienie się z podstawowymi strukturami danych, takimi jak tablice i listy.

3. Nauka Języka Java:

  • Poznanie składni i konstrukcji języka Java.
  • Zrozumienie obiektowości - klasy, obiekty, dziedziczenie, polimorfizm.
  • Obsługa wyjątków i błędów.

3. Podstawy Programowania Obiektowego:

  • Głębsze zrozumienie koncepcji obiektowości.
  • Praktyczne wykorzystanie dziedziczenia, enkapsulacji i polimorfizmu.

4. Rozwijanie umiejętności Java:

  • Praca z kolekcjami, mapami i innymi strukturami danych.
  • Zastosowanie interfejsów i klas abstrakcyjnych.

5. Zaawansowane Koncepty Java:

  • Wielowątkowość i równoległość.
  • Obsługa strumieni.

6. Bazy Danych:

  • Nauka SQL i podstaw baz danych.
  • Praca z relacyjnymi bazami danych, np. MySQL, PostgreSQL.

7. Frameworki i Biblioteki:

  • Zrozumienie Spring Framework - Spring Boot, Spring MVC, Spring Data.
  • Praktyczne wykorzystanie Hibernate lub JPA do pracy z bazami danych.

8. Poznanie Narzędzi Deweloperskich:

  • Praca z systemami kontroli wersji, np. Git.
  • Zrozumienie narzędzi do budowy (Maven, Gradle) i zarządzania projektem.

9. Tworzenie Aplikacji Webowych:

  • Zrozumienie podstaw REST, protokołu HTTP,

10. Bezpieczeństwo i Testowanie:

  • Zabezpieczanie aplikacji przed atakami - Cross-Site Scripting, SQL Injection itp.,
  • Autentykacja i Autoryzacja z wykorzystaniem np. Spring Security
  • Testowanie jednostkowe, integracyjne i end-to-end.

11. Rozwój Umiejętności Soft Skills:

  • Komunikacja zespołowa i umiejętność pracy w grupie.
  • Rozwiązywanie problemów i kreatywne myślenie.

12. Ciągłe Doskonalenie:

  • Śledzenie nowości w świecie Javy i technologii z nią związanych.
  • Uczestnictwo w konferencjach, meetupach, kursach online.

 

Oczywiście, to tylko ogólny zarys, który można jeszcze bardziej szczegółowo opracować, zmienić pewne pkt, czy nawet je pominąć analizując każdy z tych etapów w głębszym kontekście. Jestem pewien, że przyszła seria wpisów na blogu, opisująca każdy etap wraz z przykładowym repozytorium kodu oraz omówieniem przypadków, będzie niezwykle wartościowym źródłem wiedzy i wykonam ja dla was z czasem.

Podsumowanie

 

Chciałbym, abyś z tego wpisu zapamiętał następujące kluczowe przemyślenia:

  • Zadaj sobie pytanie, czy twoim prawdziwym celem jest stanie się programistą, czy też może wpłynęły na ciebie jedynie atrakcyjne obietnice łatwych zarobków lub szybkiego osiągnięcia tytułu programisty.
  • Czerp radość z każdej linijki kodu, którą tworzysz. To proces, który powinien dostarczać ci przyjemności i satysfakcji.
    Nie bój się tworzyć kodu "spaghetti". To naturalna część procesu nauki i rozwoju. Ważne jest, abyś stawiał pierwsze kroki i nieustannie się rozwijał.
  • Pamiętaj, że wartość nadrzędną ma zasada: "Kodź , koduj i kontynuuj kodowanie"
  • Dążenie do autentycznego celu, radość z procesu tworzenia, akceptacja własnych początków oraz nieustanne doskonalenie umiejętności stanowią fundamenty udanej drogi programistycznej.

 

3
[spring boot, java, junior]

Więcej od Dominik Martyniak

Więcej artykułów