Internet to kopalnia wiedzy o programowaniu. W sieci pełno jest darmowych i płatnych materiałów do nauki programowania na różnych poziomach zaawansowania. Dla osób, które chcą samodzielnie nauczyć się jednego z języków, nie lada wyzwaniem jest odnalezienie się w dostępnych tutorialach.

Tę ścieżkę ma już za sobą autor niniejszego atrykułu, który po dwóch latach pracy na stanowisku projektanta/ konstruktora postanowił przebranżowić się w kierunku programowania w języku Java. Dla nas przygotował ocenę poszczególnych witryn i oferowanych kursów online.

Kiedy pół roku temu podjąłem decyzję o tym, że zacznę uczyć się programowania, poczułem się znowu jak na pierwszym roku swoich ukochanych studiów na Politechnice Wrocławskiej – zagubiony jak jasna cholera. Nie odróżniałem Javy od JavaScriptu, nie miałem nawet pojęcia, jakiego właściwie języka chcę się uczyć, a pojęcie „int” kojarzyło mi się raczej ze statystykami postaci w grze RPG niż z jakąkolwiek zmienną.

Całe szczęście dosyć szybko podjąłem decyzję co do języka (dzięki Bogu za wrodzoną zdolność podejmowania szybkich i nieprzemyślanych decyzji) i wybrałem Javę . Jednak ten jeden szybki i nieprzemyślany wybór zrodził kolejny problem – jak rozpocząć naukę? Czy zaczynać od organizowanych w mieście bootcampów? Czy zaopatrzyć się w każdą książkę ze słowem „Java” i „początkujący” w tytule? Czy może szukać wiedzy w Internecie? Krótkie wyszukiwanie cen bootcampów i szybki rzut okiem na stos książek do przeczytania (które de facto w większości utrzymują ten status do dziś) – a już wpisywałem w wyszukiwarce frazę „Java tutorials for begginners”.

Pół roku później, kiedy siedzę sobie wygodnie w łóżku, piszę ten artykuł i oczekuję swojej pierwszej pracy jako Junior, mogę stwierdzić jedno – sieć to niesamowita kopalnia wiedzy o programowaniu.

Łatwo jednak jest się w tej sieci zgubić – źródeł jest ogrom i ciężko zdecydować, od czego zacząć. Postanowiłem więc podzielić się z Wami moją wiedzą na temat internetowych kursów i dać wam moją subiektywną opinię na temat poszczególnych portali z których korzystałem, bądź które odwiedzałem w czasie mojej nauki. Mam też cichą nadzieję, że pomoże to wszystkim tym, którzy tak samo jak ja, rzucają się z motyką na księżyc i chcą od zera nauczyć się programowania.

Gotowi? Zaczynamy!

Jest to strona z której korzystam do dzisiaj! Mój osobisty faworyt jeżeli chodzi o naukę programowania Javy. Kursy jakie możemy znaleźć to między innymi Java SE, Java EE, Spring, Swing, MySQL, wzorce projektowe, C++, Perl – wszystko prowadzone jest w bardzo przyjemnym tempie (być może dla osób które mają już do czynienia z programowaniem może być ciut za wolno), zawartość kursów jest ogromna (sama podstawowa Java to prawie 30 godzin zajęć!), niektóre tutoriale są darmowe zaś te, które są płatne mają bardzo przystępne ceny (w granicach maks. do 100zł za kurs). Największym zaś plusem tej witryny jest sam nauczyciel – John Purcell. Niesamowity człowiek – zawsze chętny do pomocy, odpowiada na praktycznie każdy komentarz, pomaga w zrozumieniu tematu, odpowiada na e-maile – a na dodatek jest to bardzo inspirująca postać (sam zaczynał naukę programowania w wieku 24 lat nie mając żadnego doświadczenia w tej dziedzinie). Polecam serdecznie każdemu!

Plusy:
+ zawartość kursów,
+ jakość kursów,
+ cena,
+ dogłębne wytłumaczenie tematu na przykładach,
+ John Purcell!

Minusy:
– kursy jedynie w języku angielskim!

