Efektywna nauka programowania to co najmniej 500 godzin. Poprzeczka cały czas rośnie, a z roku na rok mamy coraz więcej junior developerów. Jakie są szanse na zdobycie pierwszej pracy, jeśli faktycznie poświęcimy tyle czasu na zdobywanie umiejętności? O tym rozmawiam z Mateuszem Bogolubowem, który jest mentorem programowania i prowadzi serwis devmentor.pl
Barbara Kowalewska: Zacznijmy. Ile trwa nauka programowania?
Mateusz Bogolubow: Należałoby określić czym dla nas jest koniec procesu, jakim jest nauka programowania. Już teraz należy zwrócić uwagę, że w programowaniu dokształcanie nigdy się nie kończy! Cały czas pojawiają się nowe rozwiązania, które warto przyswoić. Musisz być na to przygotowany, jeśli chcesz wejść do branży IT.
Rozumiem, niemniej od czegoś trzeba zacząć. Ile godzin dziennie poświęcać na naukę, by zdobyć pierwszą pracę w IT?
Wówczas, na naukę programowania należy poświęcić ok. 500 godzin. Jeśli dziennie wygospodarujesz 1-2 godziny, a w weekend do 12 godzin, to już w 6 miesięcy jesteś w stanie zdobyć odpowiednie umiejętności, aby szukać pierwszej pracy. Będzie to mniej więcej 26 tygodni ciężkiej nauki – na to musisz być przygotowany, jeśli chcesz wejść do branży IT.
Sprawdź: Framework
Czy faktycznie tyle czasu trzeba poświęcić, czy można zdobyć odpowiednie umiejętności szybciej? Oczywiście pamiętajmy, że chodzi o pozycję juniora.
Niektórym osobom wydaje się, że wystarczy obejrzeć kilka kursów online. Na rynku pojawiło się jednak bardzo dużo osób, które chcą rozpocząć pracę w IT, tj. być programistą czy web developerem. To sprawiło, że próg wejścia mocno się podwyższył. Teraz dobra znajomość JavaScript to nie wszystko, co a jeszcze parę lat temu to wystarczało. Teraz należy poznać bibliotekę czy framework typu React.
A studia informatyczne? Czy tam nauczymy się programowania?
Wspomniane 500 godz. to efektywna nauka, o której piszę m. in. w swoim artykule 6 kroków do efektywnej nauki programowania. Obojętnie czy skorzystasz z usług mentora, czy pójdziesz na szkolenie online, czy wykupisz kurs na platformie edukacyjnej. Jeśli nie będziesz się trzymać zasad, o których piszę, to czas nauki może się wydłużyć dwu-, a nawet trzykrotnie razy. Z własnego doświadczenia wiem również, że studia informatyczne niekoniecznie muszą cię nauczyć programowania – tam również trzeba poświęcić czas na samodzielną naukę lub zapisać się na dodatkowe kursy.
Ile czasu poświęcić na faktyczną pracę z kodem?
Nauka programowania to przede wszystkim praktyka, a nie teoria. Oglądanie filmików lub przepisywanie niezrozumiałego kodu źródłowego nie jest najlepszym sposobem na naukę. W nauce programowania musisz pisać swój kod, rozwiązywać zadania oraz tworzyć projekty do portfolio. Stosunek teorii (czytanie dokumentacji, oglądanie filmów na YouTube itp.) do praktyki (zadania, projekty) powinien docelowo wynosić 20 do 80. Oczywiście na początku ta proporcja może wyglądać odwrotnie, jednak powinieneś jak najszybciej to zmienić.
Czy jest różnica w przypadku nauki dla front-endowca a back-endowca?
Przede wszystkim wychodzę z założenia, że masz ogólną wiedzę na temat obsługi komputera i chcesz zacząć swoją karierę jako programistka front-end, czyli będziesz musiała się nauczyć technologii HTML, CSS, języka programowania JavaScript oraz biblioteki React, aby móc znaleźć swoją pierwszą pracę w IT.
Oczywiście to tylko ogólne hasła, z którymi łączą się inne zagadnienia, ale dla uproszczenia nie będę tutaj ich przedstawiać, aby nie zaciemniać przekazu.
A co z back-endem?
Jeśli interesują Cię taki język programowania jak np. Java, to prawdopodobnie będziesz musiała poświęcić na naukę o ok. 20-30% więcej czasu.
Zobacz: Pisanie na czas
Patrząc od strony efektywnego wejścia w świat IT, front-end wydaje się najlepszym rozwiązaniem. W szczególności, że JavaScript może być również używany po stronie back-endu (Node.js). Dlatego może to być naturalna ścieżka rozwoju dla ciebie jako programisty JavaScript bez potrzeby poznawania nowego języka programowania.
Czyli 500 godz. dla front-endowca i nieco więcej dla back-endowca?
Tak, ale podkreślam też, że do poświęconego czasu na naukę programowania nie należy wliczać okresu, w którym poszukujesz materiałów i zadań czy poświęcasz godziny na rozwiązywanie problemów – typu brak średnika czy literówka. Zgadza się, że jest to część pracy programisty, jednak nie ma to nic wspólnego z efektywną nauką programowania, o której tutaj mówimy.
Bardzo dziękuję Ci za rozmowę i cenne porady. Myślę, że dzięki Twoim wskazówkom, nasi czytelnicy 'Entry’, będą bardziej świadomie kształcić się w kierunku programowania i o krok bliżej od znalezienia wymarzonej pierwszej pracy:)