Jak nauczyć się programować

Jak nauczyć się programować?

28 kwietnia 2022

Podobnie jak z nauką języka obcego, w przypadku programowania nie mamy jednej słusznej ścieżki. Możemy uczyć się na wiele sposobów i wybrać sobie drogę, która będzie nam najbardziej odpowiadać.

Jeżeli dopiero zaczynasz, prawdopodobnie nie wiesz jak zaplanować swoją naukę.

O ile uważam, że programowania człowiek uczy się przez całą karierę, naukę podstaw mam już dawno za sobą. Jeżeli miałbym jednak zaczynać dziś od kompletnego zera, chciałbym zrealizować to w dokładnie ten sposób, który opisałem poniżej.

Uważam, że to dość sensowna ścieżka nauki, która powinna zaoszczędzić Ci trochę czasu i błędnych decyzji, a przy okazji nie być przesadnie nudna (w końcu, jest oparta o sporo praktyki).

1. Zastanów się, czego chcesz się uczyć

Osoby uczące się programowania bardzo często wpadają w pułapkę, w którą ja też nieustannie wpadałem jeszcze kilka-kilkanaście lat temu.

Ta pułapka to nieustanne szukanie “najlepszego języka programowania”. W zależności od przeczytanego artykułu, czy usłyszanych słów, taki początkujący programista może z dnia na dzień porzucić na przykład swoją dotychczasową naukę JavaScript i przejść na Pythona, bo “ktoś powiedział”.

Nie byłoby w tym nic złego, gdyby nie to, że takie “skakanie z kwiatka na kwiatek” to strata czasu. Po miesiącu takiej nauki będziesz być może w stanie napisać “Hello World!” w 10 językach programowania, ale nie nauczysz się niczego praktycznego.

Radzę Ci więc dobrze przemyśleć czego chcesz się nauczyć i się tego trzymać. Zastanów się co chcesz robić i dobierz język właśnie pod to. Idealnie by było, gdyby był popularny (wówczas będzie Ci łatwiej, bo znajdziesz więcej materiałów).

Nie słuchaj się przesadnie tego, co powiedzą Ci inni, nawet jeśli są bardziej doświadczeni. Programowanie to przede wszystkim odpowiednie procesy myślowe. Doświadczony programista potrafi bardzo szybko zaadaptować się do innego języka programowania, więc wybór Twojego pierwszego nie jest jakiś super wiążący.

Ja zaczynałem od PHP, języka, z którego wówczas śmiali się niemal wszyscy w programistycznym światku (przy ówczesnej wersji uchodził za dość pomieszany i przestarzały). Wiedziałem jednak, że mogę robić w nim dokładnie to, co chcę, więc nauka była przyjemnością. Pamiętam, że w tamtych czasach bardzo polecano mi np. C++, jednak przerabiając w nim tutoriale, kompletnie się nudziłem. Efekty mnie nie satysfakcjonowały, więc uczyłem się trochę na siłę.

Ucz się tego, co sprawia Ci przyjemność i pozwala na szybkie, satysfakcjonujące efekty. To właśnie one napędzają nas do dalszej nauki.

2. Przerób trochę teorii

Jestem z tych gości, którzy najchętniej sięgnęliby od razu po edytor i zaczęli klepać kod, choćby kompletnie nie wiedzieli co tak właściwie robią. To podejście jest jednak błędne, bo nie mając żadnych podstaw teoretycznych, ciężko będzie zrobić cokolwiek.

Na samym początku polecałbym przerobienie jakiegoś prostego kursu wideo i podstaw, które znajdziesz w dokumentacji danego języka. Nie ograniczaj się do samego przepisywania kodu z kursu i od samego początku staraj się myśleć samemu i przynajmniej coś przerabiać.

Uważaj też na naukę z książek. W przypadku programowania to zwykle nie najlepszy pomysł, ponieważ część wiedzy może być nieaktualna, gdy zaczniesz swoją przygodę. Języki mają do siebie to, że zwykle z czasem ewoluują. Dochodzą nowe, lepsze funkcjonalności, a stare są wypierane przez inne.

Najlepszym źródłem wiedzy z danego języka jest w 9/10 przypadków jego dokumentacja. Może się ona wydawać nudna, ale zwykle to ona jest najbardziej aktualna i rzetelna. Od samego początku nauki, warto się z nią oswajać.

3. Ucz się w praktyce, najlepiej od lepszych

