Ten artykuł ma na celu pokazanie Ci mindsetu (ustawień dla głowy i podejścia do nauki i przebranżawiania się) który pozwoli Ci zmaksymalizować wydajność nauki poprzez dobre praktyki, które zauważyłem u różnych studentów przez 3 lata uczenia programistów w Akademii
To taki mindset wynikający z obserwacji otoczenia
TLDR; tylko dla zmotywowanych programmersówa
Także przeczytaj uważnie i staraj się wdrożyć jak najwięcej z zasad spisanych poniżej, bo to realnie będzie mieć przełożenie na Twój proces nauczania
Nie ucz się dla kasy
„Powiedz mi po co chcesz zostać programistą” – to pierwsze pytanie, które zawsze zadaje na rozmowie z nowymi studentami. Jeśli odpowiedź jest „dla kasy”, to taka osoba nie będzie się u mnie uczyć.
Dlaczego?
IT nie jest dla wszystkich, a potencjalne wysokie zarobki, które można osiągnąc po kilku latach pracy w większości przypadków nie są wystarczającym motywatorem, aby uczyć się codziennie i codziennie być na bieżąco. W IT fajna kasa to efekt uboczny pasji i tak trzeba patrzeć na tą branżę
Jeśli idziesz tam dla kasy, to po 2-3 latach wypalisz się i znów będziesz szukać swojego miejsca. Musisz po prostu lubić rozwiązywać problemy za pomocą technologii
Regularność ponad ilość
Ten punkt lepiej opisze przykład:
Lepiej jest robić codziennie 20 pompek niż raz w tygodniu 140
Pilnowanie regularności podczas nauki to kluczowa sprawa, szczególnie we wczesnych fazach rozwoju.
Musisz codziennie się uczyć, codziennie pisać kod i codziennie się rozwijać, bo jeśli na jakiś czas przestaniesz to automatycznie się cofasz. Tydzień nic nie robienia, to 2-3 tygodnie więcej wymagane, aby wrócić do wyjściowego poziomu nauki
Jednak z czasem rozwój idzie znacznie łatwiej i jeśli już coś umiesz i pisanie kodu w jakimś jezyku przestaje stanowić dla Ciebie problem to wtedy nauka bibliotek czy wzorców jest znacznie prostsza, bo masz jakieś punkty odniesienia i Twój mózg już umie łączyć kropki
Przyswajaj wiedzę małą łyżeczka i nie rzucaj się na głęboką wodę
Chcesz być junior React developerem? Świetnie, to zacznij najpierw od pisania statycznego i ostylowanego HTML. Potem dorzucaj sobie proste skrypty przeglądarkowe w JS, potem trochę trudniejsze. Potem możesz dorzucić zapytania asynchroniczne do jakichś api. Napisać jedną, dwie, trzy stronki w czystym HTML, CSS i JS. A potem dopiero zacznij czytać o React
Jeśli zaczniesz od razu od Reacta nie mają podstaw Twój mózg męczy się 2 razy, bo raz nie znasz podstaw działania JS i składni, a drugi raz nie znasz Reacta
Więc rzucanie się na głęboką wodę od razu może znacznie spowolnić Twoje tempo rozwoju
Patrz w perspektywie 2 lat, a nie 3 miesięcy
Zrozum, że nauka programowania to nie jest sprint, tylko maraton. Mimo tego co mówią bootcampy ułamek chętnych został pełnoprawnym i pożądanym na rynku programistą w 3 miesiące. Najlepszym zajmuje to min 9 msc do roku czasu.
Skąd to wiem? bo osoby po bootcampach przychodzą do mnie się uczyć jeszcze przez okres od pół roku do roku, co daje znacznie więcej niż bootcampowe obiecanki cacanki
To często ponad rok regularnej nauki i ciężkiej pracy, aby osiągnąć swój cel jakim zwykle jest zdobycie pierwszej pracy
Ucz się z kolegą, bo razem nauczycie się więcej
Wg obserwacji środowiska newbie w IT bardzo często można spotkać sytuacje w których ktoś szuka innego ktosia do pracy na wspólnym projekcie i jest to bardzo dobra forma nauki
We dwóch/trzech nauczycie się znacznie wiecej niż każdy osobno, a jednocześnie będizecie mogli stworzyć apkę która będize w portfolio u każdego z Was
Jeśli Wasze umiejetności nie pozwalają na prace na projektach zacznijcie od rozwiązywania tych samych zadań np z różnych portali z zadaniami jak Code Wars czy podobne czy z mojej podstawowej roadmapy – JS/TS Fundamentals
A potem porównujcie swoje rozwiązania w celu szukania tych „lepszych wersji” rozwiązania i fragmentów kodu, które zostały napisane lepiej
Możecie też korzystać z wtyczki do Visual Studio Code zwanej – Live Share – aby zrobić sobie code pairing. Sam stosuję tą wtyczkę podczas pracy ze studentami w Akademii i nie znalazłem do tej pory lepszej opcji do zdalnego code pairingu
Znajdz kogoś kto będzie kontrolować to co piszesz (to moze być starszy kolega, grupa na fb/discordzie, która bedzie dawać feedback lub mentor w Akademii)
Jak by to powiedział Pan Janusz na budowie, co 30 lat kładzie płytki:
Te praktykant – co tak krzywo te płytki kładziesz?
Właśnie (z lekkim przytykiem) dowiedziałeś się, że jakość Twojej roboty nie jest zadowalająca. A umiejętność przyjmowania konstruktywnej krytyki od „starszych stopniem” to bardzo cenna umiejętność
Warto jest znaleźć sobie osobę lub społeczność, która raz na jakiś czas wytknie Ci błędy w Twoim kodzie/rozumowaniu/podejściu
Bo ucząc się od początku „nie wiesz czego nie wiesz”, co często prowadzi do powielania błędów, złych praktyk czy pisania słabego kodu
Szukaj trudnych problemów, dzięki którym sie rozwiniesz – od klepania css nikt nie został programistą
O procesie nauki i przebranżawianiu się myśl jak o pokonywaniu kolejnych schodów biegnących w górę. Każdy nowy problem, którego początkowo nie umiesz rozwiązać, ale starasz się to zrobić jest jak ten kolejny schodek w górę.
Pierwszy raz nie wejdziesz, bo nie wiesz jak podnocić tak wysoko nogę
Drugi raz nie wejdziesz, bo krzywo stawiasz stopę i spadasz
Trzeci raz nie wejdziesz, bo okazuje się, że masz złe buty
A ucząc się na błędach podchodząc czwarty raz do schodka już bedziesz wyposażony w wiedzę, która pozwoli pokonaj kolejny stopień
Tak samo podchodz do szukania sobie wyzwań do nauki – szukaj zadań, które na początek wydają Ci się trudne, ale pi razy oko coś tam wiesz, żeby spróbować je rozwiązywać
Nie bój się też rezygnować ze zbyt trudnego zadania, aby trochę doszkolić się na tych łatwiejszych i potem podjąć ponowną próbę rozwiązania
Nie bój się inwestować pieniędzy w materiały i wysokiej jakości kursy
Błąd, który mamy wbity do głowy przez system, że najlepiej jest zdobywać wiedzę doświadczając rzeczywistości samemu metodą prób i błędów.
„Nie puszczaj kierownicy rowerka, bo się przewrócisz” – pewnie każdy z nas kiedyś słyszał od rodziców. I pewnie chciałeś być kozakiem i puściłeś kierownicę wywalając się przy tym
W dobie e-learningu i szerokiego dostępu do kursów/zadań/ebooków/grup warto jest zapłacić, aby ktoś powiedział Ci czego nie robić, a co warto robić i jak to robić, aby było dobrze.
Dla przykładu:
Sam nie jestem najlepszy w dockerze i sprawach devopsowych, więc kupiłem sobie kurs Docker Masters i uważam, że to były dobrze zainwestowane pieniądze, bo dowiedziałem się tam kilku rzeczy, które były mi potrzebne w różnych projektach
Gdybym miał sam do tego dość, straciłbym bardzo dużo czasu kosztem kilku stówek. To się po prostu nie kalkuluje.
Niby Akademia kosztuje 1000zł / miesiąc i pozwala skutecznie przebranżowić się w ok rok, więc szacunkowo kosztuje 12 tys zł. Jeśli znajdziesz sobie pracę po roku za np 4 tys zł, to inwestycja w naukę w Akademii zwróciła Ci się w 3 miesiące, a po tym czasie będzie już na siebie tylko zarabiać
Rób refactor swojego starego kodu dotąd, aż będzie zrozumiały nie tylko dla Ciebie
„O kurwa, to ja to napisałem?! a o co tutaj chodziło?” – kto kiedykolwiek tak nie pomysłał patrząc na swój stary kod niech pierwszy rzuci kamień
Umiejętność przejrzenia swojego kodu na świeżo i wejściu w skórę osoby, która nigdy nie widziała tego kodu to jedna z cenniejszych umiejętności programisty
Traktuj kod/apkę/skrypt jako żywy organizm, który powinien ewoluować dla swojego własnego dobra i dla adaptacji do rzeczywistości
Wyrób sobie w sobie takie podejście, że po 2-3 tyg od skończenia jakiegoś projektu siądziesz do niego ponownie i postaraj się tak przerobić kod, aby był dla Ciebie bardziej jasny
Ten zabieg nie ma sensu w HTML czy CSS, ale jak już zaczynasz pisać skrypty związane z DOM w JS czy jakieś skrypty w Node to już warto wyrabiać w sobie ten zwyczaj
Praktyka i pisanie kodu uczy „1000 razy lepiej”, niż oglądanie tutoriali
Mój nauczyciel matematyki w liceum miał takie swoje powiedzonko, które było trochę truizmem, a trochę przestrogą:
„Matematyki nie nauczysz się poprzez przyglądanie się na zadania„
Chodzi o to, że aby zmusić mózg do rozumienia matematyki trzeba po prostu robić dużo zadań i mierzyć się z różnymi problemami, aby poszerzać swoją wiedzę
W programowaniu można byłoby lekko zmienić to powiedzionko
„Programowania nie nauczysz się poprzez oglądanie tutoriali„
Musisz cisnąć zadanka i rozwiązywać problemy, aby się uczyć i regularnie rozwijać – nie ma innego wyjścia. Rozwojowe zadanka do rozwoju od zera lub od konkretnej specjalizacji (Frontend/Backend) możesz znaleźć w naszych autorskich ścieżkach rozwoju lub na wielu różnych repozytoriach na githubie lub portalach z takimi zadankami
Podsumowując
W IT nie ma lekko, ale wg mnie jest to najlepsza branża w której można aktualnie pracować i się rozwijać, bo umiejętność tworzenia softu w dobie pełnej cyfryzacji życia jest niczym latanie rakietą, kiedy wszyscy inni idą piechotą
Mam nadzieję, że te kilka akapitów pomoże Ci uświadomić sobie jakie powinieneś/powinnaś mieć nastawienie do nauki programowania
Jeśli Twoje nastawienie już pasuje do powyższych zasad to poświęć jeszcze kilka minut i zapoznaj się z artykułem o tym jakie cechy charakteru są skazane na sukces w IT
Do następnego commita!