Czego NIE robić, aby stać się najlepszym programistą?

Często dostaję takie pytania: Jak stać się senior software deweloperem lub architektem? Jak z juniora dopiero co uczącego się pisać w Javie stać się liderem zespołu, który jeździ BMW i zarabia ponad 150 tys. USD rocznie? Jakie kroki nie zmarnują mojego czasu i doprowadzą mnie szybko do celu? Pozwólcie, że podzielę się moimi przemyśleniami.

Przed napisaniem tego artykułu zrobiłem research w Google i znalazłem mnóstwo ciekawych propozycji – być pomocnym, przyjacielskim, stosować dany język programowania ze względu na jego przydatność, nie swoje upodobania, dużo kodować, starać się przeciwstawiać się szefom, unikać konfliktów, ćwiczyć itp. Niektóre z nich są dobre, podczas gdy inne zupełnie błędne, ale większość z nich jest po prostu zbyt odległa od głównego celu.
 

Chciałbym podzielić się tym, co według mnie trzeba zacząć robić od jutra, aby w kilka lat stać się twórcą oprogramowania zarabiającym 100 USD na godzinę. Te zasady w moim przypadku sprawdzały się i wciąż się sprawdzają.
 

Nie bądź lojalny.


Firma, w której obecnie pracujesz to tylko pole do treningu, nic więcej. Nie poświęcaj jej swojego dodatkowego czasu. Bądź samolubny. Myśl tylko o sobie, twoich umiejętnościach, wiedzy i doświadczeniu. Płacą ci, żebyś był oddany i lojalny? Cóż, to ich wina. Wykorzystaj ich, aby nauczyć się nowych technologii, eksperymentować z nowymi pomysłami, trenować i uczyć się, zdobywać nowe certyfikaty, spotykać nowych ludzi itp. To oni mają być dla ciebie nie odwrotnie.
 

Nie pracuj.


Upewnij się, że programowanie jest twoją pasją, nie pracą. Wszystko inne musi się stać względem kodowania drugorzędne – rodzina, przyjaciele, WoW. Tworzenie oprogramowania jest twoją rodziną, pasją, przyjacielem i życiem. Bez takiego podejścia zawsze będziesz podległy tym programistom, którzy myślą w ten sposób. Nie pracuj przed laptopem – baw się. Lepiej niż gdziekolwiek indziej. Nigdy nie rób niczego, jeśli nie sprawia ci to radości. Jeśli zauważysz, że piszesz kod, bo musisz, a nie dlatego, że chcesz, przestań natychmiast! To oznaka tego, że coś robisz źle, strzelasz sobie w kolano, a twoja kariera jest zagrożona.
 

Nie nawiązuj przyjaźni.


Chodzi tutaj o relacje w miejscu pracy. Pamiętaj, że 99% ludzi nie zostanie ekspertami. Pozostaną zwykłymi programistami bez pasji i ambicji. Dla ciebie jest to groźne dlatego, że jeśli będą oni twoimi przyjaciółmi, nie będą chcieli, żebyś ich opuszczał. Nikt nie będzie zachwycony widząc twój rozwój, wówczas nawet najbliżsi przyjaciele staną się wrogami. Nawet podświadomie będą starali się zrobić wszystko, aby cię zatrzymać. A jeśli się rozwiniesz, będziesz musiał ich opuścić. Aby uniknąć tego wszystkiego, lepiej nie przyjaźnić się ze współpracownikami.
 

Nie bądź pomocny.


Na świecie jest ponad 10 milionów programistów i każdy z nich potrzebuje pomocy. Po co masz pomagać kolesiowi, który siedzi obok ciebie w biurze? Zapomnij o całym religijnym nonsensie – nie zbawisz świata pomagając ludziom, którzy cię otaczają. Jeśli naprawdę chcesz wspomóc branżę softwarową skup się na większych celach: stwórz produkt open source, napisz książkę, popraw dokumentację projektu, nad którym właśnie pracujesz. Pomagając ludziom rozwiązujesz ich problemy – okaleczasz ich, nic poza tym.
 

Nie proś o pomoc.


