Czy istnieje przyszłość poza pisaniem świetnego kodu?

Opublikowany: 2022-03-10
Szybkie podsumowanie ↬ Wielu programistów dochodzi do punktu w swojej karierze, w którym osiągnęli wiele swoich celów i zastanawiają się nad przyszłością. Chociaż niektórzy są pewni, że podążają tą samą drogą, inni mogą odczuwać potrzebę zbadania różnych opcji, w których ich umiejętności można wykorzystać, aby mieć szerszy wpływ na projekty, nad którymi pracujemy i zespoły, z którymi pracujemy. Zbadałem niektóre z różnych kierunków, które możemy obrać, oraz uzupełniające się umiejętności, które mogą nam pomóc podczas naszej podróży.

Zróbmy szybkie ćwiczenie. Załóżmy, że pracujesz zawodowo jako programista od ponad pięciu lat. Zdobyłeś praktyczne doświadczenie dzięki dziesiątkom projektów i utrzymywałeś ostre umiejętności, poznając nowe techniki, narzędzia i frameworki. Współpracujesz z różnymi bibliotekami, rutynowo refaktoryzujesz pisany przez siebie kod i okresowo wymieniasz przeglądy kodu z kolegami.

Ale wtedy pojawia się ktoś i zadaje ci jedno pytanie, którego nie miałeś szansy rozgryźć: Gdzie widzisz siebie za dziesięć lat?

Możesz się martwić, że jeśli pójdziesz dalej tą samą drogą, będziesz po prostu starszym programistą, który koduje trochę lepiej i trochę szybciej. Niektórzy programiści są zadowoleni z tej myśli i po prostu nie mogą się doczekać, aby kontynuować tę drogę. Ale inni mogą zdać sobie sprawę, że ten rollercoaster lekcji i rozwoju, przez który przeszedłeś, szybko przechodzi w tryb tempomatu.

Gdy poczujesz, że masz pełną kontrolę nad swoją rolą programisty, zaczynasz odczuwać potrzebę robienia więcej. Nie więcej tego samego, ale bardziej osobisty rozwój. Może coś innego.

W ciągu ostatnich kilku lat mojej kariery szukałem odpowiedzi. Miałem okazję pracować (i uczyć się od) wielu odnoszących sukcesy programistów, którym udało się przejść na bardzo wpływowe role, w których maksymalnie wykorzystują swoje zaplecze techniczne. Każdy z nich zbadał inną ścieżkę, na której byli w stanie dokonać organicznego przejścia, opierając się na równowadze między swoimi umiejętnościami podstawowymi a umiejętnościami uzupełniającymi.

Więcej po skoku! Kontynuuj czytanie poniżej ↓

Dokąd możemy się udać stąd?

Istnieje kilka nowych ścieżek, które możemy odkrywać, które mogą zmusić nas do wykroczenia poza nasze strefy komfortu i jednocześnie czerpania korzyści z zestawu umiejętności, nad którymi tak ciężko pracowaliśmy.

Jako programiści, większość czytanych przez nas artykułów, książek o programowaniu, a nawet porad naszych rówieśników, są dostosowane do tego, aby pomóc nam skupić się tylko na pisaniu lepszego kodu. Poza tym tak naprawdę nie uczymy się, jak pracować lepiej lub, ujmując to z bardziej filozoficznej perspektywy, jak ewoluować.

Zwykle nie mamy pojęcia, co dzieje się po osiągnięciu celów, które sobie wyznaczyliśmy, rozpoczynając karierę, ani o tym, czy jest coś, co chcemy robić poza programowaniem przez osiem godzin dziennie przez resztę naszego życia. Często nawet nie doceniamy naszego możliwego wkładu w zespół, gdybyśmy mieli robić coś innego niż pisanie kodu w najbliższej przyszłości. Nie jesteśmy pewni, jak możemy wywrzeć większy wpływ, mimo że nasza perspektywa i umiejętności są zdecydowanie potrzebne na bardziej wpływowych stanowiskach.

Posłuchaj branży

W 2008 roku, kiedy zaczynałem karierę jako programista frontend, nie było osoby na świecie, która nie słyszałaby o Marku Zuckerbergu, młodym programiście, który stał się milionerem, zmieniając sposób komunikowania się ludzi. Pokolenie milenijne zaczęło romantyzować ideę legalnego wzbogacenia się podczas noszenia bluzy z kapturem. Nagle prawie każda osoba z mojego pokolenia zapragnęła zostać programistą.

