Sukces jest wtedy, gdy okazja spotyka się z przygotowaniem. Do tego, żeby się dobrze przygotować potrzebny jest plan. W przypadku nauki programowania, przede wszystkim powinien być elastyczny, ale niekoniecznie bardzo szczegółowy. W trakcie całego procesu Twoje podejście do wielu kwestii (a i też wiedza) zmieni się na tyle, że próba ułożenia planu od A do Z, a potem kurczowe trzymanie się tego – nie jest dobrym pomysłem.
Na początku, zanim ustalisz czego konkretnie chcesz się uczyć, pomyśl kiedy będziesz się uczył. Plan nauki programowania będzie ściśle powiązany z Twoimi możliwościami czasowymi, ale żeby miało to sens to dobrze poświęcić co najmniej ok. 8 godzin na tydzień (jeżeli dasz radę więcej to świetnie). Optymalnie, jeśli rozłożysz to na kilka dni w tygodniu.
Postaraj się zorganizować to tak, żeby pojedyncza sesja nauki trwała co najmniej 30 minut, aby realnie zrobić coś w tym czasie. Oczywiście warto “przy okazji” wykorzystywać każdą wolną chwilę np. w pociągu itp. Niezależnie od tego, czy chcesz zostać frontend czy backend developerem, czy główną technologią będzie Java, Python czy JavaScript – etapy nauki powinny wyglądać podobnie.
Zabawa
Na start (nawet dla przyszłych backendowców) polecam zapoznanie się z HTML & CSS, a potem stworzenie super prostych mini-aplikacji w wiodącej technologii. Ten etap to “zabawa”, która pozwala nam sprawdzić, czy programowanie nam się podoba. Jeżeli mieliśmy już jakieś podejście do nauki bądź mamy chociaż podstawowe doświadczenie np. ze studiów – możemy ten etap pominąć. Natomiast jeżeli było to na tyle dawno, że mało z tego pamiętamy to warto sobie te podstawy odświeżyć. Taki etap powinien trwać ok. miesiąc.
Fundamenty
Po takim wstępie – w etapie właściwym – zdecydowanie skupić na wiodącej technologii, w której chcemy znaleźć pracę jako programista. Jeżeli celujemy we frontend, to zamiast uczyć się “czystego” JavaScript warto od razu zapoznać się z jedną z najbardziej popularnych bibliotek tego języka np. React.js lub Vue.js. Najlepiej po prostu dużo kodować – wykonując małe aplikacje/zadania oraz uzupełniać to studiowaniem teorii, ale przede wszystkim zalecam czytać o tym, co akurat potrzebujemy w danym momencie. Uczenie się suchej teorii “na zapas” czy samo słuchanie/oglądanie kursów nie ma większego sensu. Bez przerobienia adekwatnych przykładów nie zrozumiemy tego dobrze, prawdopodobnie szybko zapomnimy i finalnie stracimy czas, a być może – nawet motywację do nauki. Istotne jest także, aby stopień trudności zadań/aplikacji które robimy był dla nas odpowiedni i rósł stopniowo. Jeżeli zrozumiesz dane zasady na prostych przykładach, to później łatwiej będzie Ci się odnaleźć, gdy stopień skomplikowania wzrośnie. Kiedy można uznać etap właściwy za skończony? Wówczas kiedy rozumiesz fundamenty głównego języka, przerobiłeś już sporo zadań, bez problemu używasz pętli, kolekcji itp.
Portfolio
Umiejętności wymienione w poprzednim akapicie powinny wystarczyć żeby stworzyć ciekawe aplikacje do portfolio, którym można się pochwalić. Oprócz tego, na tym etapie warto poszerzyć swoją wiedzę z umiejętności pobocznych np. GIT, REST, SQL (głównie dla backend developerów). Poza mocnym punktem w CV, taka praca nad trochę bardziej złożoną aplikacją, pozwoli na zdobycie nowych umiejętności i dobrze przygotuje nas pod kątem procesów rekrutacyjnych. Ponadto polecam przerobić trochę zadań algorytmicznych np. z Codility – często pojawia się to w pierwszych etapach rekrutacji.
Teoria
Dopiero kiedy masz już zbudowane portfolio i zaczynasz myśleć o wysłaniu CV, wtedy jest dobry moment na przyłożenie większej wagi do nauki teorii + przerobienie materiałów typu “Java – top 100 interview questions” (oczywiście adekwatnie do technologii, w której się doskonalisz). Przyda się to pod kątem testów i rozmów kwalifikacyjnych. Co istotne, jeżeli wcześniej miało się styczność z danym tematem w praktyce, wówczas łatwiej przyswoimy teorię i lepiej ją zrozumiemy, bo będziemy mieć odniesienie do konkretnych przykładów. Jeżeli już będziemy mieli gdzieś okazję przejść test/rozmowę – warto zapisywać czego nie wiedzieliśmy i na tej podstawie (oraz feedbacku od firmy) – starać się tę wiedzę uzupełnić. Jeżeli nasze próby zdobycia pracy jako programista kończą się niepowodzeniem przez dłuższy czas (np. 3 miesiące) – warto cofnąć się do poprzednich etapów, a później wrócić do wysyłania CV.
Podsumowanie
Czas trwania poszczególnych etapów może być bardzo różny – niektórym zajmie to kilka miesięcy, innym znacznie dłużej. Zależy to wielu czynników m.in. Twoich predyspozycji, wejściowej wiedzy/doświadczenia, ile czasu poświęcasz na naukę, czy masz mentora itd. Pamiętaj, że to maraton, a nie sprint 😉
Plan jest ważny, ale na końcu liczy się jego wykonanie. Nie spędzaj za dużo czasu na przygotowanie samego planu. Po prostu zacznij programować, wyciągaj wnioski, pomyśl co działa w Twoim przypadku najlepiej i bądź systematyczny!