logo

Jak wyznaczyć swój programistyczny kierunek rozwoju, osiągać cele i się przy tym nie zajechać

Długość wpisu: 12 min

W ostatnim wpisie poruszyłem temat tego, czy trzeba ciągle w IT zapierdzielać.

Wyszło, że nie trzeba i przeważnie ciągłe zapierdzielanie oznacza, że nie mamy jasnego celu i patrzymy na to co robią inni, którzy często też działają bez celu, a przez to odczuwamy FOMO, sami zaczynami cisnąć i miotać się we wszystkie strony.

Jednakże, wiele osób, z różnych powodów nie ma wyboru i musi pracować ciężej.

Dobrym przykładem są tu osoby, które się przebranżowiły.

Wersja light, to są osoby przebranżowione, które jeszcze nigdzie na serio nie pracowały. Wtedy do kosza idzie tylko całe wykształcenie ze studiów/szkoły.

Wersja hard to osoby, które miały już karierę w czym innym i zarabiały całkiem niezłą kasę, ale z jakiegoś powodu musieli z niej zrezygnować.

Takie osoby są przyzwyczajone do konkretnych kwot, które wpływają na konto co miesiąc. Często nie jest łatwo wrócić do tego samego poziomu zarobków programując.

Są jeszcze ludzie, którzy chcą po prostu być najlepsi i pływać w złocie. Chcą wbić na poziom #programista15k lub wyżej i mieć jednocześnie fun z tej pracy.

Nie chcą siedzieć w gównianych projektach, gdzie trzeba poprawiać kod pisany w Perlu, który spłynął zza indyjskiej granicy.

Niestety, jeśli faktycznie chcesz być najlepszą osobą, to z moich obserwacji wynika, że trzeba zapierdzielać.

offtop box

Jeśli ktoś uchodzi za “najlepszego” i nie zdobył tego tytułu ciężką pracą, to najprawdopodobniej szybko to straci.

  • To jest jak z tymi ludźmi co wygrali na loterii kilkaset milionów i przejebali je w miesiąc, żeby wrócić pod most.
  • Albo z gwiazdami kina, które nie były gotowe na sławę i przez to stoczyły się na dno.
  • Tak samo jest ze zbyt szybko awansowanymi “liderami”, “seniorami” itp.
  • Trochę o tym pisałem tutaj: Jak sprawdzać, czy nie hamujesz swojego rozwoju?.

Ok, przejdźmy do meritum.

Czy wystarczy tylko sama praca na etacie?

Nie wystarczy.

Programowanie to branża ciągłego dokształcania, a nowe technologie pojawiają się codziennie. Nie dasz rady ogarnąć wszystkiego w pracy.

Stary, dobry Uncle Bob mówi, że poza etatem trzeba na programowanie poświęcić 20h tygodniowo.

Gdy podzielimy to na 7 dni w tygodniu, to wychodzi prawie 3 godziny dziennie.

Dla jednych mało, dla innych dużo.

Nie liczyłem tego dokładnie, ale wydaje mi się, że mniej więcej ta liczba pokrywa się z moimi obserwacjami.

Czy potrzeba aż tyle? Ja swojego czasu robiłem więcej, ale nie każdy musi i jeśli odpowiednio mocno sprecyzujesz swój cel, to dasz radę to ograniczyć.

Na rzecz tego wpisu załóżmy, że “posiadanie celu” oznacza, że jesteś w jakimś punkcie A i wiesz gdzie jest punkt B, w którym chcesz się znaleźć.

Równie dobrze możesz nazywać to kierunkiem.

(Są ogólnie dwa typy ludzi - jedni ustalają cele metodą SMART, a inni po prostu nadają sobie kierunek, w którym chcą się poruszać. Dla potrzeb tego wpisu nie ma to znaczenia. Ja staram się ustalać cele metodą SMART.)

Jak określić punkt B i do niego dotrzeć?

Tutaj wchodzi gwiazda naszego wpisu, czyli Arnold Schwarzenegger, który jest mistrzem osiągania celów.

