Jak się uczyć? Sprawdzone sposoby na naukę nowych rzeczy i pogłębianie wiedzy.

Jak się uczyć?

Ciężko o dziedzinę wiedzy, która zmienia się i rozwija szybciej niż informatyka. W efekcie tego programiści są niejako skazani na ciągłą naukę i pogłębianie swojej wiedzy. W tekście odpowiemy sobie na pytanie, jak się uczyć programowania, na przykładzie sprawdzonych sposobów bezpośrednio od praktyków.

Spis treści

Przygotowanie techniczne

Przygotowanie techniczne do pracy, czyli wszystkie czynniki zewnętrzne, które wpływają na naszą wydajność.

Przygotuj stanowisko pracy

Przed rozpoczęciem pracy zadbaj o odpowiednie warunki. Mnie najlepiej pracuje się z samego rana przy moim biurku, gdy inni jeszcze śpią. Mam stałe miejsce do pracy, dzięki czemu gdy tylko wchodzę do pokoju, przechodzę w tryb pracy.

Jeżeli lubisz pracować przy muzyce rób to. To Ty sam najlepiej wiesz, w jakich warunkach dobrze Ci się pracuje.

Unikaj niepotrzebnych przerw

Zawczasu postaraj się przewidzieć, co będzie Ci potrzebne podczas pracy, czy nauki. Ja bardzo często pracuję robiąc notatki na papierze, dlatego odpowiedni zapas kartek i ołówków zawsze musi być pod ręką.

Podobnie sprawa ma się, jeżeli chodzi o informacje potrzebne do realizacji danego zagadnienia. Przed rozpoczęciem zadania zweryfikuj, czy nie potrzebujesz jakiś dodatkowych dostępów lub szczególnych informacji od innych osób. Dzięki temu może unikniesz niepotrzebnej przerwy już na starcie.

Uważaj na różnego rodzaju rozpraszacze

Slack jest fajny, telefon też, ale… Pamiętaj, że świat jest asynchroniczny i w większości wypadków kolega może poczekać pół godziny na Twoją odpowiedź. Wyłącz wszystko, co możesz i skup się na swojej robocie. Dzięki temu łatwiej zrealizujesz zamierzony cel, a nie tylko będziesz stwarzał pozory zapracowania.

Przygotowanie psychiczne

Nie chodzi przecież o to by pracować ciężko, ale by pracować mądrze. Musisz wiedzieć, czego chcesz i jak chcesz to osiągnąć.

Miej plan działania

Każdy plan jest lepszy niż żaden. Nawet przygotowanie 3 prostych punktów na krzyż sprawi, że lepiej przemyślisz dany problem i masz większe szanse, że osiągniesz swój cel.

Przykładowo, jeżeli chcesz nauczyć się programować w Javie, określ co to dokładnie znaczy i jak chcesz to osiągnąć.

Twój plan mógłby wyglądać np. tak: Chcę nauczyć się programować w Javie, dlatego zacznę od napisania aplikacji konsolowej wykonującej proste operacje na macierzach. Na ten cel chcę poświęcić 3 razy w tygodniu po 2 godziny.

Systematyczność jest ważniejsza od ambicji

Pamiętaj, że nawet najlepszy plan, jeżeli nie będzie realizowany jest nic niewart. Nie ma sensu oszukiwać się, że będziesz uczył się codziennie przez 3 godziny, jeżeli wiesz, że zwyczajnie nie masz na to czasu. Człowiek wtedy tylko jeszcze bardziej się demotywuje i całkowicie odpuszcza realizację takiego planu. Lepiej zaplanuj trochę mniej, ale postaraj się wytrwać w tych założeniach.

Rób przerwy i powtórki

Bardzo dobrym sposobem jest praca w blokach tematycznych i czasowych, np. korzystając z techniki pomodoro. Podziel sobie pracę na fragmenty po 30-45 minut maksymalnego skupienia. W tym czasie za wszelką cenę postaraj się nie odrywać do realizowanego zadania.

Po takim bloku koniecznie zrób krótką przerwę. Możesz wykorzystać ten czas na rozprostowanie kości, twój kręgosłup i oczy z pewnością Ci podziękują. Warto również przejrzeć skolejkowane w tym czasie przychodzące wiadomości i przygotować się do kolejnego bloku wzmożonej pracy.

Po co Ci to wszystko?

Praca i nauka zawsze są pewnym wysiłkiem. Żeby dobrze wykonywać swoją robotę, musisz wiedzieć, po co to robisz. Jeżeli uczysz się nowej technologii, bo sprawia Ci to przyjemność i chcesz się rozwijać to dobrze. Jeżeli wkładasz ten wysiłek w nadziei, że dostaniesz podwyżkę też dobrze. Ważne byś miał świadomość, po co się starasz. Jest wtedy większa szansa, że w chwili zwątpienia nie rzucisz tego wszystkiego i nie spędzisz wolnego czasu w inny sposób, np. leżąc na kanapie.

Miej wyraźny cel

Dobrze, jeżeli wiesz, co chcesz osiągnąć, jednak jeden odległy cel to zdecydowanie za mało. Warto podzielić sobie pracę na mniejsze fragmenty tak, by ogrom pracy potrzebny do ich realizacji Cię nie przytłoczył.