Każdy kto uczy się programowania ze źródeł internetowych na pewno prędzej czy później trafi na tą stronę. Witryna ta funkcjonuje na zasadzie internetowej bazy kursów na każdy możliwy temat – począwszy od gotowania, poprzez marketing aż do programowania. Strona jest cała w języku angielskim – kursy w większości też (przy czym należy zwrócić uwagę na lektora, gdyż może się zdarzyć, iż będzie miał bardzo ciężki do zrozumienia, egzotyczny akcent). Plusem jest różnorodność tematyki – minusem to, że nie zawsze musimy trafić na kurs wypełniony wartościową treścią. Warto kierować się opiniami oraz ilością uczniów danego kursu – daje to co nieco pogląd na jego zawartość. Sam mogę polecić z tej strony kursy Tim’a Buchalki (Android 7.0*, Java, Python, GitHub*) czy Bena Tristema (Unity*, C#*) ponieważ sam korzystałem z tych kursów (te z gwiazdką przerabiam, bądź przerobiłem J).

Ceny kursów są różne – są kursy darmowe, są kursy płatne nawet 150$. Bardzo często jednak pojawiają się również przeceny – wtedy cena kursu potrafi spaść z 200$ do 15$ – co jest już w zasięgu ręki. Dodatkowo w portalu istnieje opcja zwrotu pieniędzy do 30 dni – aczkolwiek sam nigdy z tej opcji nie korzystałem. Ponadto do kursów dołączone są również fora dyskusyjne – na których można wymieniać się wiedzą z innymi uczestnikami kursu.

Plusy:
+ różnorodność kursów,
+ możliwość zwrotów,
+ fora dyskusyjne,
+ promocje, kursy darmowe,
+ aplikacja mobilna – możesz uczyć się w każdej wolnej chwili!

Minusy:
– czasem problematyczne może być znalezienie wartościowego kursu,
– strona całkowicie w języku angielskim,
– niektóre ceny potrafią odstraszyć.

Ta strona nie jest samą w sobie stroną poświęconą nauce programowania, natomiast znajdują się na niej liczne ćwiczenia z Javy oraz Pythona.  Polegają one na tym, iż dostajesz krótkie zadanie logiczne do wykonania, np. napisać krótki program mający wynajdywać w ciągu znaków określone sekwencje. Zadania typowo na rozwój myślenia programistycznego – bardzo przydatne podczas codziennego programowania oraz rozmów kwalifikacyjnych. Dodatkowo każde zadanie ma swoją gamę testów – dzięki którym dowiadujesz się, w których miejscach wynik Twojego programu różni się od zakładanego na początku. Małym minusem jest brak niekiedy objaśnień do niektórych zadań – może to czasem zirytować, gdy jako początkujący zatniesz się na jakimś zadaniu i nie będziesz mógł do niego znaleźć rozwiązania.

Plusy:
+ sporo zadań które pomogą Ci się rozwinąć,
+ łatwość weryfikacji wyników,
+ dane które pomogą Ci śledzić Twój progres!

Minusy:
– Strona w języku angielskim,
– brak objaśnień niektórych zagadnień.

Strona która podobnie jak Udemy zawiera sporą ilość kursów na szerokie spektrum tematów. Niektóre kursy są prowadzone przez prowadzących z Harvardu, Berkley, MIT i innych renomowanych zagranicznych uczelni. Trafiłem tam głównie ze względu na darmowy kurs CS50 (Introduction to Computer Science) który serdecznie polecam wszystkim osobom, które nie mają zielonego pojęcia o architekturze komputerowej. Nie ukończyłem tego kursu (Android okazał się dużo ciekawszy J) ale podczas wszystkich wykładów czułem się jakbym był studentem siedzącym na Sali wykładowej (w pozytywnym tego słowa znaczeniu!).

Kurs CS50 oferuje podstawy kilku języków (głównie C), podstawy algorytmiki, ASCII, sporo zadań do zrobienia oraz kompilator w chmurze do użytku i sprawdzania swoich osiągnięć. Dodatkowo kursant ma również możliwość uzyskania certyfikatu po każdym ukończonym kursie – jest to jednak dodatkowo płatna przyjemność, która niekoniecznie jakkolwiek wpływa na naszą atrakcyjność na rynku pracy. Co do cen – niektóre kursy są darmowe (jak chociażby CS50) inne zaś potrafią kosztować nawet 3000$ (co nie dziwi ze względu na ich akademickie podłoże). Strona mimo wszystko warta uwagi – darmowy content jest na wysokim poziomie, z transkrypcjami, bibliografią etc. Pełna profeska!

Plusy:
+ mnogość kursów,
+ transkrypcje wykładów (czasem dostępne są nawet tłumaczenia),
+ zadania,
+ możesz poczuć się jak student renomowanej uczelni:-)

Minusy:
– czasem zbyt wolne tempo,
– ceny!
– jak poprzednio – język angielski!