Mógłbym tutaj wymienić kilka różnych podejść, ale skupię się na Arnim, bo on jest ucieleśnieniem (dosłownie) wszystkich systemów jakie znam.

Come with me

Lekcja pierwsza: bardzo dokładnie określ czego chcesz, żeby wiedzieć co masz robić.

W czasach młodości Arniego, Reg Park był wielką gwiazdą kulturystyki, sławnym oraz bogatym aktorem i otaczały go piękne dziewczyny.

Arnie chciał się wydostać z zadupia w Austrii, przeprowadzić do Ameryki i mieć dokładnie to samo co Reg.

Wolność, sławę, kasę i dziewczyny.

Wszystkie jego działania były podporządkowane dotarciu do tego celu.

Arnie dokładnie zawęził czego chce.

Przełóżmy to na programowanie.

👉 Wiele osób ma cele w stylu “chcę się nauczyć Reacta”. I jest to zbyt słabo sprecyzowany cel.

👉 Celem musi być coś w stylu “chcę się nauczyć Reacta, żeby pracować w firmie X i robić projekty dla startupów z Doliny Krzemowej”.

👉 Albo “chcę się nauczyć Reacta, żeby pracować w Facebooku z Danem Abramovem nad kolejnymi wersjami Reacta”.

👉 Albo “chcę się nauczyć Reacta, żeby prowadzić szkolenia stacjonarne dla backendowców, którzy nie umieją we frontendy”.

Droga do tych trzech celów będzie ZUPEŁNIE INNA.

Cel podyktuje Ci jakie konkretne umiejętności musisz zdobyć, żeby dotrzeć do każdego z nich.

A co jeśli nie wiem czego chcę?

Bardzo częste pytanie.

Zła wiadomość: musisz się dowiedzieć.

Dobra wiadomość: jest rozwiązanie, ale dzieli się na dwie części.

Część pierwsza: Możesz nie wiedzieć co w ogóle jest możliwe. Typowy problem początkujących, którzy nie znają branży i nie wiedzą co można w niej robić.

Rozwiązanie: Pytać wszystkich wszędzie i powiększaj swoją znajomość tematu. Poszerzaj worek możliwości.

Przeszukaj Reddita, Stacka, grupy na Facebooku. Znajdź jakiegoś mądrego człowieka na social media i napisz mu DM.

Programiści uwielbiają pomagać, bo to pompuje ich ego. Pamiętaj, żeby dokładnie opisać swój problem i czego potrzebujesz, bo programiści są też drażliwi, gdy dostają gówniane pytania (ci mądrzy tak mają, ci mniej mądrzy odpowiadają na każde pytanie, nie wiedząc nawet o co dokładnie pyta druga strona).

Część druga: Możesz wiedzieć co jest możliwe, ale nie wiesz co wybrać. To jest taki paraliż decyzyjny, wynikający często z dobrobytu i mnogości możliwości. Jedna z naszych chorób pokoleniowych.

Rozwiązanie: Postaw hipotezę jak naukowcy. Wystarczy, że określisz co Ci się wydaje, że chcesz.

Nie musisz wiedzieć na 100%. I tak będziesz zmieniać cele.

Możesz się zastanawiać w nieskończoność, ale musisz podjąć jakąś akcję.

Nie ma znaczenia, że robisz zły krok, bo jeśli jest zły to w końcu poczujesz, że nie idziesz w tę stronę, która Cię kręci.

A co jeśli chcę wyznaczyć sobie kilka celów na raz?

Powiedzmy chcesz być jak Dan Abramov i robić open-sourcy i pracować dla startupów.

Jeśli wybierzesz kilka rzeczy na raz to ryzykujesz, że znowu zaczniesz miotać się we wszystkich kierunkach.

Nie polecam takiej opcji, bo właśnie przez takie myślenie kończymy potem wkurwieni, z siwymi włosami i podkrążonymi oczami.

Doświadczyłem wszystkich tych trzech objawów i dopiero kiedy skupiłem się na jednej rzeczy, to odzyskałem balans i przestałem się denerwować.

Potem Ci powiem kiedy można dorzucać kolejne cele.

