Z czego uczyć się programowania (Java)?

Last modified date

Comments: 0

antoniskousoulas, pixabay.com

Naukę programowania rozpocząłem całkiem niedawno, bo zaledwie kilka miesięcy temu. Póki co nie jestem jeszcze nawet juniorem, uczę się na własną rękę i zaczynam rozwijać swoje projekty. Chcę się jedna podzielić kilkoma rekomendacjami materiałów do nauki Javy – chodzi o rzeczy, z których sam skorzystałem i z których nadal korzystam.

Poszukiwanie wartościowych kursów do nauki programowania pochłania mnóstwo czasu, który mógłbyś poświęcić na samą naukę. Dlatego uważam, że warto umieszczać w sieci takie rekomendacje, jak ta – samoukom pozwalają one usprawnić proces edukacji. Do tego czuję się zobowiązany wobec kilku osób udostępniających w internecie za darmo dobrze opracowane materiały edukacyjne. Dużo skorzystałem na ich pomocy i chciałbym teraz się odwdzięczyć chociaż w tak minimalny sposób, jak poprzez umieszczenie linka do ich strony lub kanału YouTube.

Dla ułatwienia wyboru odpowiedniego kursu Javy lub materiału edukacyjnego, podzieliłem je na typy: kursy wideo, bazy wiedzy oraz książki. Jeżeli w przyszłości będę widział, iż podział ten wymaga aktualizacji, przeprowadzę ją na bieżąco. Do każdego źródła daję krótki opis wraz z informacją, czy są to materiały w języku polskim czy w języku angielskim.

Java – kursy wideo:

1. JavaStart

Miejsce w sieci, które już na początku przygody z Javą zyskało ogromne znaczenie, a obecnie ich rola w mojej edukacji tylko rośnie. Trafiłem do nich za sprawą udostępnionych za darmo materiałów edukacyjnych, w ramach Bazy Wiedzy. Mimo, że są to materiały darmowe (opisy plus nagrania), wg mnie są świetnie zrealizowane, rzeczowo i bardzo zrozumiale. Nie raz i nie dwa razy JavaStart pomagała mi zrozumieć jakiś aspekt Javy, który na innych stronach był wytłumaczony tak mętnie, że niewiele z tego rozumiałem. Wspomnę jeszcze, że te materiały wideo dobrze się ogląda, ze względu na przyjemny, spokojny głos prowadzącego.

Zachęcony ich darmowymi materiałami, zdecydowałem się na zakup płatnego kursu. Na razie jest to Kurs Javy – podstawy. Z tego względu, że zanim go zacząłem, sporo już zrobiłem w oparciu o inne kursy online, pierwsze rozdziały z kursu JavaStart to było ponowne przerabianie już znanych tematów. Jednak nie był to czas stracony, ponieważ materiały są bardzo sensownie opracowane i często łatały istotne dziury w mojej wiedzy,  pozwalając mi w pełni zrozumieć elementy języka, które dotychczas stosowałem, lecz nie do końca rozumiałem kryjącą się za nimi mechanikę.

Jestem pewien, że po zakończeniu kursu podstawowego,wykupię też pozostałe kursy JavaStart, chociażby Javy EE, Springa czy tworzenia aplikacji w Androdzie. Jeżeli zachęciłem Cię do skorzystania z ich usług, dokonując zakupu użyj przypisanego do mnie kuponu rabatowego: POLECAM12105. Dzięki niemu dostaniesz 5% zniżki, a ja otrzymam środki na wykupienie kolejnego kursu lub przedłużenie już subskrybowanych (JavaStart sprzedaje kursy w formie rocznych subskrypcji).

Język: polski

Dlaczego warto: dobrze opracowane materiały, dające praktyczną biegłość, ale też teoretyczne zrozumienie.

 

2. Jak nauczyć się programowania

