Nauka programowania to proces który ma swój początek i nie powinien mieć końca. Wynika to z bardzo prostego faktu: **zmiany.**
Adam Gospodarczyk
2019-07-01
Nauka programowania to proces który ma swój początek i nie powinien mieć końca. Wynika to z bardzo prostego faktu: zmiany.
Konkretniej mówiąc, bardzo szybkiej zmiany. Znam wielu programistów, którzy nawet aktywnie wykonując swój zawód, potrafią bardzo szybko zostać w tyle, ponieważ nie wypracowali skutecznego procesu nauki. Poznawanie nowych rozwiązań i wychodzenie poza swoją strefę komfortu - ulubionej technologii czy narzędzi - powinno być stałym elementem kariery każdego programisty.
Jednak nauka dla samej nauki nie wnosi zbyt wiele do życia - to prawdopodobnie najważniejsza rzecz, którą nauczyła mnie szkoła. Często dopiero w chwili zakończenia formalnej edukacji, zaczyna się prawdziwa nauka.
Doświadczenie podpowiada mi, że proces nauki powinien być: Nieustanny, Ciekawy, Skuteczny i Efektywny.
Nieustanny oznacza, że powinien być nieodłącznym elementem każdego Twojego dnia. Z tego też względu sposób w jaki się uczysz powinien być dla Ciebie zawsze dostępny i obejmować najbardziej aktualną wiedzę. Nie zrozum mnie źle, nie chodzi o to aby poświęcać całe dnie na naukę, ale o to aby robić to codziennie, nawet jeżeli mówimy tutaj o przeczytaniu jednego artykułu na istotny temat.
Jeżeli proces nauki ma być elementem każdego Twojego dnia, dobrze byłoby zadbać również o to aby był ciekawy i sprawiał Ci frajdę. Stan ciekawości, który można porównać do chwil z naszego dzieciństwa, również świetnie wpływa na sam proces zapamiętywania ale przede wszystkim: często prowadzi nas w miejsca o których nawet nam się nie śniło.
Around here, however, we don’t look backwards for very long. We keep moving forward, opening up new doors and doing new things, because we're curious… and curiosity keeps leading us down new paths. ~ Walt Disney
Kolejną cechą procesu nauki powinna być jego skuteczność. Jeżeli angażujemy nasz najważniejszy zasób (czas) w naukę, byłoby dobrze gdyby wiązało się to z konkretnym efektem i miało realny wpływ na nasze umiejętności. W przeciwnym razie istnieje wysokie ryzyko, że stracimy motywację do dalszego działania a w konsekwencji zatrzymamy się w miejscu.
I ostatecznie proces nauki musi być efektywny. W teorii możemy nauczyć się czegoś wartościowego, poświęcając na to mnóstwo energii i czasu. W tym miejscu, kluczem jest uzyskanie balansu pomiędzy jakością a czasem potrzebnym na zdobywanie nowych umiejętności. Nie zawsze zrozumienie tematu w 100% jest wymagane, ponieważ wystarczy zrozumieć sam koncept. Efektywność nauki zależy od bardzo wielu czynników ale nie zniechęcaj się i pracuj nad tym, aby ulepszać swój proces.
Trudno jest wskazać inne obszary, które zmieniają się tak szybko jak programowanie. Jednocześnie trudno znaleźć temat na który powstaje równie wiele materiałów do nauki. Obie te rzeczy prowadzą nas do pytania: Jak wybierać źródła wiedzy i jaki styl nauki jest skuteczny w przypadku programowania?
Odpowiedź na to pytanie wymaga zrozumienia następujących problemów:
Z jednej strony Internet daje nam nieograniczony dostęp do wiedzy. Pomimo tego trafienie na wartościowe materiały do nauki bywa problematyczne. A już odnalezienie źródeł, które są wartościowe i adresują powyższe problemy to prawdziwy wyczyn.
Podczas nauki programowania, zwykle sięgam po różne źródła wiedzy. Jednak najczęstszym wyborem są tutoriale i kursy wideo dostępne w sieci. Powodów jest przynajmniej kilka (np. powstają szybciej niż książki i bardziej efektywnie wprowadzają w nowy temat), natomiast najważniejszym z nich jest fakt, że adresują wyżej wymienione problemy, o ile poświęcimy trochę uwagi na ich odpowiednią weryfikację.
Poniżej podzielę się z Tobą sprawdzonymi źródłami z których sam korzystam, natomiast wcześniej dam Ci kilka wskazówek jak samodzielnie weryfikować ich jakość.
Weryfikowanie jakości źródła:
Ciekawe że w tym miejscu już trudno wskazać mi źródła z których uczyłem się jeszcze kilka lat temu, właśnie ze względu na to że dziś są już mocno nieaktualne. Dobra wiadomość jest taka, że na ich miejsce pojawiło się kilka innych.
Laracasts: od dawna mój numer jeden w rankingu, szczególnie od chwili gdy Jeffrey Way (założyciel serwisu) zaczął publikować filmy na temat JavaScriptu. Na szczególne wyróżnienie zasługuje tutaj ich bardzo zwięzła forma i ogromny talent Jeffrey’a do przekazywania wiedzy.
Egghead.io: to źródło z którego korzystam od połowy 2018 roku. To miejsce w którym znajdziesz filmy wielu autorów, więc nadal trzeba ostrożnie weryfikować ich jakość ale co do jednego można być pewnym: przekazywana tam wiedza jest najbardziej konkretna jaką widziałem w Internecie. Forma 2-5 minutowych filmów jest świetna!
Wesbos.com: może nie jest to poziom Jeffrey’a z Laracasts, jednak Wes to jeden z najlepszych twórców kursów online jakiego spotkałem. Jego kursy są drogie (duże promocje na Black Friday) ale z pewnością warte swojej ceny. Znajdziecie u niego kursy JavaScript’u, React’a i Node.js. Warto.
Teamtreehouse: czapki z głów dla twórców tego serwisu za konsekwencję i bardzo wysoką jakość wszystkich materiałów. Gdy potrzebuję wejść w jakiś nowy temat, wybieram Teamtreehouse.
(darmowe) The Net Ninja: szczerze, nie mam zielonego pojęcia jak ten człowiek ogarnia tak wiele tematów ale rzadko zdarza się aby przygotowany przez niego film czy seria na jakiś temat nie spełniały moich oczekiwań. To jeden z najlepszych na świecie kanałów na youtube dla programistów.
Jesteśmy na etapie gdy wybraliśmy formę i odpowiednie źródło nauki. Jednak uwierz lub nie ale to nie wszystko. Mam dla Ciebie jeszcze kilka wskazówek, które od wielu lat wykorzystuję w praktyce.
Zasada #0: Nie oglądaj! …bezczynnie. Jeżeli to możliwe podążaj za autorem wykonując kolejne kroki samodzielnie. Nie kopiuj przykładów, lecz pisz je samodzielnie nawet jeżeli wydaje Ci się że to bez sensu. Lepiej zapamiętasz to czego się uczysz i co ważne, spotkasz problemy które podczas rozwiązywania nauczą Cię czegoś nowego.
Zasada #1: Bierz to, czego potrzebujesz To nieoczywiste ale nie oglądaj kursu (lub książki) od początku do końca. Świadomie oceniaj i wybieraj to, co jest Ci najbardziej potrzebne. Nie poświęcaj czasu na ponowną naukę tego, co już wiesz. Wyjątek stanowi sytuacja gdy czujesz potrzebę powtórzenia materiału lub nadal nie czujesz się w nim pewnie.
Zasada #2: Szanuj swój czas Pokazałem Ci dlaczego kursy online są dobrą formą nauki i jak wybrać te właściwe. Opracuj swój własny styl nauki ale trzymaj się tego aby zawsze szanować swój czas. Poświęć chwilę na weryfikację tego, czy kurs który oglądasz jest wart Twojego najcenniejszego zasobu.
Zasada #3: Masz możliwość? Zapłać Nauka programowania bez wydania ani jednej złotówki jest możliwa. Jednak na przestrzeni 15 lat niejednokrotnie przekonałem się, że często warto zapłacić za rzetelnie przygotowany kurs, autora posiadającego doświadczenie w temacie. Najwyższą wartością jaką kupujesz jest czas który oszczędzisz na szukaniu innych źródeł.
Zasada #4: Ucz się tego samego z wielu źródeł Niejednokrotnie kupowałem kursy poruszające te same tematy. Nauka to skomplikowany proces. Czasem żeby “połączyć kropki” potrzebujemy różnych perspektyw. Niejednokrotnie zdarzało mi się oglądać różne kursy na ten sam temat i dopiero za którymś razem zaczynałem rozumieć o co chodzi i wcale nie miało to związku z jakością tych źródeł.
Zasada #5: Bądź wytrwały To że nie zrozumiesz czegoś za pierwszym razem, piątym czy dwudziestym, nie oznacza że nigdy Ci się to nie uda. Nauka nie jest łatwa ale wytrwałość to bez wątpienia jedyny powód tego, że dziś mam możliwość napisać dla Ciebie ten artykuł.
Na temat nauki online z pewnością mam Ci jeszcze wiele do powiedzenia. Ale od czegoś trzeba zacząć a teraz Twoja kolej. Wykorzystaj to co już wiesz teraz i to, co przeczytałeś powyżej. Na koniec zadam Ci tylko jedno pytanie:
Czego się dziś nauczysz?