Poniżej przedstawiam źródła, z których moim zdaniem najlepiej uczyć się programowania w języku Java.
–— Aktualizacja 15 stycznia 2024 r. —-
Gdzie nie uczyć się języka Java
Równie ważna, jak nie ważniejsza jest identyfikacja źródeł, miejsc za pomocą, których nie uczymy się programowania w języku Java.
StackOverflow
Podstawowa sprawa, nie uczymy się programowania w języku Java ze strony StackOverflow. Szukając w internecie rozwiązań jakiegoś problemu często otrzymujemy wyniki ze www.stackoverflow.com. Na tej stronie znajdziemy rozwiązania problemów, które owszem działają, ale które wymagają późniejszej samodzielnej i dogłębnej analizy problemu.
Jeżeli korzystamy ze StackOverflow tylko po to, żeby rozwiązać bieżący problem, to szybko okaże się, że nie będziemy w stanie samodzielnie rozwiązać podobnego problemu, bo będzie brakować nam niezbędnej wiedzy. Stackoverflow jest bardzo przydatny do rozwiązywania problemów, ale nie zastąpi rzetelnej wiedzy teoretycznej.
Osobiście naukę programowania za pomocą StackOverflow porównuję do ćwiczenia na siłowni i budowania masy mięśniowej z wykorzystaniem środków dopingujących. Możemy szybko otrzymać zadowalające wyniki, ale równie szybko nasza forma może wrócić do punktu wyjścia.
ChatGPT – narzędzia AI
Aktualizacja 15 stycznia 2024 r. Programowania w języku Java (i nie tylko) nie uczymy się za pomocą ChatGPT oraz innych narzędzi wykorzystujących sztuczną inteligencję (AI), która za nas wyszukuje informacje, wyciąga wnioski i generuje kod źródłowy. Nie raz widziałem jak moi uczniowie odrabiali pracę domową za pomocą ChatGPT. W większosci przypadków słyszałem 3x NIE. Czy wiesz, jak ten kod działa? Czy ten kod jest poprawny? Czy wiesz jak rozbudować ten kod?
GitHub Copilot – narzędzia AI
Aktualizacja 15 stycznia 2024 r. GitHub Copilot jest bardzo pomocnym narzędziem, ale dla osoby, która umie programować w dowolnym języku programowania. W dużym uproszczeniu, użycie Copilot w wybranym IDE np. IntelliJ, sprawia, że postawienie dosłownie jakiegoś znaku – w dowolnym miejscu kod źródłowego – powoduje wygenerowanie bardzo dobrze dopasowanego kodu, który wynika z danego kontekstu. Żeby samemu napisać taki kod potrzeba dużo pracy i nauki.
Nie jestem przeciwnikiem narzędzi AI wykorzystywanych do pisania kodu źródłowego, po prostu należy, to robić z głową.
Gdzie uczyć się języka Java
W takim razie, gdzie i jak uczyć się programowania w języku Java i nie tylko, poniżej podaję moim zdaniem najlepsze źródła.
Oficjalna dokumentacja
Głównym źródłem wiedzy powinna być dokumentacja od Oracle ze strony właściciela języka Java, czyli firmy Oracle The Java™ Tutorials dla Java SE (Standard Edition), Java EE Tutorials dla Java EE (Enterprise Edition). Forma dokumentacji nie zachęca do korzystania z wiedzy tam zgromadzonej, ale moim zdaniem warto jest zacząć uczyć się języka Java korzystając z oficjalnej dokumentacji. Oracle próbuje dokumentację uczynić bardziej przyjazną początkującym na stronie Java Tutorials Learning Paths.
Aktualizacja 15 stycznia 2024 r. Na szczęście, obecnie można znaleźć odświeżoną wersję oficjalnej dokumentacji https://dev.java/. Wygląda ona bardzo dobrze i łatwo można znaleźć interesujące nas zagadnienia. Ciekawą opcją jest Playground, za pomocą, którego można wykonać kod Java w przeglądarce https://dev.java/playground/ dodatkowo w Playground dostępne są przykłady kodu, które można uruchomić.
Coursera – jak na uniwersytecie
To platforma, na której możemy znaleźć różne kursy online tworzone przez uniwersytety i organizacje. Poza samym ukończeniem kursu możemy wybrać ścieżkę specjalizacji, która pozwala nam otrzymać certyfikat potwierdzający ukończenie kursu. Każdy kurs ma podaną ocenę i liczbę osób, które w nim uczestniczyły.
Kursy mają podobną formę jak na uniwersytecie, czyli musimy przystępować do kolejnych części kursu w wyznaczonych ramach czasowych (chodzić na zajęcia, aby mieć obecność), wykonać zadania domowe i zdobyć odpowiednią liczbę punktów (zaliczyć egzamin). Materiały w trakcie kursu są w formie video, ćwiczeń i teorii (pliki do pobrania). Moim zdaniem taka forma pozwala na potwierdzenie faktycznych umiejętności osoby, która zaliczyła wybrany kurs.
Dzięki temu certyfikaty wystawiane przez Coursera są powszechnie rozpoznawane i akceptowane, bo w odróżnieniu od innych kursów online nie wystarczy tylko w dowolnym czasie wysłuchać, przeklikać całego materiału, aby otrzymać 100% zdanego kursu. Samemu ukończyłem kilka kursów na Coursera i umieściłem certyfikaty na moim profilu LinkedIn.
Udemy
Możemy tutaj znaleźć bardzo dużo różnych kursów o programowaniu w języku Java i nie tylko. Oferowane kursy są w bardzo dobrych cenach, często są promocje, każdy kurs ma wystawioną ocenę w postaci gwiazdek. W odróżnieniu od wyżej opisanej platformy Coursera na Udemy nie mamy wyznaczonych ram czasowych na ukończenie kursu. Dostępne są również interaktywne ćwiczenia. Udemy po prostu zapewnia dostęp w dowolnym miejscu i czasie do wykupionego przez nas kursu, bez weryfikacji czy przyswoiliśmy sobie materiał.
Książki
Są dobrym źródłem wiedzy na temat podstaw języka Java, ale w dynamicznie zmieniającym się świecie IT oraz w programowaniu, książki szybko się dezaktualizują. Dotyczy, to przede wszystkim technologii i narzędzi dookoła samego języka Java, np. Spring Framework, Hibernate w tym przypadku dokumentacja online wygrywa z tą w wersji papierowej. W takim razie czy w ogóle warto uczyć się z książek? Myślę, że tak, poniżej lista książek, które moim zdaniem warto przeczytać z podziałem na poziomy zaawansowania czytelnika:
- Java. Rusz głową! Wydanie II – Kathy Sierra, Bert Bates – początkujący,
- Java. Podstawy. Wydanie XI – Cay S. Horstmann – średnio zaawansowany,
- Java. Efektywne programowanie. Wydanie III – Joshua Bloch – zaawansowany.
YouTube
Tutaj również możemy znaleźć bardzo dużo filmów o tym jak programować w języku Java, ale samemu będziemy musieli zrobić selekcję, bo w odróżnieniu od Coursera czy Udemy nie mamy tu kategorii czy systemu ocen danego filmu w postaci gwiazdek. Możemy jedynie posiłkować się liczbą wyświetleń i pozycji w wynikach wyszukiwania.
Polecam dwa kanały Cave of Programming i Java Brains, korzystałem z nich w trakcie mojej pracy jako Java Developer, ale każdy początkujący programista Java znajdzie coś dla siebie. W Cave of Programming znajdziemy playlistę “Java for Complete Beginners”, która jest bardzo przydatna, a do tego osoba, która prezentuje dany temat robi, to ze stoickim spokojem. Na kanale Java Brains znajdziemy bardziej zaawansowane kursy np. Spring i JavaEE, osoba, która prezentuje dany temat również robi, to ze stoickim spokojem.
Jak nie utonąć w morzu możliwości – moje podejście
Jako osoba, która zaczyna naukę programowania w języku Java spotkasz się z przytłaczającym ogromem dostępnych pomocy i mnogością rozwiązań tego samego problemu.
Jak wybrać, znaleźć “właściwe” rozwiązanie jakiegoś problemu, kiedy w internecie można spotkać wiele podobnych rozwiązań tego samego problem? Niestety nie ma jednej odpowiedzi, co robić w takim przypadku.
Ja na przykład podchodziłem do problemu w następujący sposób. Znajdowałem przynajmniej trzy rozwiązania tego samego problemu, wszystkie przepisywałem, nie robiłem copy/paste, bo wtedy bym nie nauczył się nic. Mając te trzy rozwiązania starałem się znaleźć część wspólną (nie zawsze tak się dało) i to rozwiązanie było tym końcowym. Dzięki temu mogłem poznać i nauczyć się trzech różnych sposobów pisania kodu i jednocześnie rozwiązać problem.
Dodatkowo zachęcam do zapoznania się moim artykułem Jak zmagałem się z zadaniem – etapy rozwiązywania problemów programistycznych.
Szlifowanie warsztatu programisty, programistki
W kwestii szlifowania warsztatu programisty, należy wykonać jak najwięcej ćwiczeń, tutoriali związanych z aktualnie używaną technologią i językiem. Można również skorzystać z www.codewars.com, gdzie poprzez zadania można trenować umiejętności programistyczne oraz współzawodniczyć z innymi programistami. Polecam również https://challengerocket.com/ – Solve a SkillChallenge and get immediate feedback to see if you qualify for the recruitment process. All done remotely.
Dodatkowo zachęcam do zapoznania się z moim video tutorialem, w którym przedstawiam krok po kroku jak korzystać z platformy Codewars – Jak ćwiczyć umiejętności programistyczne? Platforma CodeWars – krok po kroku, przykład Java + IntelliJ – YouTube.