Nauka programowania, teoria czy praktyka?

Oczywiście pomijając kwestię wyboru języka która pod tym względem jest chyba bezkonkurencyjna, wybór ścieżki nauki jest jednym z najczęściej poruszanych tematów przez osoby chcące zacząć naukę programowania. W kwietniu 2017 przed takim samym wyborem stanąłem również ja. Co wybrałem i jak oceniam ten wybór dziś? Zapraszam do lektury.

Skąd pomysł na naukę programownia

Swoją naukę programowania rozpocząłem gdzieś w Kwietniu ubiegłego roku. O dziwo z wyborem języka nie miałem większych problemów ponieważ w momencie w którym zacząłem myśleć o programowaniu, wiedziałem już co z jego pomocą chcę stworzyć.

Brakowało mi w sieci miejsca gdzie mógł bym oferować swoje usługi jako elektryka równie łatwo jak dodaje się ogłoszenie odnośnie sprzedaży  telefonu na OLX czy Allegro.

Z drugiej strony co rusz słyszę o kimś kto nie może znaleźć fachowca do położenia płytek w łazience czy udzielenia korepetycji z matematyki dla swoich pociech.

Tak więc wiedziałem już że chcę stworzyć serwis w którym swoje usługi mogli by oferować nie tylko fachowcy/wykonawcy, ale też ludzie mający konkretną usługę do wykonania/zleceniodawcy.

Początki nauki

Tak więc po krótkim rozeznaniu jak tworzy się strony internetowe jedynym słusznym wyborem (bynajmniej wtedy) okazał się PHP, oczywiście w połączeniu z HTML i CSS. (później doszedł jeszcze JS)

Zacząłem od kursu pana Mirosława Zelenta na YT,(link do kanału)  na początku tylko oglądałem i robiłem notatki. Po przerobieniu kilku pierwszych lekcji sidłem do kodu i okazało się że samodzielnie nie potrafię napisać praktycznie nic.

Później zacząłem aktywnie przerabiać kolejne tutoriale jednocześnie pisząc kod i wykonując zadania. Trwało to co prawda 2x dłużej niż samo oglądanie lecz przyniosło wymierne efekty, ponieważ po przerobieniu całego kursu byłem w stanie prawie samodzielnie napisać skrypt rejestracji i logowania.

Panel logownia
Panel logownia

Dalszy rozwój

Niestety pan Zelent dość sporadycznie dodawał kolejne części kursu i aby pisać dalsze części strony sięgnąłem po książkę PHP i MySQL Wademecum Profesjonalisty i HTML i CSS. Zaprojektuj i zbuduj witrynę WWW.

O ile z tej pierwszej książki wyciągnąłem kilka ciekawych technik to ta druga to raczej zbędny wydatek. Podobną wiedzę można zdobyć oglądając kilka pierwszy lepszy tutorial na YT czy czytając jakiś internetowy kurs HTML/CSS.

Między czasie natrafiłem w internecie na kilka opinij odnośnie nauki programowania, z których wynikało że najlepszą metodą jest praktyka czyli kodowanie. Z resztą podobne wnioski zaczęły mi się same nasuwać po kolejnych samodzielnie napisanych, coraz to większych i bardziej skomplikowanych skryptach.

Więc po przerobieniu jednego kursu i przeczytaniu dwóch książek tak sobie klepałem ten kodzik i klepałem, po drodze szukając rozwiązań napotkanych problemów w internecie. Strona rosła, skrypty działały a Damian był zadowolony.

Pierwsze potknięcie

Po raz pierwszy lampka ostrzegawcza zapaliła mi się jakoś we wrześniu kiedy to wrzuciłem stronę główną na jakiś darmowy hosting i po odpaleniu jej na telefonie stwierdziłem że wygląda fatalnie.

Wtedy to zacząłem szukać informacji o technologii RWD, o której słyszałem wcześniej, ale stwierdziłem że na razie nie będę sobie tym zawracał głowy i wdroży się później.

Po przeczytaniu książki Responsywne strony WWW dla każdego zacząłem wprowadzać zmiany na swojej stronie. Okazało się że przerobienie istniejących plików .css jest trudniejsze niż myślałem, i trzeba było napisać całą warstwę stylistyczną od nowa.

Na wprowadzenie zmian potrzeba było 3 tygodni. 3 tygodni których jak się można domyśleć można było uniknąć i spożytkować je lepiej.

Drugie potknięcie

Po tych wydarzeniach przez kolejne kilka miesięcy rozbudowywałem moją aplikację o kolejne moduły dodając kolejne funkcje. Z każdą kolejną zmianą bądź nową funkcjonalnością okazywało się że trzeba grzebać w coraz to większej ilości kodu.

W tej chwili często jedna mała zmiana powoduje niezamierzone efekty w innej części serwisu. Co raczej nie jest dobrym prognostykiem ku dalszemu rozwojowi aplikacji.

Jak już wspominałem w tym wpisie, zabrakło dobrego przemyślenia i projektu u podstaw witryny.Jednak jak miałem na to wpaść skoro moja wiedza opierała się na jednym tutorialu i kilku książkach?

Postanowiłem też że zacznę programować obiektowo. Niby coś tam kiedyś poczytałem coś obejrzałem. Napisałem więc pierwszą klasę, pierwsze metody i właściwości. Jednak jakoś się to kupy nie trzymało.

Jak myślicie dlaczego??

Pozycje do przeczytania
Pozycje do przeczytania

Teoria czy praktyka? Wnioski

Nie samą praktyką człowiek żyje. Porównując do bardziej ogólnego przykładu to tak jak by zapamiętać kilka podstawowych znaków drogowych wsiąść w samochód i pojechać.

Niby dało by się, może nawet przejechało by się tak spory kawałek drogi ale o tragedię bardzo łatwo.

Przeczytanie jednej książki i napisanie 50 000 linijek kodu (wątpliwej jakości) nie uczyni z nas dobrego programisty. Podobnie jak przeczytanie 20 książek przerobienie, 10 tutoriali bez napisania jednego działającego programu.

Praktyka musi iść w parze z teorią. Bez solidnych podstaw nie da się stworzyć dobrego kodu w praktyce, a bez praktyki wykorzystać teoretycznej wiedzy.

Dlatego zachęcam żeby oprócz samego kodowania i rozwiązywania bieżących problemów, w między czasie poszerzać horyzonty wiedzą teoretyczną. Dzięki temu wasz kod będzie nie tylko działał, ale będzie miał coraz więcej jakości.

Pozdrawiam

 

 

4 komentarze

Dodaj komentarz

Twój adres email nie zostanie opublikowany.