Lekcja druga: znajdź kogoś, kto jest miejscu, w którym chcesz być, albo w którym wydaje Ci się, że chcesz być

Mentor

Arnold miał swojego mentora Rega.

Początkowo, Arnie reverse-engineerował Rega na odległość przez czytanie magazynów.

Potem, Reg został jego mentorem w realu i pokazywał co jeszcze można osiągnąć, w jakim kierunku się rozwijać. Pokazywał nowe możliwości.

Dzięki temu Arnie wiedział co musi osiągnąć, jakie rzeczy musi ćwiczyć i jakie kroki podejmować.

Tak samo jest w programowaniu.

Chcesz się dowiedzieć jakich umiejętności potrzebujesz i w jakiej kolejności je zdobywać.

Możesz w tym celu podejrzeć drogę osób, które znajdują się w tym miejscu, w którym chcesz być.

Nie musisz nawet nikomu truć dupy, bo większość takich mentorów udziela się online, nagrywa podcasty, jutuby, pisze blogi, albo stories na Instagramie.

Wystarczy znaleźć miejsce, z którego nadaje ta osoba i zacząć podglądać jaką drogę przeszła, jak zaczynała, jakie ma umiejętności, jakich narzędzi używa, itd.

Chodzi tutaj o zbudowanie listy rzeczy, których będziesz potrzebować i ustawienie ich w kolejności.

Gdy będzie Ci mało, to zawsze możesz napisać do takiej osoby. W dzisiejszych czasach jest to prostsze niż kiedykolwiek. Do największych gwiazd programowania można po prostu napisać na Twitterze i oni się nie obrażą.

I znowu, pamiętaj, że w zależności od Twojego celu, będziesz szukać w innym miejscu.

Chcesz pracować w Facebooku z Danem Abramovem, to szukaj na blogach Facebookowych, na Twitterze i przejrzyj jego kontrybucje na GitHubie.

Chcesz szkolić z Reacta, to znajdź kogoś kto to robi, zapisz się na jego szkolenie, obserwuj tą osobę, a na koniec z nią pogadaj.

Chcesz pracować dla firmy X, która robi projekty dla startupów, to znajdź meetup, który ta firma organizuje i gadaj z ludźmi, którzy tam pracują. Dowiedz się jakie skille wymagane są w pracy, co musisz umieć na początek i gdzie szukać tej wiedzy. A na koniec spytaj jak się dostać do nich do pracy :).

Lekcja trzecia: think BIG, act small

Arnie miał wielkie plany, ale nie realizował wszystkich na raz.

Skupił się na jednej rzeczy - kulturystyce - bo wiedział, że to otworzy mu drogę do Ameryki i do aktorstwa.

Nie skupiał się na wszystkim na raz tylko na pierwszym i najważniejszym kroku, który przesunie go w stronę celu.

Skąd to wiedział? Patrz punkt wyżej - obserwował co robi Reg Park.

“Think BIG, act small” to jedna z najważniejszych zasad produktywności i ustalania oraz osiągania celów.

Zbyt wiele osób próbuje robić zbyt wiele rzeczy na raz. Z różnych powodów. Część opisywałem w poprzednim wpisie.

Tutaj zakładamy, że masz już swój jeden cel i skupiasz się tylko na nim.

Gdy już masz listę wymaganych umiejętności i rzeczy do nauczenia w ramach tego celu, to musisz rozbić go na mniejsze części i ustalić priorytety.

Klasycznie, zacznij od rzeczy najważniejszej i rozbij ją na małe kroczki. Będziesz wtedy wiedzieć, co dokładnie robić każdego dnia.

Do tego zadania polecam użyć genialnego pytania focusującego, z książki “The One Thing”:

What’s the ONE Thing you can do, such that by doing it, everything else will be easier or unnecessary?

Po mojemu to jest tak:

Jaka jest jedna rzecz, którą możesz zrobić na samym początku, po której wykonaniu, kolejne kroki okażą się znacznie prostsze, albo wręcz niepotrzebne.

Jest to doskonałe pytanie do wyznaczania priorytetów.

