Jak nauczyć się programowania w sieci? Tutoriale – subiektywnym okiem.

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

 

IT-Leaders.pl to pierwsza na rynku platforma łącząca Specjalistów IT bezpośrednio z pracodawcami. Anonimowy, techniczny profil i konkretnie określone oczekiwania finansowe to tylko niektóre z cech wyróżniających platformę. Zarejestruj się i zobacz jak Cię widzi pracodawca.

Może Ci się również spodoba

11 komentarzy

  1. Dur napisał(a):

    Autor ma podobną historię do mojej – projektant/konstruktor szkoli się online żeby przejść do IT 🙂 Widze że Autor zrobił to wczesniej ode mnie i wybrał Javę. Ja postawiem na Pythona.
    Dla początkujących można polecić jeszcze codecademy.com – sporo kursów programowania w różnych technologiach.

    A jak dalsze losy Autora się potoczyły? Czy po 0,5 roku nauki udało się gdzieś jako junior zaczepić lub na staż?
    Powodzenia wszystkim samoukom programowania! Nie poddawajcie/-my się za nic w świecie!

    • IT-Leaders napisał(a):

      My też życzymy powodzenia!:-) ps. autor tekstu rozpoczyna właśnie pracę jako Java Junior 🙂

    • Marek napisał(a):

      Hej! Miło że pytasz i wybacz za opóźnioną odpowiedź (zagubiłem gdzieś ten artykuł i nie przeglądałem komentarzy ;-)). Akurat pisząc to jestem właśnie po drugim dniu pracy jako junior!

      Śmiało uważam że jeżeli czujesz się mocny w danym języku możesz szukać oferty stażu/juniora 🙂 od siebie polecę jeszcze zaznajomienie się z tematyką relacyjnych baz danych – z tego co zauważyłem bardzo dużo ofert pracy wymaga chociaż podstawowej znajomości języka SQL. Jeżeli chcesz możesz się ze mną skontaktować na marek.aureliusz.makuch@gmail.com i wymienić konstruktorsko-programistycznymi doświadczeniami! 😀

      Powodzenia!

  2. jupi :) napisał(a):

    Tego było mi potrzeba, dziękuje – mam nadzieję, że i ja za 1/2 roku będę po pierwszej rozmowie kwalifikacyjnej jako java junior 🙂

  3. Ania napisał(a):

    Dzięki za umieszczenie naszego bloga w tym zestawieniu (naszego, bo drugim autorem jest Jakub ;)). Kurs bardzo praktycznie podchodzi do programowania w Javie i faktycznie czasem celowo omija pewne tematy, albo po prostu do nich linkuje, zachęcając do samodzielnej pracy. Niemniej, wlasnie w ten sposób ponad 2 lata temu uczyłam się programowania i mi takie podejście najbardziej przypadło do gustu. Super, że w zestawieniu pojawiły się różnorodne pozycje, bo uczymy się w rożny sposób, wiec łatwiej bedzie znaleźć coś co odpowiada – a dobrze dopasowane materiały to połowa sukcesu 😉

    • IT-Leaders napisał(a):

      pozdrawiamy Was i życzymy samych zadowolnych kursantów:)

    • Marek napisał(a):

      Hej! Masz racje – przeproś Kubę ode mnie za to że zapomniałem o nim wspomnieć! Wasz blog i Twoja historia przerzucenia się do IT były jednymi z pierwszych materiałów na jakie trafiłem – zresztą poleciłbym je wszystkim tym którzy również chcą przerzucić się do branży IT. Oprócz kursu sporo jest u Was też wiedzy „okołoprogramistycznej” która przyda się chyba każdemu stawiającemu swoje pierwsze kroki branży. No i świetnie się Was czyta! 🙂

  4. Kuba napisał(a):

    Witam,

    ja również mam podobną przygodę co Autor za sobą 😉 Niestety mi znalezienie pierwszej pracy zajęło rok po rozpoczęciu nauki Javy.
    Po zdobyciu absolutorium, a przed obroną zatrudniłem się jako architekt/konstruktor i na tym właśnie stanowisku miałem pierwszą przygodę z programowaniem – pisaniem LISPów do usprawniania mojej i moich kolegów pracy. Po obronie z nudów umysłowych (jak człowiek całe życie się uczy, to potem ciężko przestać :P) postanowiłem zacząć uczyć się Javy.
    Zdobycie pierwszej pracy zajęło mi dłużej, ale to pewnie dlatego, że nie mogłem poświęcić codziennie kilku godzin na naukę, bo jednak po 8h pracy przy komputerze nie zawsze miałem siły by siedzieć na kodem i jeszcze przyswajać nowe zagadnienia.
    Naukę zacząłem własnie od prostych tutoriali i książek z serii Java for Beginners, jednak szybko się one nudzą, nawet późniejsze bardziej zaawansowane lekcje. Wg mnie najważniejszym jest mieć pomysł – moim pierwszym był dość specyficzny kalkulator, dzięki któremu nauczyłem się podstaw swinga (wygląd, input/output, itp), zastosowanie różnych pętli, itp. Istotne jest to, by wiedzieć co się chce – a potem w internecie bardzo łatwo znaleźć odpowiedź – byle tylko nie przepisać jej bezmyślnie tylko popatrzeć jak jest zbudowany dany kod, rozbić go na części pierwsze, ustalić dlaczego tak a nie inaczej to działa.

    Osobiście mogę polecić tutoriale:
    http://javastart.pl/ (czasami zdarzają się błędy w kodzie, czasami brakuje jakiegoś wyjaśnienia, ale ogólnie bardzo przyjemna strona)
    https://www.codecademy.com/ (niektóre tutoriale są zbyt krótkie, niektóre zbyt długie. Wielkim minusem jest brak możliwości powtórzenia kursu – albo nie znalazłem takiej opcji 😛 – bez podglądu wcześniej napisanego kodu)

    Jeśli komuś brakuje pomysłu, co mógłby napisać polecam tutoriale do pisania gier 😉

    https://www.youtube.com/user/RealTutsGML/playlists
    https://www.youtube.com/user/TheChernoProject/playlists
    https://www.youtube.com/user/ThinMatrix/playlists

    Pozdrawiam i życzę powodzenia Autorowi w dalszym rowoju!

    • Marek napisał(a):

      Rok to i tak bardzo krótko, biorąc pod uwagę to że pracowałeś również po 8 h na komputerze codziennie – serio znam to z autopsji i wiem jak to potrafi skutecznie odstraszyć od nauki.

      Rzeczywiście świetną radą jest próba napisania jakiegoś małego programu – u mnie w przypadku Swinga był to program do zarządzania bazą klubów/pubów w których wraz z zespołem mieliśmy grać koncerty. Koniec końców i tak program leży gdzieś tam niedokończony – ale materiał od razu szybciej i lepiej się przyswaja 🙂

      Dzięki za komentarz i również życzę powodzenia!