Teraz, ponad dekadę później, zaczynamy odczuwać prawdziwy wpływ tego boomu programistów. Dzięki tegorocznej ankiecie Stack Overflow Survey dowiedzieliśmy się, że ponad dwie trzecie respondentów ma mniej niż dziesięć lat doświadczenia zawodowego w kodowaniu.

Wyraźnie widać, że brakuje doświadczonych programistów z umiejętnościami przywódczymi, więc teraz firmy muszą znaleźć kreatywne sposoby na rezerwowanie swoich najlepszych talentów w taki sposób, aby mogły nadzorować większą liczbę młodszych programistów i utrzymać jakość pracy. Tworzy to organiczną strukturę przywództwa w rozwijających się zespołach.

Branża rozwija się w szybkim tempie, podobnie jak nasza rola jako deweloperów. Coraz częściej spotyka się dyrektorów i menedżerów, którzy zaczynali jako programiści, a firmy otwierają teraz więcej stanowisk kierowniczych, które wymagają doświadczenia w rozwoju.

Można śmiało powiedzieć, że chociaż programowanie było uważane za kolejną pracę fizyczną, rola programisty rośnie do bardzo wpływowych stanowisk w organizacjach. Ale nie ma pisemnej mapy drogowej ani sprawdzonej formuły, która poprowadzi nas przez to przejście.

Jakie są niektóre z naszych opcji?

W mojej karierze nadszedł moment, w którym zadano mi straszne pytanie o przyszłość, którą sobie wyobrażam. Nie miałem odpowiedzi. W rzeczywistości wywołało to jeszcze więcej pytań, które nie przyszły mi do głowy.

Pracowałem już jako frontend lead, więc dostawałem coraz więcej obowiązków poza pisaniem kodu, co kojarzyło mi się z możliwą przyszłością, w której prawdopodobnie nie będę programować. Możliwość wywierania większego wpływu na różne projekty była zdecydowanie atrakcyjna.

Postanowiłem więc zbadać, jakie opcje mogą być interesujące dla mojej przyszłości. Przyjrzałem się ścieżce, jaką przeszli niektórzy koledzy, którzy z powodzeniem przeszli z roli programistów na ważne stanowiska w firmie. Większość przypadków polegała na stawianiu małych kroków i znajdowaniu się we właściwym miejscu o właściwym czasie. Ale ogólnie rzecz biorąc, wszyscy zaangażowali się w te trzy główne grupy działań:

  1. Zarządzanie zespołami i projektami
    Prowadzenie grupy ludzi do wielkości brzmi ekscytująco, ale nie jest łatwe. Jako doświadczeni programiści, istnieje wiele opcji rozwoju, które obejmują zarządzanie grupą innych programistów jako zespół lub zarządzanie projektami w zespołach multidyscyplinarnych. Chociaż jest to bardzo satysfakcjonująca opcja, wymaga odejścia od klawiatury i nauki delegowania, co może być bardzo trudne dla programistów przyzwyczajonych do osobistego rozwiązywania wszystkich swoich problemów.

    Przejście do pozycji, w której mamy większą kontrolę nad procesem i zespołem zaangażowanym wokół niego, najprawdopodobniej doprowadzi do konieczności poświęcenia kontroli, do której jesteśmy przyzwyczajeni, jeśli chodzi o kod.
  2. Mentoring i rozwój talentów
    Ilu szefów marzyło o klonowaniu swoich najlepszych programistów? W prawdziwym świecie nadal jest to mało prawdopodobne, więc sprytni szefowie robią kolejną najlepszą rzecz: tworzą procesy, w których najmądrzejsi programiści mogą aktywnie przekazywać swoją wiedzę swoim współpracownikom.

    Musimy pamiętać, że chociaż niektórzy programiści robią to w sposób naturalny na co dzień, zawsze bardziej efektywne jest, gdy starsi programiści otrzymują bardziej formalną rolę, w której mogą rutynowo przydzielać swój czas na pracę nad rozwojem ich zespoły. Można to zrobić za pomocą przeglądów kodu, warsztatów i indywidualnych ocen z niektórymi kolegami.
  3. Bycie w branży technologicznej
    Bardzo często słyszy się, jak deweloperzy narzekają na to, jak projekty były przedstawiane lub definiowane, gdy były sprzedawane klientom. I w większości przypadków jest już za późno na narzekanie.

    Z mojego doświadczenia szczęśliwsza byłam pracując nad projektami, w które deweloperzy byli zaangażowani podczas sprzedaży. Zawsze wspaniale jest mieć logicznie myślącego sojusznika, który sygnalizuje potencjalne problemy techniczne w pokoju, w którym nikt inny nie miał o tym pojęcia.

    W dużych projektach cyfrowych kluczowe są role konsultantów i dyrektorów technicznych. Zaangażowanie programistów w warsztaty dla klientów i tworzenie dokumentacji technicznej na początku każdego projektu może potencjalnie zmienić zasady gry w cyklu życia projektu.

