Below are the sources from which, in my opinion, it is best to learn Java programming.

Updated on January 15, 2024. —-

Where not to learn Java

Equally, if not more important, is identifying the sources and places through which we do not learn programming in Java.

StackOverflow

The basic thing is that we do not learn programming in Java from the website StackOverflow. When looking for solutions to a problem on the Internet, we often get results from www.stackoverflow.com. On this website you will find solutions to problems that work, but which require subsequent independent and in-depth analysis of the problem.

If we use StackOverflow only to solve a current problem, it will quickly turn out that we will not be able to solve a similar problem on our own because we will lack the necessary knowledge. Stackoverflow is very useful for solving problems, but it cannot replace solid theoretical knowledge.

Personally, I compare learning programming using StackOverflow to exercising at the gym and building muscle mass using stimulants. We can quickly obtain satisfactory results, but our form can return to the starting point just as quickly.

ChatGPT – AI tools

Update January 15, 2024 We do not learn programming in Java (and not only) using ChatGPT and other tools using artificial intelligence (AI), which searches for information, draws conclusions and generates source code for us . More than once, I have seen my students doing their homework using ChatGPT. In most cases I heard 3x NO. Do you know how this code works? Is this code correct? Do you know how to extend this code?

GitHub Copilot – AI tools

Updated January 15, 2024 GitHub Copilot is a very helpful tool, but only for a person who can program in any programming language. To put it very simply, using Copilot in a selected IDE, e.g. IntelliJ, means that literally placing any character - anywhere in the source code - generates very well-tailored code that results from a given context. It takes a lot of work and learning to write such code yourself.

Przydatne książki i strony do nauki języka Java – GitHub Copilot showcase – Mentor Junior Java Developer

I am not against AI tools used to write source code, it just needs to be done wisely.

Where to learn Java

So, where and how to learn Java programming and more, below are the best sources in my opinion.

Oficjalna dokumentacja

The main source of knowledge should be Oracle documentation from the website of the owner of the Java language, i.e. Oracle The Java™ Tutorials for Java SE (Standard Edition), Java EE Tutorials for Java EE (Enterprise Edition). The form of the documentation does not encourage you to use the knowledge gathered there, but in my opinion it is worth starting to learn Java using the official documentation. Oracle is trying to make the documentation more beginner-friendly at Java Tutorials Learning Paths.

Update January 15, 2024 Fortunately, you can now find a refreshed version of the official documentation https ://dev.java/. It looks very good and you can easily find the topics you are interested in. An interesting option is Playground, which allows you to execute Java code in the browser https://dev.java/playground/ Additionally, Playground has code examples that you can run.

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:

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.

Polishing the skills of a programmer

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.