All Articles

Jak efektywniej uczyć się programowania

Na grupach Facebookowych skupionych wokół tematów programistycznych często możemy zauważyć od osób dopiero wchodzących do branży pytania typu:

  • Ile czasu zajęło wam zdobycie pierwszej pracy?
  • Ile czasu poświęcać na naukę programowania?
  • Ile czasu zajmie mi nauka X/Y/Z?

Są też osoby, które wręcz oświadczają, że rzucają wszystko i żyjąc z oszczędności będą uczyli się programowania po 12 h dziennie.

W większości tych przypadków takie podejście jest błędne.

Każda osoba jest indywidualnością, nie ma dwóch osób, które tak samo będą wchłaniały wiedzę w postaci nowych zagadnień, podejść czy technologii.

Dodatkowo odpowiedzi, które te osoby mogą otrzymać, potrafią zaburzyć ich motywację i samoocenę.

Chodzi mi o to, że każda osoba pracująca jako programista ma inną przeszłość. Jedni pisali kod już w wieku 12 lat, inni właśnie skończyli studia informatyczne, na politechnice gdzie na co dzień obracali się w tym świecie. A jeszcze inni weszli do branży wcześniej studiując kulturoznawstwo, lub pracując na budowie.

To sprawia, że jesteśmy indywidualnościami w kwestii chłonięcia nowej wiedzy, możliwości czasowych na poświecenie nauce czy ogólnej motywacji do zmiany zawodu jak i życia.

Po tym wstępie można odpowiedzieć przynajmniej na jedno z pytań: ile czasu poświęcać na naukę programowania?

efektywna-nauka-programowania

To zależy.

No ale właściwie od czego?

I tu możemy wrócić do tego, o czym już pisałem, zależy to od wielu czynników. Między innymi jest to:

  • czy mieliśmy już doświadczenie z nauką programowania,
  • co robimy na co dzień w życiu,
  • czy potrafimy się uczyć (jak wiemy w polskich szkołach uczymy się podejścia ZZZ - zakuć zdać zapomnieć).

I wiele innych powodów, od których zależy to jak będzie nam szła nauka programowania.

Weźmy jednak sobie za wzór jakiś przypadek osoby, która zaczyna z nauką programowania. Osoba ta twierdzi, że może poświęcić 6 h dziennie na naukę programowania. Łączny bilans tygodniowy wynosiłby wtedy około 40 h (w zależności od tego czy w jakiś dzień robi przerwę). Osoba ta nie miała także wcześniej zbyt dużego doświadczenia w nauce programowania i zaczyna praktycznie od zera.

Według mnie jest to bardzo duża ilość godzin jak na naukę. Jako osoba doświadczona i pracująca w projektach komercyjnych nie jestem w stanie przez 40 h pisać kodu a co dopiero uczyć się tego jak wytwarza się oprogramowanie.

Głównym błędem jest tutaj myślenie, że im więcej, tym lepiej co w większości przypadków jest złym podejściem. My jako ludzie lubimy wszystko rozciągać w czasie, jeżeli mamy na jakieś zadanie tydzień to będziemy to robili tydzień, jeżeli mamy na nie tylko trzy dni to zrobimy je w trzy dni (oczywiście jest to uproszczenie).

Więc jak to powinna wyglądać nauka programowania?

Zakładam, że już mniej więcej wiesz czego chcesz się uczyć, masz zakupione jakieś kursy czy materiały w postaci blogów lub filmów na YouTube. Wiesz, że programowanie to jest to, co chcesz robić w swoim życiu i postanawiasz zrobić sobie bootcamp żeby przez najbliższe miesiące uczyć się po 6 h dziennie, aby zdobyć pracę.

I tu wchodzę ja (cały na biało) wkładając w ten zapowiadający się dobrze plan, swoje kilka rad (bazujących na doświadczeniu z przeszłości), które mam nadzieję uchronią cię przed popełnieniem podobnych błędów.

#1 Częstotliwość

Przypomnij sobie sytuację ze szkoły, gdzie na dwa tygodnie do przodu zapowiadane były sprawdziany. A ty, zamiast zaplanować sobie codzienną naukę, odkładałeś/aś wszystko na ostatnie dwa dni, by zakuwać po kilka godzin, byleby zdać. Często takie podejście było dobre, bo udawało się zdać a wiedza ta, nigdy się już nie przydała.

Jednak przynajmniej w moim wypadku często byłem na siebie zły za to. Kiedy uświadamiałem sobie po otrzymaniu wyników, że gdybym z większą częstotliwością uczył się do tego testu, to osiągnałbym lepszy wynik.

Tak samo jest z trenowaniem na siłowni. Nie idziemy na jeden trening w tygodniu i trenujemy 6 h. Tylko rozkładamy to na kilka jednostek treningowych.