Jest to kanał YouTube Kamila Brzezińskiego. To jedno z pierwszych miejsc, które odwiedziłem w sieci, gdy zacząłem szukać materiałów o programowaniu. Wtedy nie podjąłem jeszcze decyzji, że zacznę od Javy. Myślałem raczej o Pythonie, jednak przeanalizowanie zastosowań różnych języków pozwoliło mi stwierdzić, iż Java da mi większe pole popisu w realizowaniu swoich projektów, a uważam, że to one są kluczem do zdobywania kompetencji, przynajmniej na początkowym etapie. Kamil pchnął mnie w kierunku Javy, chociaż wcale jakimś zdeklarowanym javowcem nie jest. To, za co cenię ten kanał i za co zawsze będę miał do niego sentyment, to materiały nie stricte edukacyjne, ale dotyczące rozterek człowieka wchodzącego do tej branży, jak też specyfiki pracy na stanowisku programisty. Niezależnie od tego, Kamil umieszcza też tutoriale, np. Tworzenie serwisu społecznościowego, który zamierzam jeszcze przerobić.

Język: polski

Dlaczego warto: inspiruje i podtrzymuje energię do nauki, wprowadza w świat programowania, przy czym prowadzący jest rozsądny i można skorzystać z jego nietendencyjnych opinii.

 

3. Caleb Curry

Anglojęzyczny kanał YT, na którym przerobiłem cały kurs wprowadzający do Javy. Był to taki sprint po Javie – nie skupiałem się zbytnio na praktyce, głównie słuchałem tego, co Caleb miał do powiedzenia. Jest on konkretny i zabawny. Jak sam stwierdza na początku: “I don’t have the goal to bore you to death. I’m going to try make everything entertaining and fun”. Ten kurs to wg mnie dobre wprowadzenie, przegląd tego, co musisz opanować. Da ci podstawową wiedzę, zazwyczaj wystarczającą do prostych implementacji danych elementów języka. Jednak często brakuje tu solidnej podbudowy teoretycznej – uczysz się, jak coś działa, ale nie wiesz, dlaczego tak działa, więc w każdej niestandardowej sytuacji taka wiedza okazuje się niewystarczająca. Jest to dobry punkt wyjścia, ale nic więcej.

Oprócz kursu, który wymieniłem powyżej. Caleb Curry ma na swoim kanale także inne materiały edukacyjne – z Javy (np. robienie apek na Androida), Pythona czy ogólnie dotyczące teorii programowania, np. algorytmów.

Język: angielski

Dlaczego warto: szybkie i rzeczowe (cały kurs od podstaw to nieco ponad 6 godzin) wprowadzenie do Javy, lekkie i z humorem, prowadzący jest sympatycznym lekkoduchem i ma ładny, przyjemny w słuchaniu głos.

 

4. Alex Lee

Tutaj przechodziłem, gdy już przerobiłem materiał Caleba Curry’ego i szukałem czegoś nieskomplikowanego, do przyswojenia przez już zmęczony mózg. Alex daje podstawy Javy, wytłumaczone w prosty i zrozumiały sposób. Mam wrażenie, iż prowadzący sam uczy się obecnie programowania w Javie i na bieżąco tworzy kurs, jako sposób na uporządkowanie zdobywanej wiedzy. Jest to dobre źródło podstawowej wiedzy o Javie.

Język: angielski

Dlaczego warto: prosto wytłumaczone podstawy języka Java. Dobre na start w nauce programowania.

Java – książki:

1. „Java: podstawy”, Cay S. Horstmann

Gdy zaczynałem naukę Javy, trafiłem na informacje, że ta książka to “biblia” programistów Javy i niezbędnik w każdej biblioteczce programistycznej. Więc trafiła na moją półkę jako pierwsza. Nie wiem, czy to był dobry wybór. Książka zawiera ogrom wiedzy, jednak wiedza ta nie jest przedstawiona w sposób zbytnio przyjazny dla czytelnika. Łatwo się pogubić w wywodach autora, ponieważ nie stosuje on praktycznie żadnych technik dydaktycznych ułatwiających przyswajanie tak wielkiego zasobu wiedzy. Wchodząc w jakiś temat, dostajemy go zazwyczaj od razu z mnóstwem szczegółów i dodatkowych aspektów, które tak naprawdę na początkowym etapie nauki nie są kluczowe, a jedynie powodują zgubienie głównego sensu danej funkcji w natłoku pobocznych detali. Do tego przykładowe programy często napisane są tak, że samo zrozumienie sensu implementacji jest problematyczne, więc zamiast analizować kod, trzeba najpierw analizować, co autor chce tu osiągnąć. Jest to męczące.

