Sytuacja kobiet w IT w 2024 roku
26.11.20216 min
Szymon Adamiak

Szymon AdamiakCo-FounderHYPE4 Mobile

Czy można efektywniej uczyć się programowania?

Przekonaj się jak uniknąć pułapki litery T i lepiej dobierać potrzebne skille do rozwinięcia.

Czy można efektywniej uczyć się programowania?

Szczerze: ile kursów, tutoriali i artykułów czeka na Twojej liście rzeczy do zrobienia? Jeśli jesteś trochę jak ja, odpowiedź brzmi: bardzo dużo! Ja akurat jestem uczniem z zamiłowania i interesują mnie różne tematy związane z programowaniem. Jednak ostatnio zacząłem się zastanawiać, które kursy są warte mojego czasu, a które niekoniecznie.

Pułapka w kształcie litery T

Jeśli chcesz rozwijać swoją karierę, prawdopodobnie spotkałeś się z ideą „ludzi w kształcie litery T”. Są to ludzie, którzy są ekspertami w jednej dziedzinie, ale mają również doświadczenie w innych. Na przykład, możesz być dobrym back-end developerem z pewną wiedzą na temat DevOps, zarządzania produktem czy na temat front-endu.


Ludzie w kształcie litery T są bardzo wartościowymi pracownikami, ponieważ ich wszechstronna wiedza ułatwia komunikację i zwiększa kreatywność.

Tak więc szeroki zakres zainteresowań jest tutaj bardzo korzystny. Jestem zwolennikiem wszechstronności i uważam, że jest to kluczowa kompetencja przyszłości, jednak aby zostać osobą w kształcie litery T, musisz posiadać mocno specjalistyczną wiedzę na inne tematy.

Ukończenie kursu lub dwóch nie oznacza jeszcze, że rozumiesz już daną dziedzinę. Co gorsza, może Ci to dać fałszywą wiarę w swoje możliwości. Uczenie się zbyt wielu rzeczy i łapanie kilku srok za ogon na pewno nie pomoże Ci w rozwoju kariery. Jedyne co uda Ci się osiągnąć to status amatora.

Podobnie jak w przypadku kiedy po napisaniu dwóch postów na bloga nie stajesz się od razu pisarzem lub po miesięcznym kursie nie stajesz się kompetentnym programistą.

Osoba o kształcie litery T to nie ktoś, kto po prostu ukradkiem czmychnął przez naukę jakiejś dziedziny. Musisz dokładnie zaplanować, w jaki sposób pogłębić swoją podstawową dziedzinę wiedzy i oprócz tego rozwinąć umiejętności dodatkowe.

Aby osiągnąć sukces, należy zidentyfikować kluczowe kompetencje i wyzwania, a później skupić się na nich, usuwając przy tym wszystkie zbędne kursy. Na moim przykładzie pokażę Wam jak do tego podejść.

Szlifuj swój główny skill

O mnie: Jestem kompetentnym front-end web developerem z pewną wiedzą na temat programowania back-end w kilku językach. Stworzyłem kilka aplikacji mobilnych przy użyciu React Native. Taki jest mniej więcej mój zestaw umiejętności, z silnym pochyleniem w stronę front-endu. Czas wybrać to, co najważniejsze i odciąć to, co zbędne.

Wybierz najważniejsze obszary

W moim przypadku skupienie się na front-end development jest jak najbardziej sensowne — zarówno na stronach internetowych, jak i w aplikacjach mobilnych. Aby być dobrym front-end developerem, muszę być ekspertem w JavaScript, więc wszystkie kursy na temat zaawansowanego JavaScriptu będą dla mnie przydatne, ale muszę usunąć z listy rzeczy do zrobienia kurs kreatywnego kodowania.

Mógłbym zbudować dowolną aplikację za pomocą zwykłego JavaScriptu, ale często jest to po prostu niepraktyczne. Ja pracuję głównie z Reactem, więc skupię się właśnie na nim i jego ekosystemie. Do widzenia Angular i Vue. Będzie mi ciebie brakowało, Svelte.

Wracając... moje kluczowe umiejętności to JavaScript i React. Inne języki i frameworki mogą być używane jako umiejętności dodatkowe, ale cel jest dla mnie jasny.

Ucz się tylko tych umiejętności, z których później skorzystasz

JavaScript i ekosystem Reacta to szerokie tematy, więc muszę jeszcze bardziej zawęzić swoje pole zainteresowań. Najlepszym sposobem będzie więc wybór kursów, które można wykorzystać w praktyce.

Reduxa uczę się już trzeci raz. Pierwsze dwa razy uczyłem się go, ponieważ w sieci wszyscy twierdzili, że jest to niezbędne. Nie chciałem pozostać w tyle, więc obejrzałem tutorial i przeczytałem dokumentację. Jednak nie użyłem go do żadnego projektu, i koniec końców szybko wszystko zapomniałem.