Praca nad nowym zestawem narzędzi

Powiedzmy, że chcemy się dalej rozwijać i rozpocząć przyszłość, w której chcemy robić więcej niż tylko pisanie kodu. Kiedy już mamy pojęcie o tym, dokąd zmierzamy, jest bardzo prawdopodobne, że nie jesteśmy jeszcze przygotowani na skok. W końcu po prostu skupiliśmy się na zdobywaniu umiejętności, które czynią nas lepszymi programistami.

Gdy zdamy sobie sprawę, że musimy się jeszcze wiele nauczyć, musimy zacząć pracować nad odpowiednim zestawem umiejętności. Tym razem będzie inaczej: nie będziemy uczyć się nowych języków, frameworków ani bibliotek. Będziemy musieli zaopatrzyć się w umiejętności, które mogły nie wydawać się ważne w przeszłości, ale są kluczowe dla podjęcia kolejnych kroków na tych niepewnych terytoriach.

Komunikacja

Dla każdego, kto ma pracę w jakiejkolwiek firmie, byłoby to oczywiste. Wiadomo, że komunikacja jest podstawą współpracy w ramach każdego typu organizacji. Niestety od wielu lat programiści otrzymywali darmową przepustkę w tej dziedzinie. Potrzeba znalezienia logicznie myślących, pracowitych, pełnych pasji osób pozwoliła nam prosperować bez konieczności posiadania naprawdę świetnych umiejętności komunikacyjnych, a nawet bycia bardzo niezręczną grupą.

Jeśli mamy jakiekolwiek aspiracje do pracy z różnymi zespołami i klientami, jasne jest, że będziemy musieli popracować nad poprawą wszystkich aspektów naszej komunikacji. Spotkania jeden na jednego, prezentacje i ważne e-maile będą od teraz musiały być starannie dopracowane.

Własność

Logiczne nastawienie wpłynęło na sposób, w jaki organizujemy naszą pracę. Jako programiści zazwyczaj mamy czarno-białe wyczucie, gdzie zaczyna się i gdzie kończy się nasza praca. Jest to pozytywne, gdy pozwala nam jasno zrozumieć pracę, którą musimy wykonać, ale czasami uniemożliwia nam przekraczanie naszych granic i pracę poza strefami komfortu.

Pierwszym porządkiem biznesowym jest przejmowanie na własność wszystkich aspektów pracy, w którą jesteśmy zaangażowani. Zacierając granicę określającą, gdzie kończy się praca programisty, jesteśmy w stanie przejąć nowe obowiązki i ostatecznie przejść do różnych ról.

Przywództwo

Gdziekolwiek zmierzamy w naszej karierze, nasi koledzy z zespołu będą nam potrzebować zaufania. Będziemy potrzebować ich, aby wiedzieli, że zmierzamy we właściwym kierunku, nawet jeśli przez chwilę nie jest to całkowicie jasne.

Aby to osiągnąć, musimy być w stanie udowodnić swoją wiedzę, musimy być pewni naszych decyzji i na pewno będziemy musieli być w stanie przyznać się do naszych błędów i szybko się na nich uczyć.

Nie jest to proste zadanie i nie będzie można go sprawdzić na liście. Będzie to wymagało naszego zaangażowania tak długo, jak długo będziemy chcieli rozwijać się poza bańką rozwoju.

Zabrać się do pracy

Kiedy już jesteśmy pewni, że chcemy zrobić skok w naszej karierze, musimy zacząć iść we właściwym kierunku. Pierwszym krokiem byłoby zbadanie opcji, podjęcie decyzji, którą ścieżką chcesz podążać, i zobaczenie, jak ta ścieżka pokrywa się z twoją obecną rolą.

Czy Twoja firma oferuje przestrzeń, w której mógłbyś być mentorem lub managerem? Czy uważasz, że jest szansa, aby tam się to wydarzyło, czy uważasz, że będziesz musiał kontynuować swój rozwój gdzie indziej? To tylko niektóre z pytań, które musisz sobie zadać, a także doprowadzą do rozmowy z niektórymi kolegami z zespołu i menedżerami.

Zrobienie kroku w nowym kierunku będzie wymagało ciężkiej pracy, otwartego umysłu i odporności na porażkę i ponownej próby tyle razy, ile potrzeba.