Możesz tego pytania używać przy planowaniu roku, miesiąca, tygodnia, dnia, a nawet godziny. Wszystko zależy od tego jak duży jest to cel.

Dla każdego z celów, pytanie focusujące może udzielić nam innych odpowiedzi i to przełoży się na inne działania.

Kilka przykładów różnych umiejętności, których możesz potrzebować w zależności od celu:

Praca w Facebooku - doskonała znajomość JSa, React, zarządzanie projektem OSS na GitHubie, prowadzenie społeczności, pisanie dokumentacji i wpisów na blogu.

Szkolenia - dobra znajomość JSa, React, tworzenie szkoleń (struktura, zadania, itd), uczenie i swobodne przekazywanie wiedzy, marketing, sprzedaż.

Startupy - dobra znajomość JSa, React, praca w zespole, rozmawianie z klientami, analiza biznesowa, szybkie dowożenie MVP, praca w stresie i dziwnych strefach czasowych.

Zauważ, że początki są podobne dla każdego z tych celów.

Dzięki temu, można spokojnie zacząć działać i sprawdzać jak nam się podoba kierunek, w którym zmierzamy. Jeśli się nie podoba, to możemy go małym kosztem zmienić.

Przy okazji, poruszając się w stronę celu, będą pojawiać się nowe możliwości.

Arnold zaczął od kulturystyki, bo to była ta jego jedna rzecz, która wszystko ułatwiła. Potem pojawiły się filmy. W miarę jak grał w filmach to pojawiały się kolejne możliwości, gdzie największą z nich wszystkich była możliwość zostania gubernatorem Kalifornii.

Dla każdej z tych nowych możliwości Arnie nadal stosował zasadę think BIG, act small.

W tamtych czasach Kalifornia była w dużym kryzysie. Celem Arniego było wyciągnięcie jej z tego kryzysu (think big), ale zaczał od robienia małych kroczków, każdego dnia (act small).

Governator

Oczekuj zmiany

W miarę jak będziesz się rozwijać i zdobywać nowe informacje, Twój plan będzie trzeba dostosować do nowych warunków.

Tutaj znowu pojawi się potrzeba ustalenia priorytetów i znowu możesz wykorzystać pytanie focusujące.

Zmiana to jest najważniejsza rzecz w programowaniu, ale jest też bardzo ważna w rozwoju. Dlatego te taktyki, które opisywałem w poście o hackowaniu braku doświadczenia aplikują się do ustalania ścieżki kariery. Polecam przeczytać:

“Jak hackować brak doświadczenia optymalizując pod kątem zmiany”

Kiedy dorzucać kolejne cele i zacząć nad nimi pracować?

Jest kilka sposobów. Jeden z nich to rozwój T-shape i opisywałem go tutaj:

“Jak zostać specjalistą, który zna się na wszystkim”

Drugi sposób, który polecam, to obserwowanie kiedy robisz coś już na tyle dobrze, że zaczyna Cię to nudzić.

To jest jak z przechodzeniem do kolejnej lokacji w grach RPG. Kiedy już nie masz co robić, ale wszystkie pozostałe zadania są nudne, to znaczy, że warto ruszyć dalej.

Z gier można wyciągnąć też inną naukę. Jeśli Twoim celem jest przejście do następnej lokacji, to czy musisz wykonywać wszystkie zadania poboczne?

No nie musisz. Dlatego wyżej, gdy podawałem wymagane umiejętności dla osoby, która prowadzi szkolenia z Reacta, albo pracuje dla startupów, to napisałem “dobra znajomość JSa”, bo “doskonała” nie pomoże Ci w osiągnięciu tego celu.

Możesz dążyć do doskonałości, a nie będzie Ci do niczego potrzebna i Twoja nauka będzie równoznaczna prokrastynacji. Niektórzy uwielbiają ten stan, tylko potem się dziwią, że stoją w miejscu.

Mając ciągle cel w głowie, nauczysz się odpuszczać. To jest bardzo trudne, ale tylko dzięki temu się nie zajedziesz i przestaniesz w końcu kręcić się w kółko, robiąc ciągle te same rzeczy.

