Rozmawialiśmy z Maciejem Aniserowiczem, programistą prowadzącym blog devstyle.pl. Poruszyliśmy temat tego w jaki sposób powinno uczyć się programowania od podstaw oraz jakie aspekty powinno się wziąć pod uwagę przy podejmowaniu decyzji o nauce programowania.
Artur Nowakowski: O czym powinno się pamiętać podczas nauki programowania od podstaw?
Maciej Aniserowicz: Nauka programowania (właściwie nauka czegokolwiek) jest procesem rozwijania wiedzy i umiejętności. Warto pamiętać, że przez cały czas jesteśmy w tym procesie, że nigdy nie będzie „końca” tej drogi. Bardzo zachęcam do stawiania sobie celów i śledzenia realnych, mierzalnych postępów. W ten sposób można obiektywnie dowiedzieć się od siebie samego, czy obrany kierunek jest słuszny. To może posłużyć jako narzędzie do modyfikowania kursu, doprecyzowania decyzji. Bez osądzania i karania samego siebie, biorąc pod uwagę tylko suche fakty wynikające z niezależnej obserwacji.
Czy mógłbyś dać jakiś przykład?
Weźmy np. studenta, który myśli sobie: „Do końca kwartału napiszę aplikację w technologii X robiącą (…)”. Jeśli zostanie to spełnione, to brawo! A jeśli nie to warto przeanalizować co poszło niezgodnie z planem. Najczęściej okaże się, że mieliśmy po prostu wygórowane wymagania.
Co powinno się robić, żeby nauka programowania od podstaw przebiegała sprawnie?
„Learning is the new procrastination”. Warto pamiętać, że programowania uczymy się… programując. Samo oglądanie kursów i czytanie książek to pułapka. Czujemy, że jesteśmy „produktywni”, bo przecież nie jesteśmy w tym czasie na imprezie albo nie pochłaniamy kolejnego serialu na Netflixie.
Ale jest to fałszywe poczucie, prowadzące na manowce. W ten sposób nie uczymy się programować. Jak to łatwo sprawdzić? Przez pryzmat rezultatów, a raczej ich braku.
Trzymajmy się zasady: jeśli nie piszemy kodu, to nie uczymy się programowania. Wówczas nauka stanie się bardziej efektywna (choć na pewno trudniejsza). Jednym słowem: praktyka.
Co robić, kiedy zaczną się pierwsze trudności – jak sobie z tym radzić, gdzie szukać pomocy?
Nauka wielu nowych umiejętności wygląda podobnie. Najpierw nie umiemy zupełnie nic, więc każdy kwadrans poświęcony na naukę wywraca nasz świat do góry nogami. Każda godzina nabija nam nowe levele doświadczenia, każdego dnia stajemy się „ekspertami do kwadratu” w porównaniu do dnia poprzedniego. Niestety to zjawisko bardzo szybko się kończy. Po banalnych początkach przychodzą bardziej realne wyzwania. Łatwo się wtedy zniechęcić, ale trzeba wiedzieć, że tak po prostu jest. Gdyby programowanie było proste to wszyscy umieliby to robić :). Prawdziwe programowanie zaczyna się tam, gdzie pojawiają się prawdziwe dylematy. Wtedy po prostu zagryzamy zęby i próbujemy dalej, rozwiązując problem jeden po drugim.
Czy masz jakieś przestrogi dla osób, które rozpoczynają naukę programowania?
Koszmarem adeptów programistycznej sztuki mogą być niezadowalające postępy w nauce. Poruszyłem już ten temat i wyjaśniliśmy sobie, z czego ta kwestia może wynikać. Pomaga tu jednak zrozumienie, że nie ma czegoś takiego jak „za wolno”. Bo „za wolno” w porównaniu z czym?
Nie ma „wolno” ani „szybko”. Każdy uczy się w swoim tempie, raz wolniej, raz szybciej. Jedne tematy przyswajają się natychmiast, inne potrzebują dni czy tygodni na „przetrawienie” i zrozumienie. To normalne.
Nie patrzmy na „success stories”, jakich pełno w internecie. Skupmy się na swoich celach i swojej drodze. Ona będzie wyglądała inaczej niż wszystkie pozostałe. Nie porównujmy się, bo to prowadzi tylko do kompleksów i poczucia winy.
O czym trzeba wiedzieć przy podejmowaniu decyzji, aby zostać programistą?
Przekleństwem branży IT w 2. dekadzie XXI wieku są paradoksalnie nieprzeciętne warunki pracy, oferowane programistom. Wokół wynagrodzeń i benefitów narosły już legendy, przez co stosunkowo niewielką uwagę w masowym przekazie przykłada się do faktycznej merytoryki i tego, co w pracy programisty jest najważniejsze: projektów, klientów i technicznych wyzwań.
Ta praca jest trudna, bywa żmudna, bywa nudna. Praca przy prawdziwym projekcie to coś zupełnie innego, niż klepanie nocami w domu swoich programów do portfolio. Obiecywane złote góry mogą nie nadejść, piłkarzyki/masaże/owocowe wtorki – czasem mogą okazać się mechanizmami szminkowania beznadziejnych realiów projektowych, a praca zdalna z elastycznymi godzinami pracy może okazać się: przekleństwem, zatrzymującym rozwój.
Dlatego też zalecam skupiać się na swoich wartościach i prawdziwym programistycznym rzemiośle, pomijając wyobrażenia z marketingowych haseł.
Co powinny sobie uświadomić osoby, które chcą zostać programistami?
Cały czas jesteśmy bombardowani przekazem, że w samej Polsce brakuje 50 tysięcy programistów. Nie mówiąc już o zapotrzebowaniu w Europie czy na świecie, które jest wielokrotnie wyższe.
Często zapominamy jednak o jednym: że chodzi faktycznie o specjalistów, a nie „kogoś kto chce zostać programistą”. Kilka lat temu faktycznie droga do programistycznej kariery stała otworem przed każdym. Firmy zatrudniały juniorów, pre-juniorów oraz „chętnych do nauki”. Wiele się jednak zmieniło. Na stanowisko juniora czy stażysty wpływa gdzieniegdzie 10x więcej CV, niż jest miejsc. Poszukiwanie pierwszej pracy – nawet w dużych miastach – może trwać miesiącami. Dla junior developerów zdobycie pracy przestało być bułką z masłem.
Dlatego: nie zniechęcaj się. I postaraj się wyróżnić w tłumie, choćby poprzez posiadanie własnych projektów open source czy prowadzenie programistycznego bloga.
Powodzenia!
Maciej Aniserowicz
Autor książki „Zawód: Programista” zawodprogramista.pl
Autor kursu Gita: kursgita.pl
P.S. (od Artura)
Spodobał Ci się powyższy wywiad? Chciałbyś nauczyć się programowania od podstaw i dołączyć do branży IT? Jesteś inżynierem lub absolwentem studiów ścisłych? Jeśli odpowiedziałeś 3xTAK, to możesz wziąć udział w rekrutacji do Projektu „Przyszły Programista”!
Jeśli przejdziesz wymagającą rekrutację, a następnie ambitne szkolenie, to droga do świata IT stanie przed Tobą otworem! Wejdź teraz na stronę http://rekrutacja.przyszlyprogramista.pl a następnie wyślij swoje CV na dole strony w formularzu i przekonaj się czy nadajesz się na programistę!
Jeśli natomiast chcesz sprawdzić jak dobrym programistą mógłbyś być, to przejdź na stronę: raport.przyszlyprogramista.pl i pobierz darmowy raport, który dla Ciebie przygotowałem.
Sprawdź – Jak dobrym programistą mógłbyś być!
Satysfakcjonujących Wyzwań!
Artur Nowakowski z Zespołem Projektu „Przyszły Programista”