Po zakończeniu każdego etapu mamy wrażenie dobrze wykonanej roboty, jest to również swego rodzaju mini nagroda, dzięki czemu wraca motywacja do dalszej pracy. Jeżeli natomiast po realizacji takiego fragmentu uznasz, że nie chcesz już dalej tego ciągnąć, nie zostajesz z pustymi rękoma.

Wcześniej dla mnie takimi checkpointami były funkcjonalności zrealizowane we własnych projektach lub zdany egzamin na certyfikat. Dziś bardzo często jest to publikacja wpisu na blogu.

Praktyka

Jeżeli miałbym podsumować cały ten wpis jednym słowem, byłaby to właśnie praktyka. Po prostu nie da się nauczyć nowej technologii, jeżeli  nie przysiądziesz i nie zaczniesz w niej pisać. Dla mnie jest to również najprzyjemniejsza forma nauki.

Rozwiązywanie prawdziwych problemów

Tak jak nie da nauczyć się pływać czytając tylko o tym, tak nie licz, że nauczysz się programować bez pisania kodu. Najlepiej jest zdobywać nowe umiejętności rozwiązując prawdziwe problemy.

Większość moich projektów w pracy zaczynałem od naprawy zgłoszonych błędów. Jest to świetny sposób na poznanie projektu i zorientowanie się w kodzie.

Pet projekt

Jeżeli uczysz się nowej technologii po godzinach, gorąco zachęcam do napisania w niej własnego projektu. Dzięki temu będziesz miał okazję wykorzystać ją w praktyce, a niejako przy okazji będziesz miał również nowy wpis do portfolio.

Poszukaj mentora

Mówi się, że dobry programista musi sam sobie radzić w każdej sytuacji i sam zdobywać wiedzę. Po części się z tym zgadzam, bo przecież zdecydowaną większość czasu pracujemy samodzielnie, szczególnie w przypadku pracy zdalnej.

Jednak nic tak nie przyspiesza nauki, jak dobry mentor. Zawsze starałem się otaczać w projekcie ludźmi mądrzejszymi ode mnie. Dzięki temu miałem okazję czerpać z ich doświadczenia.

Nauczaj innych…

…czyli zostań mentorem. Nie ma chyba lepszego sposobu na utrwalenie i pogłębienie wiedzy z danego tematu niż próba wytłumaczenia go innym. Dzięki takiej współpracy zyskują obie strony.

Możesz pisać bloga, występować na konferencjach programistycznych, czy po prostu pomóc koledze z biurka obok.

Siła skupienia

W świecie IT bardzo często pokutuje przekonanie, że ~9 kobiet jest w stanie urodzić dziecko w ciągu jednego miesiąca~. Tak jak w przypadku ciąży, w przypadku projektów informatycznych nie wszystko da się zrównoleglić. Zwyczajnie to rozwiązanie się nie skaluje.

Rób jedną rzecz naraz

Człowiek z natury nie jest przystosowany do wykonywania wiele zadań jednocześnie. W jednak chwili możemy skupić się w pełni tylko na jednej rzeczy. Chcąc z tym walczyć, ponosimy koszty zmiany kontekstu (context switching). W efekcie czego pracując w ten sposób, wykonujemy zadania znacząco dłużej, niż gdybyśmy skupili się tylko na jednej rzeczy i dopiero po jego zakończeniu przeszli do kolejnej.

Rób wiele rzeczy jednocześnie

Zadanie zadaniu nierówne, dlatego część z nich można z powodzeniem wykonywać jednocześnie. Mowa tu przede wszystkim o rzeczach mniej angażujących. Jeżeli przykładowo jedziesz samochodem, biegasz, sprzątasz mieszkanie, czy czekasz w kolejce, to jest to świetna okazja, na naukę nowych rzeczy słuchając np. podcastów.

Nauka na co dzień

Jako programiści mamy świetną okazję na naukę nowych rzeczy w godzinach pracy. Rozwijasz swoje umiejętności i jeszcze Ci za to zapłacą, sytuacja idealna 🙂

Oczywiście rzadko zdarzają się sytuacje, że pracodawca pozwoli Ci skupić się tylko na nauce. Jednak bardzo często to od Ciebie zależy jakie zadania będziesz realizował i w jakich technologiach (przynajmniej w pewnym stopniu). Warto wyjść z inicjatywą i powalczyć trochę o ciekawsze zadania.

Just in time learning

Dzięki JiTT możesz rozwijać swoje umiejętności jednocześnie nie narażać pracodawcę na zbyt duże koszty i ryzyko, że dana wiedza nie zostanie wykorzystana w praktyce.

Poznawaj nowe rzeczy

Zawsze warto poszerzać swoje horyzonty. Mówi się, że dla człowieka, który dysponuje tylko młotkiem wszystko zaczyna wyglądać jak gwóźdź. Jest w tym bardzo dużo prawdy, również w kontekście technologii informatycznych.

Mimo iż większość programistów skupia się głównie na jednej wybranej technologii, warto od czasu do czasu poświęcić chwilkę na weryfikację innych możliwości, by całego życia nie spędzić tylko z jednym młotkiem w ręku.

Ja w tym celu bardzo dużo czytam. Przede wszystkim książki tematyczne oraz blogi technologiczne.

 

Jak się uczyć?

Jak się uczyć?

Jaki masz swój sprawdzony sposób na naukę nowych rzeczy i pogłębianie wiedzy?