Czy więc “Java: podstawy” to książka zła? Nie, to książka bardzo dobra, jednak swoista. Akademicka i odpychająca. To, co jest jej wadą na początkowym etapie nauki, okazuje się ogromną zaletą na następnych etapach. Dlatego polecam publikację Horstmanna jako kolejne źródło we wdrażaniu się w jakieś zagadnienie. Na początek można sobie nowy temat przerobić na czymś tak powierzchownym jak np. kurs wideo Caleba Curry (opisany w sekcji wideo), uzupełnić to dodatkowymi informacjami, napisać podstawową implementację i wtedy sięgnąć po “Java: podstawy”. Zazwyczaj właśnie tak robię i dotychczas za każdym razem okazywało się, że książka ta, wykorzystywana w takim trybie, świetnie uzupełniała luki w mojej wiedzy i dawała mi gruntowne pojęcie o danych elementach języka. Do tego, gdy ma się już ogólne rozeznanie w danym temacie, “Java: podstawy” przestaje odpychać i męczyć – czyta się ją z przyjemnością, bo zawiera mnóstwo użytecznych informacji.

Język: polski

Dlaczego warto: mnóstwo gruntownej, teoretycznej i praktycznej wiedzy o Javie.

2. “Algorytmy. Ilustrowany przewodnik”, Aditya Y. Bhargava

Nie jest to stricte podręcznik programowania, a już na pewno nie jest to podręcznik Javy. Umieściłem go jednak na tej liście, bo świetnie się spełnia w tej roli. W książce opisane są różne typy algorytmów, czyli programistycznych sposobów na rozwiązywanie problemów. Każdy z nich jest gruntowanie wyjaśniony, przeanalizowany oraz podane są jego parametry, takie jak chociażby złożoność obliczeniowa czy czas wykonania, które są istotne w momencie podejmowania decyzji, jaki algorytm do danego zadania zastosować.

Brzmi groźnie? Mimo mocno syntetycznej, “twardej” tematyki, książkę czyta się bardzo przyjemnie. Są to niezwykle ciekawe zagadnienia, które oprócz tego, iż miło pobudzają umysł, to na pewno przydadzą się w praktyce każdego programisty (jak pisze autor – programowanie to nie tylko znajomość komend i narzędzi, ale też sposobów na rozwiązywanie problemów). Jeżeli ktoś jest wzrokowcem, to ta publikacja jest również dla niego – wyjaśnienia są często uzupełniane czytelnymi ilustracjami.

Wszystkie opisywane algorytmy zostały uzupełnione o przykłady w postaci kawałków działającego kodu. I tu jest to, co mi sprawiło najwięcej frajdy – kod jest w Pythonie, więc po każdym rozdziale siadałem do IDE i pisałem własną wersję na Javę. Zadanie to nie wymagało stosowania zbyt wielu elementów języka, było za to rozwijające pod innym względem – wymagało zbudowania skutecznej logiki implementacji. Zazwyczaj nie oznaczało to tworzenia rozbudowanego programu, ale skonstruowania mechanizmu na tyle sprytnego, że kilkoma linijkami kodu, często wykorzystującymi rekurencję, rozwiązywało zadany problem. Bardzo satysfakcjonujące i pouczające.

Język: polski
Dlaczego warto: ciekawa tematyka, dobrze wytłumaczona, bardzo rozwijające ćwiczenia.

Maciek

O AUTORZE: Czterdziestolatek, szczęśliwy mąż i tato. Bardzo lubię czytać, zarówno książki fabularne, jak i wiedzowe, chociaż ostatnio mam na to niewiele czasu. Hobby to także granie, obecnie na PS4 (z grami komputerowymi jestem zrośnięty jak z książkami, bo gram od czasów 8-bitowego Atari). Pisać lubię i muszę - to od zawsze moja naturalna potrzeba. Tego bloga założyłem, aby od czasu do czasu tę potrzebę zaspokoić.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Post comment