Spodziewaj się od innych programistów takiego samego nastawienia. Na StackExchange zarejestrowanych jest ponad 6 milionów kont. Jeśli potrzebujesz pomocy, zadaj pytanie tam. Nie proś o radę współpracowników. Naucz się uzyskiwać pomoc z publicznych źródeł lub z dokumentacji twoich projektów. Pytając ludzi, którzy cię otaczają ułatwiasz sobie życie tylko na krótką metę. Tak naprawdę pozbawisz się umiejętności szukania informacji. Staniesz się zakładnikiem swoich przyjaciół, którzy ci pomagają. Nie ucz się od nich – korzystaj z książek, StackOverflow, oprogramowań open source.
 

Nie marnuj czasu.


To prawdopodobnie najcenniejsza rada, którą muszę sam stosować, bo niestety marnuję mnóstwo czasu. Każdy rozwój polega na mówieniu NIE. Musisz być przygotowany, żeby powiedzieć to swoim przyjaciołom, rodzinie, swoim nawykom, marzeniom, projektom, kolegom w pracy, kursom, metodom i linijkom kodu. Porzuć projekty, które zabierają czas i nie dają nic w zamian. Nie oddzwaniaj do ludzi, których nie potrzebujesz. Tak, oni potrzebują ciebie, ale ty ich nie. Może to brzmi samolubnie i surowo, ale to jedyny sposób, aby dotrzeć tam, gdzie chcesz być. Czas to twój główny zasób – bądź bardzo zachłanny.
 

Nie idź po łebkach.


Musisz zainwestować w siebie. Po pierwsze, musisz kupować książki. Nie kradnij ich, mimo że możesz. Kupuj je, wydając swoje pieniądze. Dzięki temu potraktujesz je o wiele poważniej. Będziesz się szanować za posiadanie biblioteki. Poczujesz, że tworzenie oprogramowania jest z tobą cały czas – nie jest tymczasowe, nie jest twoją pracą, jest twoim życiem. Dwie książki miesięcznie to absolutne minimum. Po drugie, płać za certyfikaty z tego samego powodu. Po trzecie, kupuj oprogramowania, nie kradnij. Na koniec, nie oszczędzaj na laptopie. To o wiele ważniejsze niż nowy samochód czy prezent dla drugiej połowy. Twój laptop jest twoim instrumentem – musi być dobry i drogi marki Apple. Musisz iść va banque, jeśli chcesz wygrać.
 

Nie pracuj na pełen etat.


Za wszelką cenę staraj się unikać pracy na pełen etat – to ona zatrzymuje rozwój twojej kariery. Trwałe zatrudnienie da ci stabilne wynagrodzenie, wygodne środowisko pracy, przewidywalny zestaw technicznych problemów do rozwiązania i możliwość stania się ekspertem w jednej dziedzinie. Niestety jednocześnie taka praca zabiera strach. Jeśli się nie boisz, przestajesz się rozwijać. A żeby się rozwijać musisz stawiać czoła nowym zadaniom, nowym zespołom, nowym projektom i nowym rozmowom o pracę. Musisz bez przerwy udowadniać swoją wartość. Idealnie byłoby gdybyś miał możliwość pracować nad dwoma lub trzema projektami i zmieniać je co 6 lub 12 miesięcy.
 

Nie oszczędzaj.


Zapomnij o powiedzeniach, że pieniądze to nie wszystko, a interesujący projekt jest o wiele ważniejszy – one są dla przegranych. Pieniądze dają wszystko. Interesujący projekt musi być odpowiednio sfinansowany. Jeśli nie będzie finansowany, rynek go nie potrzebuje. Po co więc nad nim pracujesz? Widocznie nie jesteś tak dobry jak inni. Moja rada – nigdy nie zwracaj uwagi na te tanie historyjki. Żądaj pieniędzy od razu, tak dużo jak to możliwe.
 

Nie bądź sceptyczny względem certyfikatów.


Wielu programistów uważa, że cerryfikaty są niepotrzebne, bo nie weryfikują niczego i są sposobem dużych firm na dodatkowy zysk. Nie myśl tak. Certyfikaty pomagają formalizować twoją wiedzę, nakładać na nią granicę i uzupełniać luki. Ponadto, pokazują twoim potencjalnym pracodawcom, że poważnie traktujesz tworzenie oprogramowania.
 

Nie ignoruj zarządzania.


