Cześć! W 24. odcinku podcastu Sprawny Programista opowiem o tym,
dlaczego wiele osób, mimo włożonego ogromnego wysiłku,
ciągle nie pracuje jako programista.
W tym odcinku podzielę się 25 najczęstszymi błędami, które występują podczas nauki programowania.
Przygotowując się do tego podcastu, zapytałem się na naszej grupie:
a inne potrzebują bardzo dużo czasu?
Czy są to cechy, charakter, a może wiek?
Wasze odpowiedzi były naprawdę ciekawe i przyniosły kilka przemyśleń, którymi chciałbym się dziś podzielić.
- Najważniejsza jest motywacja i wytrwałość
– jak najbardziej zgodzę się z motywacją, bo bez niej to prędzej, czy później, odpuścimy naukę. - Systematyczność to podstawa
– jest to bardzo ważne, bo nie da się nauczyć programowania w kilka dni. - Niektórzy mają predyspozycje
– rzeczywiście, spotkałem wiele osób, które miały IT „w krwi”.
Natomiast z mojego doświadczenia wynika też to, że przynajmniej podstaw programowania może nauczyć się każdy.
Pamiętajmy o tym, że do pracy nie wystarczą same podstawy. Kiedy programowanie nie będzie sprawiało nam frajdy, to niekoniecznie taka praca będzie dla nas odpowiednia. - Pomoc doświadczonej osoby to ogromne ułatwienie
– kiedy zaczynamy interesować się daną branżą, to nie mamy kompetencji do tego, aby ułożyć plan działania. Nie wiemy, czego warto się uczyć i kiedy jest na to odpowiedni moment. Osoba, która już przeszła tę drogę może wskazać nam kierunek, dzięki czemu nie będziemy błądzić i tracić czasu. Ponadto może nam pomóc przejść przez trudności napotkane po drodze, abyśmy się nie męczyli. - Trzeba mieć techniczny background
– pomaga to, aby proces zostania programistą był szybszy. Jednak osoba bez doświadczenia lub znajomości IT, również może to osiągnąć, tylko zajmie jej to więcej czasu.
Widzę to po sobie – udało mi się zmienić branżę w 4 miesiące. Byłem wtedy na 2 roku studiów informatycznych, nie umiałem programować, ale miałem już małą wiedzę o branży, dzięki czemu wiedziałem, w którą stronę chcę iść i poszło mi to sprawnie.
Przejdźmy do tematu odcinka, czyli błędy, przez które ciągle nie jesteście programistami.
Sprawdźcie, na co warto zwrócić uwagę, aby sensownie podejść do nauki programowania!
Spis treści
- 1 25 najczęstszych błędów popełnianych podczas nauki programowania
- 1.1 Brak motywacji
- 1.2 Brak przerw i zmęczenie
- 1.3 Zbyt długie przerwy w nauce
- 1.4 Brak równowagi między życiem prywatnym a nauką
- 1.5 Nieopracowanie strategii nauki
- 1.6 Brak jasnego celu
- 1.7 Brak skupienia
- 1.8 Uczenie się niepotrzebnych rzeczy
- 1.9 Nieefektywna nauka, nieodpowiednie materiały i nieskuteczne metody
- 1.10 Stosowanie złych źródeł informacji
- 1.11 Skupianie się tylko na teorii i brak praktyki
- 1.12 Rozpraszacze i nieefektywne zarządzanie czasem
- 1.13 Zacinanie się i walenie głową, zamiast odblokowanie przez mentora
- 1.14 Niepytanie o pomoc
- 1.15 Unikanie pracy w zespole
- 1.16 Porównywanie się z innymi
- 1.17 Ignorowanie błędów i problemów
- 1.18 Lęk przed popełnianiem błędów
- 1.19 Zbyt wysokie oczekiwania
- 1.20 Próba nauczenia się wszystkiego naraz
- 1.21 Nieustanne przerabianie kursów
- 1.22 Odwlekanie wszystkiego w nieskończoność
- 2 Podsumowanie
- 3 20+ BONUSOWYCH materiałów z programowania
25 najczęstszych błędów popełnianych podczas nauki programowania
Brak motywacji
Przed rozpoczęciem nauki, trzeba zadać sobie pytanie:
- Po co chcę się uczyć programowania?
- Dlaczego chcę zmienić branżę?
- Po co cały ten wysiłek?
Warto znaleźć odpowiedzi, bo dzięki nim dowiesz się, jaka jest Twoja motywacja.
Wracaj do tych pytań za każdym razem, kiedy pojawią się trudności i zwątpienie.
➡ ZOBACZ 👉: Nauka programowania – jak się uczyć programowania, mimo braku czasu i motywacji.
Brak przerw i zmęczenie
Podczas nauki nie chodzi o to, aby harować jak wół!
Jeżeli jesteśmy zmęczeni, niedospani i całkowicie zniechęceni, to nawet jak siądziemy do nauki, to będzie ona bardzo mało efektywna.
We wszystkim trzeba zachować umiar i od czasu do czasu zwyczajnie się zregenerować.
Kiedy byłem trenerem podczas bootcampów, to miałem kontakt z grupami dziennymi, czyli takimi, które uczyły się od poniedziałku do piątku oraz weekendowymi i wieczorowymi – łączącymi naukę z pracą.
W drugiej grupie częściej osoby „odpadały”, bo nie mieli ochotę na naukę, kiedy na zajęciach zasypiali lub nie mogli się skupić.
Nie chodzi tutaj o to, by rzucić wszystko i tylko uczyć się programowania. Mam na myśli to, że osiągniesz lepszy wynik, gdy będziesz mieć czas na relaks i „nic nierobienie”.
Zbyt długie przerwy w nauce
To normalne, że czasem chcemy zwyczajnie odpocząć. W życiu musimy mieć równowagę!
Problem pojawia się wtedy, gdy przerwy w nauce są długie i jest ich dużo.
Co się może stać, kiedy będziesz mieć przedłużające się przerwy w nauce?
- Stracisz skupienie.
- Przeciągniesz proces nauki.
- Będziesz musieć dłużej czekać na wyniki pracy, przez co jeszcze bardziej spadnie Twoja motywacja.
- Nieużywana wiedza zniknie z Twojej głowy. zwyczajnie zapomnisz tego, czego się uczyłeś.
Przerwa wieczorem po intensywnym dniu nauki jest ok.
Wolny weekend, czy nawet dłuższy wyjazd rodzinny – też jest ok.
Ale!
Wszystkie weekendy wolne, czy 3 miesiące przerwy od nauki programowania?
To coś tutaj jest nie tak.
Przerwy w nauce mogą prowadzić do utraty wiedzy i umiejętności.
Ważne jest, aby regularnie utrwalać swoją wiedzę i praktykować zdobywane umiejętności.
Brak równowagi między życiem prywatnym a nauką
Próba nauki programowania kosztem innych aspektów życia może prowadzić do wypalenia, stresu i spowolnienia postępów.
Dlatego ważne jest, aby znaleźć równowagę między nauką a życiem osobistym.
Kiedy powinna zapalić się czerwona lampka?
Jeżeli notorycznie zawalasz zadania w obecnej pracy, żona jest na Ciebie zła, nie pamiętasz już jak wyglądają Twoje dzieci…
Na początku ucierpi Twoje życie prywatne, a później odbije się to też na programowaniu. Będziesz przemęczony, zły, a razem z tym spadnie Twoja motywacja. Musisz znaleźć przynajmniej względną równowagę między nauką a życiem osobistym.
Nieopracowanie strategii nauki
Brak spójnej strategii nauki może prowadzić do chaotycznego i nieskutecznego procesu nauki. Nauka dla samej nauki nie ma sensu. Wypracowanie planu nauki z konkretnymi celami i terminami może pomóc w efektywnym przyswajaniu wiedzy.
Jak stworzyć dobry plan nauki? Przykład:
- Podstawy składni Javy.
- Projekt napisany w czystej Javie (na podstawie zdobytej wiedzy).
- Nauka Springa i bazy danych.
- Projekt napisany w Javie i Springu.
- Tego wszystkiego uczę się przynajmniej 5 razy w tygodniu po godzinie, a w weekendy dłużej.
Brak jasnego celu
Czy wiesz, czego właściwie chcesz się uczyć? Jak chcesz to osiągnąć?
Im konkretniejsze odpowiedzi, tym lepiej.
Nieokreślenie celów może sprawić, że proces nauki staje się chaotyczny.
Ważne jest ustalenie, czego chcesz się nauczyć i dlaczego, aby skupić się na odpowiednich zagadnieniach.
Pokażę to na przykładzie:
chcę zostać Java Developerem do września.
Podstaw programowania i składni Javy uczę się z programu StormIT – Java Od Podstaw.
Następnie realizuję praktyczny projekt w Spring, PostgreSQL z programu Efektywne Aplikacje Internetowe.
Z gotowymi projektami – przygotowuję CV i zaczynam szukać pracy.
Gdyby nie wyznaczone dokładne cele, to ciągle bym błądził.
Brak skupienia
Często ucząc się programowania brakuje nam skupienia i koncentracji.
Chcemy nauczyć się wszystkiego na raz, a najlepiej to w kilka dni. Nie możemy skupić się na jednym zagadnieniu, bo jednocześnie czytamy o trzech innych.
Ważne jest, aby skupić się na jednym języku programowania i nie podchodzić do nauki w chaotyczny sposób.
Inaczej będziesz ciągle w procesie nauki bez efektów.
Uczenie się niepotrzebnych rzeczy
IT i programowanie to bardzo szerokie dziedziny wiedzy, które ciągle się zmieniają. Taka myśl może przerażać! Ale pamiętaj, że Ty jako przyszły Junior Developer nie musisz w tym momencie wiedzieć wszystkiego!
Prawda jest taka, że im mniej, tym lepiej. 😉 Zdobądź umiejętności, które pozwolą Ci możliwie szybko je opanować i zdobyć pierwszą pracę. Całej reszty douczysz się później – w praktyce i prawdziwym projekcie, gdzie będziesz już otrzymywać za to wynagrodzenie.
Skąd wiedzieć czego się uczyć i gdzie jest granica? Dobrym punktem wyjścia jest przejrzenie ogłoszeń o pracę – jednak one też potrafią być mylące i przytłaczające, szczególnie jeżeli nie mamy wiedzy, by je zweryfikować. Dlatego zapraszam do naszych programów!
Nieefektywna nauka, nieodpowiednie materiały i nieskuteczne metody
Im skuteczniej coś robisz, tym mniej potrzebujesz czasu, aby osiągnąć porównywalne efekty. Bardzo ważne jest to, by dostosować odpowiednie narzędzie do konkretnego celu.
Pokażę to na przykładzie tego, jak wygląda to w kursach StormIT:
- Materiały wideo – dopracowane treści, do których możesz wracać, przypominać sobie. Ale również przyspieszyć lub nawet całkowicie pominąć, jeżeli coś jest już dla Ciebie jasne.
- Zadania i ćwiczenia – czyli przede wszystkim praktyka. Bez praktyki nie nauczysz się programowania. Najpierw ja w nagraniach rozwiązuję kilka przykładów, pokazując Ci, na czym się skupić – a następnie dostajesz do realizacji całą serię mini przykładów do samodzielnej realizacji. Co ważne każdy przykład jest tak przygotowany, że automatycznie po jego realizacji otrzymujesz informację zwrotną, czy wszystko jest ok, czy musisz coś poprawić.
- Praktyczne projekty i prace domowe – o ile małe zadania dobrze pasują do opanowania poszczególnych zagadnień jak np. tablice, mapy, czy beany w Spring. Tak, żeby nauczyć się stosować te zagadnienia w praktyce potrzebujemy już innego narzędzia. Tutaj świetnie sprawdzają się większe projekty, gdzie uczysz się jak wykorzystać swoje nowe umiejętności w kontekście praktycznym. Programy JOP i EAI kończą się większym praktycznym projektem.
- Projekt grupowy – to tak naprawdę jest już realna praca jako programista. Musisz współpracować z innymi developerami, najpierw opracowujesz jakiś cel biznesowy, a później zastanawiasz się, jak przenieść to na kod źródłowy. To najbardziej wymagająca forma nauki, o ile jesteśmy na nią gotowi, wtedy możemy z niej wynieść naprawdę bardzo dużo.
- Grupa kursantów – nieoceniona pomoc.
https://www.youtube.com/shorts/b6S3-jSl12g
Stosowanie złych źródeł informacji
Korzystanie z nieaktualnych, mylących lub niewłaściwych materiałów może prowadzić do zdobywania nieprawidłowej wiedzy, co spowalnia postępy. Szczególnie widoczne jest to u osób uczących się z losowych materiałów dostępnych w Internecie.
Takie informacje często są niekompletne, a nawet się wykluczają.
Jako osoba z niewielkim doświadczeniem w tym temacie zwyczajnie nie masz technicznej możliwości, żeby zweryfikować takie treści.
Dlatego na starcie bardzo ważne jest, aby mieć zaufanie do autora i korzystać z kompletnych, aktualnych materiałów.
Sam w ramach naszych programów kładę na to duży nacisk. Ma być konkretnie, w przystępnej formie, ale również merytorycznie i aktualnie.
Skupianie się tylko na teorii i brak praktyki
Programowanie to umiejętność praktyczna, dlatego ważne jest, aby łączyć teorię z praktyką.
Próba nauki tylko z książek i artykułów, bez równoczesnego kodowania, może nie przynieść dobrych efektów.
Teoria też jest ważna, ale nie może być jedynym elementem Twojej nauki.
- Uczysz się programowania? To musisz pisać kod!
- Coraz to większe i trudniejsze zadania oraz projekty.
Sukcesywnie zwiększaj poziom trudności.
Jak na siłowni – najpierw niewielkie ciężary, a potem zaczynamy dociskać.
Rozpraszacze i nieefektywne zarządzanie czasem
Żyjemy w czasach, kiedy wszystko chce naszej uwagi. Telefon, spotkanie, powiadomienie, social media…
Niezależnie od tego, co Cię w danym momencie rozprasza – warto uświadomić sobie, że zwyczajnie oddala to od upragnionego celu.
Takie rozpraszacze potrafią skutecznie wydłużyć czas naszej nauki.
Mój podstawowy zestaw do pracy głębokiej, czyli środowisko, które sobie przygotowuję do nauki i pracy, to między innymi:
- Możliwie mało otwartych aplikacji na komputerze i zakładek w przeglądarce.
- Zamknięty pokój i prośba do rodziny o względny spokój (pracuję z domu).
- Słuchawki wygłuszające lub zatyczki do uszu.
- Jedno konkretne zadanie, na którym się skupiam, a do tego jasny cel i motywacja.
Zacinanie się i walenie głową, zamiast odblokowanie przez mentora
Często trudne koncepcje wymagają więcej czasu i wysiłku.
Unikanie ich może prowadzić do niepełnego zrozumienia programowania i opóźnienia postępów.
Reguła zazwyczaj jest taka, że zaczynamy od totalnych podstaw – nie wstydźmy się zaczynać od prostszych rzeczy. Potem sukcesywnie zwiększamy poziom trudności.
Najpierw raczkujesz, potem chodzisz, a jak się uda to na końcu biegniemy!
Niepytanie o pomoc
Próba samodzielnego rozwiązania każdego problemu może spowolnić naukę.
Pytanie innych, korzystanie z forów internetowych czy grup dyskusyjnych może pomóc w zrozumieniu trudnych zagadnień.
Nie bój się szukać pomocy!
To normalne, że nie wiesz wszystkiego.
To normalne, że czasem gdzieś się zatniesz.
Dlatego warto mieć w swoim otoczeniu kogoś, kto pomoże Ci iść dalej na Twojej drodze.
Unikanie pracy w zespole
Praca w towarzystwie innych jest kluczowa w świecie programowania.
Unikanie współpracy może spowalniać rozwój umiejętności interpersonalnych, które są równie ważne jak umiejętności techniczne.
Widzę to podczas naszego projektu grupowego.
Naturalnie wyłaniają się liderzy, którzy biorą większą odpowiedzialność i starają się pomagać innym osobom – to bardzo rozwijające.
Porównywanie się z innymi
Każdy uczy się w innym tempie. Porównywanie się z innymi osobami, które też się uczą, może prowadzić do demotywacji i opóźnić postępy.
Zawsze znajdzie się ktoś komu idzie lepiej.
Teoria tutaj jest prosta – porównuj się z sobą samym z przeszłości i skupiaj się na rozwoju.
Ignorowanie błędów i problemów
Błędy są nieodłączną częścią nauki programowania.
Zamiast ignorować je, należy je analizować i rozwiązywać, aby zrozumieć, co poszło źle. Ważne jest dowiedzenie się, jak można uniknąć podobnych problemów w przyszłości.
Uczymy się na naszych błędach, ale również na błędach innych osób.
Na naszej grupie mamy wspólny dokument z najczęściej występującymi błędami.
Dzięki temu możesz uniknąć przynajmniej części problemów.
Jeżeli unikasz błędów i trudności, to mogą się one nawarstwić i później nie zrozumiesz trudniejszych zagadnień.
Osobiście lubię pracować na błędach, bo często identyfikacja problemu czy błędu, to większość roboty.
Gdy mamy już konkretny komunikat to już z górki.
Lęk przed popełnianiem błędów
Błędy są nieodłączną częścią nauki, a obawa przed popełnianiem błędów może hamować rozwój.
Ważne jest, aby traktować błędy jako szansę na naukę, zamiast powód.
Szczególnie w IT jest to do tego stopnia powszechne, że często zamiast np. budować rozwiązania całkowicie pozbawione błędów, przygotowujemy się do ich szybkiej naprawy i z góry zakładamy, że one będą występowały.
Zbyt wysokie oczekiwania
Oczekiwanie natychmiastowych wyników i perfekcji może prowadzić do frustracji oraz opóźnienia postępów.
Nauka programowania to proces długotrwały, który wymaga cierpliwości.
Mam na myśli tutaj zarówno samą naukę, ale również szukanie pracy.
W IT możliwe są zarobki rzędu 20 tys. zł, czy nawet 30 tys. zł i więcej. Jednak jako junior lepiej nastawić się na małe kroczki i zacząć od stażu za niższe pieniądze – tylko żeby zdobyć pierwsze doświadczenie.
Próba nauczenia się wszystkiego naraz
Skupianie się jednocześnie na zbyt wielu technologiach, językach programowania, czy narzędziach może doprowadzić do powierzchownego zrozumienia zagadnień, zamiast dogłębnego poznania.
Budujmy nasze umiejętności sukcesywnie,
zaczynając od podstaw i dopiero wtedy dobudowujmy kolejne, trudniejsze zagadnienia.
Pokażę to na przykładzie.
- Najpierw uczymy się podstaw składni Java.
- Potem zgłębiamy git, code review, dobre praktyki.
- Następnie przechodzimy do baz danych i powoli wdrażamy frameworki, takie jak Spring.
Uporządkowany proces nauki a nie wszystko na szybko i w chaosie.
Nieustanne przerabianie kursów
Ucząc się tylko na podstawie kursów, bez praktycznego zastosowania wiedzy, może sprawić, że zyskasz fałszywe poczucie osiągnięcia celu i opóźnić rzeczywiste postępy.
Przestań robić tak dużo tutoriali!
Nie wpędzaj się w tutorial hell, czyli zjawisko, kiedy jesteś dobry, ale tylko w robieniu coraz to kolejnych tutoriali i nic poza to.
Nie potrafisz napisać sam linijki kodu bez tutorialu.
Zrobienie podstaw z tutoriali, to świetny początek, ale musimy robić coś poza to.
Oglądasz gotowy materiał, a potem idziesz do kodu i się zwyczajnie nim bawisz, a także czytasz dokumentację, żeby wszystko lepiej zrozumieć.
Odwlekanie wszystkiego w nieskończoność
Zacznę uczyć się po świętach. Zacznę uczyć się, jak będę miał więcej czasu.
Jeszcze tylko skończę ten jeden kurs…
Można w nieskończoność przedłużać proces nauki, ale wtedy odkładasz start pracy w branży IT.
➡ ZOBACZ 👉: Prokrastynacja – ale, ale…ja nie mam czasu!!!
Jak nie odwlekać?
Zastosuj podejście małych kroczków.
Podziel jakiś większy problem na mniejsze zagadnienia, które możesz szybo zrealizować, najlepiej jeszcze dzisiaj.
Małe części wiedzy są łatwiejsze do przełknięcia, dzięki czemu szybciej i chętniej je zrealizujesz.
Podejście małych kroczków stosujemy w naszym 10-krokowym systemie nauki programowania – on Ci pomoże płynnie wejść do IT,
a także postawić pierwsze kroki w nauce programowana i zmiany branży.
Ten system implementuje wszystkie dobre praktyki, o których w tym odcinku podcastu mówiłem.
Podsumowanie
Zdobycie pracy jako programista nie jest łatwym zadaniem.
Sam proces nauki jest skomplikowany i można się w nim zgubić.
Kluczowe jest pamiętanie o tym, co nas motywuje w dążeniu do celu.
Ważne także jest umiejętność proszenia o pomoc i współpraca z innymi.
Kiedy czujesz, że się tracisz motywację i jesteś zagubiony, to zatrzymaj się na chwilę i spójrz, jaką już drogę przeszedłeś.
Powodzenia w realizacji celów!
Przyjemniej nauki programowania! 😀
Do usłyszenia za niedługo
Tomek
20+ BONUSOWYCH materiałów z programowania
e-book – „8 rzeczy, które musisz wiedzieć, żeby dostać pracę jako programista”,
e-book – „Java Cheat Sheet”,
checklista – „Pytania rekrutacyjne”
i wiele, wiele wiecej!