W taki sposób powinna wyglądać nasza nauka programowania - być częstotliwa oraz skupiona na jakimś celu.

Uczenie się po 30 min dziennie da nam lepszy efekt niż poświęcanie jednorazowo w ciągu tygodnia kilku godzin. Dodatkowo gdy wiemy, że możemy poświęcić w ciągu dnia tylko te 30 min i mamy jakiś cel np. dodać nową funkcjonalność czy obejrzeć dwa odcinki kursu, to będziemy bardziej skupieni na tym celu, ponieważ będzie nas gonił czas.

#2 Przestaw swój mózg

Jako początkujący musimy tak naprawdę przestawić mózg na wchłanianie wiedzy programistycznej, nauczyć go abstrakcyjnego myślenia, nauki nowych pojęć, założeń języka, w którym piszesz czy dobrych manier pisania kodu.

I tak jak na treningu siłowym, nie trenujemy codziennie do upadku w taki sposób, żeby przez następny tydzień nie pojawić się na sali. Tak i programowania nie uczmy się do wycieńczenia, tak aby nam to zbrzydło a wiedza przestała nam się aplikować do głowy.

Ten punkt łączy się z punktem #1, czyli balans w ilości czasu poświęcanemu nauce, ale także to, że programowanie to jest nieskończona nauka. Będziesz cały czas poznawać nowe narzędzia, języki, frameworki, biblioteki a w pracy przyjdzie dodatkowo nauka domeny biznesowej i aplikacji, nad którą będziesz pracować.

#3 Przeplatanie form nauki

Wiele osób, które poznałem na swojej programistycznej ścieżce miały problem z tutorial hell lub też tutorial purgatory. Czyli pułapka przechodzenia z tutorialu do tutorialu, z jednego kursu do następnego, bez aplikowania tej wiedzy na przykład do swoich własnych projektów.

Ja także miałem taki problem. U mnie akurat było to spowodowane myśleniem, że z tutorialów wyciągnę naukę jak rozwiązać każdy potencjalnie napotkany problem. Wyobrażałem sobie, co chce posiadać w swojej aplikacji, a następnie szukałem kursu, który zawiera rozwiązanie podobnego problemu.

Co bym teraz zrobił i robię, to przeplatanie przechodzenia materiału w postaci kursu z własnym projektem. Tak naprawdę nie musisz przepisywać kodu z filmu, możesz jedynie zapisać sobie kroki, w jaki sposób coś zostało osiągnięte, a następnie odtworzyć to samemu w swojej aplikacji.

Także pamiętaj o tym, że nauka ≠ przechodzenie tutorialu.

#4 Popełnianie błędów

Podczas tworzenia własnych rozwiązań możliwe, że będziesz się bać, popełniać błędy w swoim kodzie. Musisz się tego wyzbyć, gdyż doprowadza to do prokrastynacji w działaniu. Stwierdzamy, że jeszcze nie jesteśmy gotowi, żeby wytworzyć jakiś kawałek oprogramowania - ale to nie prawda.

Każdy popełnia błędy, nawet osoby doświadczone. A jeśli po przejściu tutorialu masz problem, żeby napisać podobną aplikację, to może znaczyć, że problem leży gdzieś indziej, niekoniecznie oznacza to słaby poziom kursu, twój problem ze zrozumieniem materiału, ale może to być właśnie strach, że nie napiszesz tego tak szybko i ładnie jak prowadzący szkolenie.

#5 Planuj swoją pracę

Planowanie to jedna z ważniejszych kwestii, której nauczyłem się relatywnie późno. Wydawało mi się, że jestem w miarę poukładany jeśli chodzi i to ile czasu spędzam na danym zadaniu, jak planuje swoją naukę czy to jak podchodzę do planowania pracy nad projektem, czy nową funkcjonalnością.

Dochodziłem jednak do muru, blokowałem się, bo na wyrost myślałem o tym co będzie do zrobienia następne. Zamiast skupić się na tym, co jest do zrobienia na dany moment.

W taki sam sposób polecam ci przemyśleć zawsze przed rozpoczęciem pracy, jaki rezultat chcesz osiągnąć - zaczynać z wizją końca.

Podsumowanie

Zawarte w tym artykule informacje są częściowo moim doświadczeniem, ale także wynikiem obserwacji podejścia osób wchodzących do branży IT.

Mam nadzieję, że zawarte w tym poście informacje na temat tego jak unikać błędów podczas nauki programowania, pomogą ci w twojej drodze do osiągnięcia postawionych sobie celów.

Jeżeli pomogło ci to w jakiś sposób, to zapraszam do zostawiania komentarzy. A jeśli masz jakieś pytania, to zapraszam do kontaktu najlepiej przez Instagram.