Przyszedł czas kiedy potrzebowałem Reduxa do profesjonalnych działań. Pracowałem z nim zaraz po ukończeniu kursu. Napotkałem kilka problemów, ale z pomocą dokumentacji udało mi się doprowadzić wszystko do końca i teraz używam Reduxa kiedy tylko chcę.

Prawdziwa nauka ma miejsce dopiero wtedy, gdy pracujesz nad projektem i intensywnie myślisz. Nie pomoże żadna ilość tutoriali , jeśli nie wykorzystasz swojej wiedzy w praktyce. Uczenie się rzeczy, których nie zamierzasz używać w projektach zawodowych lub osobistych, to tylko strata czasu.

Nie oszukuj się

Nigdy nie zakładaj, że rozumiesz temat, chyba że potrafisz go jasno wytłumaczyć komuś, kto ma jeszcze mało doświadczenia. Zawsze zwracaj uwagę na fakt, że czegoś możesz nie rozumieć i wystrzegaj się fałszywej pewności siebie.

 „Pierwsza zasada brzmi, że nie wolno wam oszukiwać siebie samych - a osoba, którą najłatwiej wam będzie oszukać, jesteście właśnie wy sami”
Richard P. Feynman


Można powiedzieć, że jeśli kopiesz wystarczająco głęboko, to prawie wszystko w programowaniu jest skomplikowane. Na przykład, czy wiesz jak zarządzać stanem w React? Możesz przekazać propsy przez komponenty lub zastosować Context API. Alternatywnie, możesz wybrać bibliotekę (może być to Redux lub MobX), a niedawno Facebook wypuścił nową bibliotekę zarządzania stanami o nazwie Recoil.

Rozwiązań dla problemu zarządzania stanem jest wiele. Jak myślisz, dlaczego tak jest? Dlatego, że zarządzanie stanem jest trudne. Możesz łudzić się, że zrozumiesz wszystko po ukończeniu kilku tutoriali, ale tak nie jest. Dopiero gdy zetkniesz się z prawdziwymi wyzwaniami, zrozumiesz, dlaczego te biblioteki istnieją, jakie problemy rozwiązują i dlaczego jest to skomplikowane.

Pamiętaj, że sam sobie musisz stawiać wyzwania i pamiętaj: programowanie jest trudne i prawdopodobnie nie rozumiesz go tak dobrze, jak myślisz, że rozumiesz.

Wybierz umiejętności dodatkowe

Aby rzeczywiście zostać osobą w kształcie litery T, musisz rozwinąć kilka dodatkowych umiejętności. W moim przypadku wybiegało to nieco poza zakres. W ciągu ostatnich kilku miesięcy zacząłem (i nigdy nie ukończyłem) kursy na tematy od DevOps przez język Golang po uczenie maszynowe. Czy było fajnie? Pewnie. Czy przydało się to mojej karierze? Niekoniecznie.

Podstawy nauki umiejętności dodatkowych powinny być podobne do tych z głównego obszaru zainteresowań. Powinieneś wybrać umiejętności zgodnie z Twoimi priorytetami i szansami na ich wykorzystanie w prawdziwym życiu. Sama teoria tutaj nie zadziała. Dlatego bezlitośnie usuwaj z listy kursy, które Ci się nie przydadzą.

Jeśli chcesz rozwijać karierę, musisz skupić się na umiejętnościach, które mogą okazać się korzystne w dłuższej perspektywie i są na tyle bliskie Twojej podstawowej specjalizacji, że możesz skorzystać na częściowym pokrywaniu się wiedzy.

Ja niestety nie mam silnego zaplecza matematycznego, więc nadszedł czas, aby pożegnać się z uczeniem maszynowym oraz z AI. Wygląda na to, że nie zostanę „mistrzem danych”.

Jeśli chodzi o niektóre popularne języki back-end, nie będę mógł ich używać w mojej firmie w najbliższej przyszłości, więc jest to tylko strata czasu. DevOps to też trudne wyzwanie. Mam wrażenie, że muszę się tego nauczyć, ale nie wygląda na to, że będę miał okazję z tym pracować, więc po prostu to pominę.

Ponieważ pracuję z designerami, dobrym pomysłem będzie nauczenie się podstaw designu. Bardzo lubię pisać o programowaniu, więc książki na ten temat na pewno muszą znaleźć się na mojej liście rzeczy do zrobienia. W moim przypadku umiejętności zarządzania projektami nie są tak dobre, jakbym chciał, więc rozwój w tym obszarze powinien stać się moim priorytetem.

Podsumujmy

Wciąż czuję pokusę, by dodawać do listy kolejne kursy. I to uczucie nie zniknie. Jednak staram się wybierać tylko te, które na dłuższą metę mogą przynieść korzyści mojej karierze.

W ciągu ostatnich kilku tygodni wiele z nich usunąłem z mojej listy. A Ty które usuniesz ze swojej?


Oryginał tekstu w języku angielskim przeczytasz tutaj

<p>Loading...</p>