Jeżeli udało Ci się już oswoić z teorią i choć trochę rozumiesz, na jakiej zasadzie działają zmienne, instrukcje warunkowe (tzw. IFy), pętle, czy tablice, prawdopodobnie wystarczy. Prawdę mówiąc, gdy ja zaczynałem z praktyką, nie wiedziałem nawet połowy z tego, ale uważam, że nie jestem w tym przypadku wzorcem godnym naśladowania.

To, co według mnie, nadal jest jednak godne naśladowania, to rzecz, którą zrobiłem dość nieświadomie. Mój pierwszy projekt był zwykłą przeróbką gotowego kodu. Wziąłem z internetu open source’owy silnik gry przeglądarkowej, którą dobrze znałem i zacząłem.

Pierw przerabiałem proste pierdoły pokroju wartości, czy sposobów przeliczania poszczególnych mechanik, a później dopisywałem własne funkcjonalności, bazując na tych, które już istniały.

Twój pierwszy projekt prawdopodobnie też skończy w koszu. Nie zwlekaj z decyzją i weź się za coś, co po prostu sprawi Ci przyjemność. Na początku chodzi o naukę, a nie o zrobienie “drugiego Facebooka”.

Przerabianie czyjegoś kodu ma tę zaletę nad pisaniem własnego, że uczymy się od razu dobrych praktyk (jeżeli uczymy się od programistów, którzy znają się na rzeczy) i jest nam łatwiej zrobić coś, co będzie działać i w miarę szybko przyniesie widoczny efekt. Moim zdaniem to naprawdę niezły pomysł na początek.

Nie bierz się jednak za zbyt skomplikowane i rozległe projekty, które Cię przytłoczą. Postaraj się skupić na czymś stosunkowo prostym.

4. Spróbuj stworzyć coś od podstaw

Mój pierwszy projekt stworzony od absolutnych podstaw to autorskie oprogramowanie sklepu internetowego. Sprawa dość skomplikowana i czasochłonna, ale poznałem przy niej praktycznie wszystko, co było mi niezbędne do dalszej pracy (choć byle jakiej, bo nauczyłem się całej masy złych praktyk, a kod był istnym spaghetti).

O ile sklep nie był jakoś niezwykle zaawansowany, tworzyłem go przez niemal rok. Myślę, że teraz dałbym radę zrobić to samo w jakieś 3 tygodnie.

Za każdym razem, gdy spotykałem jakiś problem, szukałem rozwiązań w internecie, a gdy ich nie było, samemu pytałem znajomych lub zakładałem wątki na forach.

Dzięki temu, choć nie uczyłem się pisania najwyższych lotów kodu, nauczyłem się myśleć jak programista. To było przełomowe. Od tamtej pory zdałem sobie sprawę z tego, że przy odpowiedniej cierpliwości, jestem w stanie zaprogramować niemal wszystko, co tylko bym chciał.

Pisząc kod od podstaw, uczysz się logicznego myślenia i zaczynasz rozumieć całą architekturę większych aplikacji. To przydaje się, gdy wkraczasz na wyższy poziom i bierzesz się np. za jakiś framework. Wówczas nie jest on już aż taką “czarną magią”. Zawsze warto wiedzieć co z czego wynika i starać się rozumieć jak najwięcej. Wówczas praca jest o wiele przyjemniejsza i po prostu, bardziej jakościowa.

5. Szlifuj swoje umiejętności

Pisałem o tym na łamach webporady.pl już chyba kilkadziesiąt razy, ale napiszę raz jeszcze. Według mnie, programowania nie da się “umieć”. To nie jest tabliczka mnożenia.

Programowania uczymy się zwykle przez całą naszą karierę. Coś nowego jest zawsze, a nawet jeśli dziś by nie było, z całą pewnością będzie jutro. Ta branża zmienia się dynamicznie i podobnie jak prawnik musi uczyć się nowych przepisów, dobry programista również nie powinien stać w miejscu. Nawet jeśli będziecie najlepsi w Waszej firmie, technologia za kilka lat prawdopodobnie zmieni się diametralnie. Warto być więc otwartym na nowe rozwiązania i nie zamykać się na nową wiedzę.

Jeżeli już nauczyliście się podstaw, gratuluję i życzę udanej przygody. Moja rada dla Was: nie osiadajcie na laurach i nie zamykajcie się na nowinki. Przypomnijcie sobie lub sprawdźcie w internecie, gdzie Wasza branża była 10 lat temu. Moim zdaniem, daje to sporo do myślenia.