Chasing tail

Arnold zrezygnował z kulturystyki kiedy nie było w niej już niczego więcej do osiągnięcia. Wygrał wszystko co było do wygrania.

Jednak grać w filmach zaczął znacznie wcześniej, bo kulturystyka znacznie szybciej otworzyła mu drzwi do kariery filmowej.

Potem, stopniowo filmy przechodziły w jego główne zajęcie.

Gdy osiągnął wszystko co było do osiągnięcia w filmach, to przeszedł dalej.

Myślę, że dość łatwo jest wyczuć tutaj analogię do rozwoju w IT.

Najprostsza opcja ze wszystkich

Jest jeszcze trzecia opcja, która spina dwie powyższe i która jest podstawą tego bloga.

Uważam, że jest to opcja najprostsza i najlepsza. Szczególnie dla tych, którzy nie wiedzą dokładnie co chcą robić.

Postaw sobie za cel dostarczanie wartości innym i rozwijaj się w kierunku, który pomoże Ci ten cel zrealizować.

Chodzi o to, żeby zapytać pracodawcy, kolegów z zespołu, klienta, lub zaobserwować, czego od Ciebie potrzebują.

Z mojego doświadczenia wynika, że rozwiązywanie problemów innych ludzi przynosi najwięcej zysków i gwarantuje co raz lepsze możliwości.

Podsumowanie

Jestem przekonany, że duża część osób zignoruje i nie zaaplikuje opisanych tutaj sposobów.

Jedni pomyślą, że za proste, inni, że za trudne, jeszcze inni “ja nie jestem kulturystą, tylko programistą”.

Nie zamierzam nawracać niewiernych, bo mnie to nie bawi, ale powtórzę tylko coś, co napisałem wyżej:

👉 Opisane tutaj taktyki leżą u podstaw każdego systemu produktywności i osiągania celów jaki znam.

Stop whining

Więc podsumowując:

Czasem trzeba zapierdzielać i ogólnie warto. A niektórzy po prostu lubią to robić.

Żeby się nie zajechać i mieć czas na inne rzeczy:

  1. Bardzo dokładnie określ czego chcesz, żeby wiedzieć co masz robić. Jeśli nie wiesz czego chcesz, to postaw hipotezę i zweryfikuj ją w jedyny słuszny sposób, czyli przez działanie.

  2. Ułatwiaj sobie życie i znajduj osoby, które są w miejscu, w którym chcesz być, albo w którym wydaje Ci się, że chcesz być.

  3. Think BIG, act small.

  4. Zawężaj pole działania. Do tego celu użyj pytania skupiającego: “Jaka jest jedna rzecz, którą możesz zrobić na samym początku, po której wykonaniu, kolejne kroki okażą się znacznie prostsze, albo wręcz niepotrzebne?”.

  5. Oczekuj zmian i na nie reaguj.

  6. Dorzucaj kolejne cele, a decyzje kiedy to zrobić podejmuj tak, jak podejmujesz decyzję, czy przejść do kolejnej lokacji w grach RPG.

  7. Jeśli chcesz maksymalnie uprościć swoją drogę i osiągnąć największy zysk z inwestycji, to skup się na dostarczaniu wartości innym i rozwijaj się w kierunku, który pomoże Ci ten cel zrealizować.

W tym wpisie opisałem jak działać na poziomie makro i ustalać cele. Jest jeszcze poziom mikro, czyli codzienna, regularna praca i budowanie nawyków. O tym też wkrótce napiszę.

Przypominam, żeby dołączyć do newslettera, żeby dostać powiadomienie o nowych materiałach i o ewentualnym webinarze, który uzupełnia punkt 7. Link poniżej.

Jeśli tu dotarłeś, to gratulacje. Zacznij działać i koniecznie napisz mi jeśli masz jakieś pytania. Zdaję sobie sprawę, że pominąłem tutaj wiele edge casów, na które możesz trafić :).

🖖

Podziel się:

Instagram, Twitter, YouTube, Facebook, LinkedIn