Bycie dobrym programistą to nie to samo, co bycie dobrym architektem lub team leaderem. Aby wspiąć się wyżej w hierarchii musisz zrozumieć na czym polega zarządanie projektem. Nie chodzi tylko o bycie miłym dla innych i noszenie garnituru. To nauka pełna zasad, reguł, metod i najlepszych praktyk. Musisz je przyswoić i nauczyć się je stosować. Tak samo jak nauczyłeś się Javy lub C++. Zacznij od PMBOK i uzyskaj certyfikat PMP.
 

Nie lekceważ angielskiego.


Angielski nie jest dla mnie i dla większości moich czytelników ojczystym językiem. Właśnie wam dedykuję ten akapit: musicie doskonalić umiejętność mówienie i pisania po angielsku, to bardzo ważne! Nigdy nie staniesz się rozchwytywanym architektem oprogramowania, jeśli nie będziesz dobrze pisał i mówił. To nie może być rosyjski pisany po angielsku. Musisz mówić po angielsku tak jak ludzie mówią w San Francisco, nie w Moskwie. Najlepiej uczyć się oglądając anglojęzyczne filmy z napisami. Musisz mówić jak Matt Damon lub Al Pacino, nie jak Mutko.
 

Nie ignoruj Open Source.


Musisz aktywnie działać w społeczności open source. To konieczne. Rozpocznij swój własny projekt, albo aktywnie współtwórz już istniejący. Tak czy inaczej, to niezbędne. Praca w zamkniętym środowisku firmy to jedno, natomiast pisanie kodu widocznego dla społeczności programistów z całego świata to coś zupełnie innego. Większość programistów boi się tego i wymyśla wiele wymówek, aby nie udzielać się w społeczności open source. Nie bądź jednym z nich. Tak, to trudne, to stresujące i zabierze wiele twojego prywatnego czasu, a nikt ci za to nie zapłaci. Mimo to, warto – to najszybsza ścieżka rozwoju. Ponadto, polecam, aby dzielić się jak największą ilością kodu, nawet jeśli piszesz go na potrzeby prywatnego lub komercyjnego projektu. Niektóre firmy nie maja nic przeciwko temu.
 

Nie bądź niewidzialny.


Upewnij się, że masz konto na Facebooku, Twitterze, LinkedInie, Instagramie i prowadzisz bloga. Musisz być obecny w internecie. Jesteś poważnym architektem oprogramowania? Powinienem być w stanie wygooglować twoje imię i znaleźć mnóstwo profesjonalnych linków, nie tylko twój profil na Tinderze. A ludzie będą googlować twoje imię, możesz być tego pewien. Moja książka 256 Bloghacks pomoże ci zrozumieć jak umiejętnie to zrobić.
 

Nie siedź w domu.


Uczestnicz w seminariach, spotkaniach i konferencjach. Przynajmniej raz w miesiącu powinieneś iść gdzieś, gdzie spędzają czas inni programiści. Nie musisz być hiperaktywny i przyjaźnić się ze wszystkimi – wystarczy, że będziesz obserwować. W końcu zorientujesz się, że czas zabrać głos. Pamiętaj, że nie ma większego znaczenia to, czy współpracownicy cię szanują. Ważne jest to, co myśli o tobie rynek.
 

Nie zapominaj o relaksie.


Nikt nie lubi tych nieumytych przygłupów, którzy idą do fryzjera raz w roku. Owszem, zatrudnią cię i będą szanowali jako kodera, ale nigdy nie będą rozważali na poważnie twojej kandydatury na stanowisko z dużą pensją odpowiedzialnością. Zawsze będziesz im się wydawał osobą niestabilną psychicznie. Musisz wyglądać jak biznesman, mimo że w głębi duszy dalej jesteś geekiem. Dlatego tak ważne jest, aby zwracać uwagę na to jak spędzasz swój czas wolny, jak się relaksujesz. Odnoszący sukcesy i szczęśliwi programiści nie grają w GTA do 3:00 nad ranem. Oto krótka lista lepszych aktywności: sport, turystyka, kluby. Bądź normalną osobą – o to chodzi.
 

Pominąłem coś ważnego?

Oryginalny tekst: 16 Don'ts of Career Growth [przyp. red.]