Strona która wpada w taką samą kategorię jak www.udemy.com. Kursy skupiają się jednak bardziej na kategoriach związanych z programowaniem – 90% kursów dotyczy nowoczesnych technologii. Uczestniczyłem tutaj w jednym kursie, dotyczył on programowania w Javie dla początkujących. Kurs był bardzo dobrze przygotowany, jednak zraził mnie do siebie używaniem totalnie beznadziejnego IDE (BlueJ) oraz niesamowicie wolnym tempem. Nie podważam jednak jakości innych kursów, które znajdują się na stronie – a jest ich cała masa i o ciekawej tematyce (VR, Android, Artificial Intelligence). Kursy są płatne (tzw. Nanodegree) oraz bezpłatne. Czy polecam? Ciężko mi się wypowiedzieć – ten pierwszy kurs bardzo zraził mnie do witryny, jednak zawartość innych polecanych kursów coraz bardziej sprawia że mam ochotę powrócić do tej Udacity i dać im jeszcze jedną szansę. Musisz spróbować sam!

Plusy:
+ różnorodna tematyka kursów,
+ zadania,

Minusy (subiektywne, oparte na jednym kursie!):
– wolne tempo,
– ceny kursów nanodegree,
– język angielski.

W końcu dochodzimy do naszej rodzimej pozycji! Mówię tutaj o kanale Youtube „Pasja Informatyki” który prowadzi pan Mirosław Zelent. Mimo że z bogatej oferty kursów, które się tutaj znajdują skorzystałem tylko z jednego (chociaż mam zamiar powrócić tu w przyszłości gdy podszkolę się z technologii, które w tym momencie najbardziej mnie interesują) to polecam ten kanał w 100%. Czemu? Otóż oprócz kursów znajdują się tu również materiały o innej tematyce – dotyczące ciekawych zagadnień w matematyce oraz psychologii – i już tutaj pan Mirosław sprawdza się niesamowicie, potrafi opowiadać w sposób ciekawy oraz uporządkowany, przy okazji przekazując ogromną ilość konkretnej wiedzy. Polecam!

Plusy:
+ Język Polski,
+ duży zakres materiału,
+ dobre tempo,
+ darmowy dostęp do wszystkich materiałów,
+ ciekawe filmy o tematyce niezwiązanej z programowaniem.

Minusy (subiektywne, poparte na jednym kursie!):
– brak!

Pomimo nazwy, ta strona oferuje dużo dla aspirujących programistów obu płci. Jest to blog pani Ani– postanowiła ona podobnie jak ja (i prawdopodobnie Ty) zmienić coś w swojej ścieżce kariery i przekwalifikować się na specjalistę z dziedziny IT. Blog zawiera kurs Javy (pisany, brak video – przynajmniej na czas kiedy ostatnio przeglądałem bloga) który zawiera w sobie takie ważne tematy jak Spring, Maven łączenie z bazami danych. Oprócz tego posiada on również mnóstwo wpisów około tematycznych – poradnik Juniora, jak wybrać sprzęt, jak pisać czysty kod, jak przeżyć pierwsze rozmowy kwalifikacyjne… I wiele, wiele innych – polecam tą stronę głównie ze względu na wpisy około-programistyczne gdyż kurs dla osoby totalnie zielonej w dziedzinie może być troszkę zbyt trudny.

Plusy:
+ Język Polski,
+ świetne materiały z ogólnej tematyki IT,
+ szeroki zakres kursu Javy,
+ darmowy dostęp do wszystkich materiałów.

Minusy (trochę na siłę):
– dla totalnie początkujących kurs może być trochę zbyt szybki (?).

W minusach bardzo często wpisywałem język angielski – wiem, że nie dla każdego jest to problem, ale warto o tym wspomnieć. Sam język używany w kursach zazwyczaj nie jest zbyt skomplikowany – dla tego osoby z poziomem języka A2 mogą śmiało próbować (ewentualnie wspierać się google tłumaczem). Warto też nadmienić, że język angielski jest podstawowym językiem informatyki – dobrze jest uczyć się wszystkich pojęć właśnie w tym języku.

Dodam również, że wszelkie problemy początkujących zazwyczaj udaje się rozwiązać prostym sposobem – wpisując w google dane zagadnienie i szukając odpowiedzi na takich stronach jak
stackoverflow.com czy coderanch.com. Zapewniam was – podczas nauki stackoverflow będzie najczęściej odwiedzaną przez Was stroną;-).

Zbiór powyższych stron/kursów powstał na drodze moich własnych doświadczeń. Oceny są mocno subiektywne, oraz odwołują się zazwyczaj do zagadnień związanych z Javą (chociaż nie tylko). Warto żebyś sam/sama spróbował zajrzeć na każdą z tych stron i szukał czegoś dla siebie – być może strona która niespecjalnie mi podpasowała będzie idealnym miejscem nauki dla Ciebie. W zasadzie nie ma na co czekać – najgorsze co możesz zrobić to skupić się na samym szukaniu źródeł a nie na nauce danego języka.

Na co więc czekasz?

Google w „dłoń” i do roboty!:-)

Marek Makuch