10 lat pracy w jednej firmie …
Senior nie marnuje czasu
Rzemieślnik a nie senior
Senior to człowiek orkiestra?
Senior z wyczerpania
Senior tu - Junior tam
Senior dba o umiejętności miękkie
Zestaw umiejętności technicznych
Senior jest odpowiedzialny
Senior potrafi zachować zimną krew
Roszczeniowi nowicjusze
Senior to lepsze zarobki
Ułatwienia nauki
Czas tworzenia aplikacji
Podsumowanie - seniorem można zostać w kilka lat
Spis treści
Jakiś czas temu widziałem jeden film na YouTube o bardzo kontrowersyjnym tytule. Chodziło o to czy można zostać seniorem w programowaniu po 3 latach w branży IT. Zgadzam się z autorem w zupełności. Swoją drogą polecam kanał. Osobiście nie jestem fanem frontendu ale bardzo przyjemnie się ogląda ;)
Dodatkowo wczoraj widziałem na facebooku komentarze pod postem linkującym do tego filmu. Komentarze na facebook i pod filmem były różne. Część ludzi twierdziła, że to patologia i żart bo w 3 lata nie można osiągnąć poziomu seniora a z drugiej strony były osoby, które zaciekle z tym walczyły. Nie mogłem się powstrzymać i dodałem też swój komentarz. Niestety był on tak długi, że musiałem go redagować przynajmniej cztery razy, żeby nieco go skrócić a i tak wyszedł odrobinę ponad normę ;).
Dlatego właśnie postanowiłem napisać wpis w którym przedstawię swoje zdanie na ten temat. Nie jest to jedyna słuszna prawda za którą należy podążać. Po prostu chciałbym odnieść się do zarzutów, które są stawiane branży jednocześnie wyjaśniając niektóre kwestie. A więc po tym przydługim wstępie, zaczynajmy. Zobaczmy czy zgadzacie się ze mną co oznacza senior w branży IT i czy faktycznie można go osiągnąć w 3 lata jak określił to kontrowersyjnie autor filmu.
10 lat pracy w jednej firmie …
Chyba nie muszę tego kończyć ;). Jeden z popularniejszych programistów obecnie w polskiej branży IT wielokrotnie powtarzał te stwierdzenie. Jeśli jednak jest ktoś, kto tego nie zna to niech nadrobi zaległości ;). A tak poważnie jest to stwierdzenie, które mówi że 10 lat pracy w jednej firmie nie oznacza 10 lat doświadczenia a rok powtórzony 10 razy. Nie zgodzę się z tym, że jest to rok powtórzony 10 razy ale zgodzę się, że to niekoniecznie 10 lat doświadczenia. Dlaczego? Wystarczy spojrzeć na rynek frontendu. To co było 10 lat temu, a to co jest teraz to zupełnie dwa inne światy. Kiedyś używało się javascript i ewentualne jQuery było czymś nowoczesnym.Teraz mamy ogromne frameworki webowe, które pozwalają na napisanie całego projektu od zera. Ten przykład jest nieco przerysowany, bo nie miałem okazji jeszcze spotkać frontendowca, który ciągle tkwi w tamtych czasach. Jak sytuacja ma się na podwórku backendowców? Jako, że sam pracuję w Python to będę pisać wszystko na podstawie swoich obserwacji.
Senior nie marnuje czasu
W pracy chodzi o to, żeby maksymalnie wykorzystywać czas, w którym pracujemy. Co jeśli ktoś przychodzi jako junior i bierze na siebie coraz trudniejsze zadania oraz będzie się uczyć i nieustannie rozwijać? Jeśli w firmie jest taka możliwość, kultura pracy jest na wysokim poziomie i code_review jest prowadzone rzetelnie, to taka osoby w bardzo szybkim czasie jest w stanie przeskoczyć na zupełnie inny poziom. Jeśli pracuje się przy dużych aplikacjach to znaczącą część czasu poświęca się na szukanie błędów i ich łatanie. To są bardzo ale to bardzo męczące zadania. Nie raz byłem świadkiem jak takie zadania spadały właśnie na mniej doświadczonych. A to wcale nie musi być kara. Bo o ile zlokalizowanie błędu, jego poprawa jest męczące, to następne przeanalizowanie przyczyny i wyciągnięcie z tego lekcji to bardzo cenna umiejętność. I na to otworzył mi oczy właśnie jeden z lepszych deweloperów jakich poznałem. Oczywiście nie jest to to łatwe ale uwierzcie, że warto.
Po rzetelnym przepracowaniu nawet mniej niż 2 lat poziom takiej osoby może się wyrównać z innymi programistami, którzy tkwią już w firmie po kilka lat. I jak teraz to odnieść? Przecież część pracuje tylko 2 lata lub nawet mniej a inni na przykład 5. Czy w takim razie osoby z 5-letnim doświadczeniem są seniorami a Ci z 2-letnim już nie, mimo iż są na podobnym poziomie? Żeby zostać seniorem nie marnuj czasu.
Rzemieślnik a nie senior
Wspomniane wcześniej osoby, które tkwią są bardziej rzemieślnikami niż seniorami. I nie ma w tym nic złego. Może źle to określiłem, bo fakt, że ktoś długo pracuje nie jest niczym złym, pod warunkiem, że ktoś rzetelnie wykonuje swoje zadania i nie czuje potrzeby nieustannego rozwoju. W programowaniu rozwiązuje się nowe problemy w kreatywny sposób, do którego potrzebne jest nieszablonowe myślenie, ale w dużej części jest to również często maszynowe klepanie kodu. Pisanie po raz setny obsługi zapisu obiektu, czy odczytu danych w niczym nas nie rozwinie. Zajmuje to czas i trzeba to zrobić. Jeśli są osoby, którym to odpowiada niech to robią. Ale nie oczekujmy, że ktoś taki zostanie seniorem nawet po 20 latach. Ilość przepracowanych lat nie świadczy o tym czy ktoś jest seniorem. Senior to ktoś, kto nieustannie się rozwija, dlatego jeśli chcesz zostać programistą z tytułem seniora ciąglę szlifuj swoje umiejętności.
Senior to człowiek orkiestra?
Skupmy się jeszcze na innych osobach. Zwłaszcza w mniejszych firmach ludzie mają więcej odpowiedzialności niż tylko pisanie kodu. I to jest akurat dobre, bo przebija monotonię codziennego klepania kodu. Jednak problem zaczyna się, gdy ktoś odpowiada za wszystko i na pół etatu pracuje jako programista, kolejne pół jako tech-lead, a ostatnią połówkę jako PM, Scrum Master i ogólnie w wolnym czasie odpowiada za kontakt z klientem. Ale zaraz .. to są 3 połowy. Coś tu jest nie tak? No właśnie nie! Nie wiem z czego to wynika, może z syndromu oszusta, który jest u nas popularny? A może z braku zajęć danej osoby poza pracą? A może zbyt duże przywiązywanie się i chęci bycia najlepszym? Ciężko mi się odnieść. Sam kiedyś wpadłem w taką pułapkę i pracowałem dużo ponad normę ale całe szczęście się opamiętałem. Są osoby, które pracują znacznie więcej niż powinny. Takim osobom często obcy jest urlop, przychodzą jako pierwsi i wychodzą ostatni a o samej pracy myślą nawet w weekendy. Taka praca jest oczywiście niezbyt racjonalna i niszczy zdrowie, ale niestety to prawda. Jeśli taka osoba jest dobrym programistą to bardzo szybko może być głównym filarem w firmie. Po pewnym czasie zacznie ogarniać wszystkie aspekty od inicjalizacji projektu, po pisanie, optymalizację, dbanie o bezpieczeństwo, wdrożenia. Może nawet będzie musiała nauczyć się zarządzać zespołem czy komunikować z klientem. I teraz zwróćmy uwagę, że rok takiego doświadczenia to ogromna dawka wiedzy. Postawmy sprawę jasno, nie namawiam nikogo do takiego podejścia. Ale musicie przyznać, że takie wrzucenie na głęboką wodę nauczy nas więcej w rok niż kilka lat normalnej pracy. Senior to ktoś, kto ma rozwinięte różne umiejętności a nie tylko pisanie kodu. Żeby zostać seniorem nie bój się brać na siebie trudnych zadań ale unikaj spychania.
Senior z wyczerpania
Jeśli takie zadania dostał wspominany wcześniej junior po dwóch latach to musiał szybko przyswoić sobie wszystkie umiejętności. I łącznie po 3, może 4 latach wie jakie są kluczowe problemy. Brał udział przy wielu projektach, popełnił masę błędów i wyciągnął z nich lekcje. Odpowiada za najważniejsze procedury w firmie. Jeśli był głównym filarem to pewnie spotkał się nie raz z deadline, które się przeciągały czy awariami, które nagle rozwalały system bez konkretnej informacji o błędzie i był ostatnią osobą, która mogła uratować sytuację. Jeśli taki śmiałek miał jeszcze siłę realizować się w domu to w ogóle można powiedzieć, że pracował na 2 etaty. I czy on nie zasługuje na seniora po tak krótkim czasie, mimo iż ma ogromna wiedzą i umiejętności? Moim zdaniem takie 3 lata to wystarczająco, żeby nazwać kogoś seniorem. Oczywiście są to rzadkie przypadki ale mogą się zdarzyć.
Senior tu - Junior tam
Powyższy przykład może i brzmi na nieco przerysowany, ale takie rzeczy się zdarzają. Może nie aż tak drastycznie jak napisałem, ale jestem niemal pewien, że znacie osoby, które pracują nie 8 a 10 albo i więcej godzin. Przyjrzyjmy się też drugiej grupie osób, które mogą być takimi filarami podtrzymującymi firmę. Zakładając, że ktoś podchodził bardziej racjonalnie i miał podobne obowiązki, ale nie katował się tylko po prostu był dobry w tym co robi i dzięki zachowaniu trzeźwego umysłu, mógł wytrzymać znacznie dłużej, to czy jest seniorem? I to jest odpowiedź na jeden z komentarzy, w którym zarzuca się brak wiedzy. Jeśli ktoś myśli nad tym co robi, wyciąga wnioski ze swoich porażek i przede wszystkim rozumie problem, który rozwiązuje to technologia jest dla niego tylko narzędziem. Świadomy programista zna ogólne zasady. Jeśli ktoś taki rozumie jakie są zalety nowszego frameworka, ale po prostu nie miał czasu lub możliwości się na niego przesiąść to czy można go od razu skreślić? Oczywiście lepiej pisać w nowszej technologii ale jeśli ktoś musi utrzymywać wiele projektów na starszej wersji i nie ma możliwości ich migracji to musi się pomęczyć albo może to zwyczajnie zaakceptować ;). I teraz niech taki świadomy programista pójdzie na rozmowę, na której padnie kilka pytań dotyczących nawet banałów, ale związanych z nowszym frameworkiem, to jest duża szansa, że na nich się wyłoży. Oczywiście nie zrozumcie mnie źle, nie mówię tutaj, że jak ktoś się zasiedział to dobrze. W żadnym wypadku. Front to idealny przykład, że to jest po prostu niewybaczalne, bo obecnie nie ma możliwości się odnaleźć na rynku bez znajomości przynajmniej jednego z wielkiej trójki (React, Vue, Angular). Chodzi mi tylko o to, że nie powinniśmy skreślać takiej osoby, bo nowinki technologiczne łatwo można nadgonić. Jak tylko zrzuci się kajdany w postaci starych projektów, to zauważy się prawdziwy potencjał tych osób. Dlatego właśnie moim zdaniem pytania o nowinki nie powinny być czynnikiem decydującym podczas rekrutacji. Senior to ważny członek zespołu, który szybko nadrobi ewentualne braki.
Senior dba o umiejętności miękkie
Kolejna ciekawa sytuacja. Bardzo ambitne osoby mogą spędzić nawet 2 czy 3 lata na doskonaleniu umiejętności technicznych. Mogą mieć za sobą wiele książek, teorii i nierzadko praktyki. Doskonale wiedzą czym są i jak powinno się stosować zasady SOLID i wszystkie wzorce projektowe, o które można zapytać podczas rekrutacji. Niestety w rzeczywistości wygląda to trochę inaczej. Zdobywanie wiedzy jest bardzo ważne a jeśli jest ona poparta praktyką to już w ogóle super. Ale nie zapominajmy o umiejętnościach miękkich. Ciężko będzie podjąć decyzję o przyjęciu kogoś na stanowisko seniora, kto wykazuje nawet bardzo dużą wiedzę, ale niestety całkowicie nie leży mu komunikacja z ludźmi. Takie osoby nie wezmą nikogo pod swoje skrzydła przez co nie wyrosną pod nimi inni, wspaniali deweloperzy. Nie skontaktują się z klientem ani nie nakłonią go do zmiany zdania, jeśli ten uprze się na dziwne lub nawet głupie rozwiązanie. Dbajmy w równej mierze o umiejętności twarde i miękkie, bo senior to nie tylko chodząca encyklopedia i maszynka do klepania kodu. Senior to ważny filar w firmie i o ile jest bardziej świadomy to stanowi bardzo ważną część zespołu. Czasem na problem trzeba spojrzeć z boku, a czasem oczami klienta. To czego chce biznes a czego potrzebuje to mogą być dwie różne rzeczy. Takich rzeczy nie dowiemy się z książek. To są umiejętności, które zdobywa się z doświadczeniem. Ktoś kto ma umiejętności prowadzenia zespołu, dobrze komunikuje się z innymi, potrafi przekazywać wiedzę i ogólnie ma dobrze rozwinięte umiejętności miękkie może mieć niewielkie braki techniczne. Zostaną mu wybaczone ze względu na inną wartość jaką wnosi do zespołu. Dlatego pamiętajmy, że senior dba zarówno o umiejętności miękkie i twarde.
Zestaw umiejętności technicznych
Bez wątpienia każdy kto stara się o stanowisko seniora w danej firmie, chce dostać awans lub po prostu jest już na tym stanowisku powinien posiadać pewien zakres umiejętności technicznych. Bez tego nie możemy mówić o tym czy ktoś jest seniorem czy jeszcze nie.
Problem pojawia się gdy trzeba te umiejętności określić. Zakres prac jakie wykonuje się w poszczególnych firmach może się od siebie znacząco różnić. Dla przykładu: jeśli ktoś cały czas pracował przy mikroserwisach w Django, to prawdopodobnie pisanie API i Django Rest Framework ma w jednym paluszku. Jeśli przyszłoby dla takiej osoby napisać nawet prostą aplikację z kilkoma formularzami to jest duża szansa, że musiałby sięgnąć do dokumentacji. I teraz zapytany na rozmowie o widoki generyczne miałby prawo tego nie wiedzieć, bo po prostu tego nie potrzebował. Dokumentacja jest od tego, żeby w razie potrzeby do niej sięgnąć. Podobnie sytuacja ma się w drugą stronę. Jeśli jesteś świadomym programistą, wiesz jak działa API, ale nie musiałeś pracować na codzień z mikroserwisami to nie musisz znać dokładnie frameworka, który to ułatwia. Jeśli na zadaniu rekrutacyjnym dostałbym napisanie API z użyciem jakiegokolwiek frameworka to po prostu bym doczytał jak się z niego korzysta. Nie rozumiem, jak można odrzucać kogoś na rekrutacji za brak znajomości danego frameworka jednocześnie podkreślając, że użył go bardzo dobrze. Pamiętajmy, że framework to tylko narzędzie, które ułatwia nam pracę i tak z niego korzystajmy. Nie przywiązujmy się nadmiernie, bo trend może się zmienić. Dużo lepiej zrozumieć zasady jakie panują przy rozwiązywaniu danego problemu. Jeśli znamy zasady i dobre praktyki programistyczne to język i framework będą dla nas dużym ułatwieniem. Ale jak każde narzędzie musimy umieć się nim posługiwać, dlatego jeśli chcesz być seniorem to pokaż jakie jest twoje ulubione narzędzie i popisz się jakie cuda możesz z nim stworzyć.
Senior jest odpowiedzialny
Kolejnym bardzo ważnym elementem jest branża w której się obracamy. Podczas poszukiwania programisty do projektów rządowych wartych miliony złotych, systemów do maszyn jak na przykład samoloty czy aplikacji mogących uratować życie rekruterzy są znacznie ostrożniejsi. Wiąże się to z większą odpowiedzialnością niż podczas tworzenia prostego sklepu internetowego. I tu już nie chodzi o sam stopień jakim określa się osoby na danych stanowiskach. Senior jest bowiem osobą, która często podejmuje ważne decyzje w projekcie. Zdarza się, że są to decyzje nieodwracalne, lub zbyt kosztowne żeby się z nich wycofać. Dobry i dojrzały senior potrafi przyznać się do błędu i wyprostować sytuację możliwe na wczesnym etapie. Jest to dużo lepsze niż ślepe brnięcie z nadzieją, że jakoś się ułoży. Senior jest również mentorem w swoim zespole. Nawet jeśli nie jest to oficjalnie powiedziane to młodsi programiści będą traktować go jako autorytet.
Senior potrafi zachować zimną krew
To jest kolejna cecha dobrego seniora. I jest to również jeden z tych aspektów który trudno zweryfikować podczas rekrutacji. Kiedy przesuwają się terminy, biznes coraz bardziej pogania. Powoduje to presję pod którą łatwo popełnić błędy. Bardzo dobrą cechą jest odsunięcie emocji na bok i skupienie się dostarczeniu produktu możliwie najlepszej jakości w skończonym czasie. Nie jest to tylko cecha seniora ale właśnie od seniorów się tego oczekuje. Podobnie podczas awarii, gdy nie wiadomo co mogło spowodować błąd w pierwszej kolejności oczy skierowane są na tych którzy najszybciej ugaszą pożar, a to są właśnie seniorzy ;)
Roszczeniowi nowicjusze
Pora dodać trochę goryczy. To jest jeden z tych elementów z którymi się zgadzam w negatywnych komentarzach. Ostatnio programiści robią się coraz bardziej roszczeniowi. Legendy o programistach 15k stają się już bardziej realne do osiągnięcia. Na początku kariery możemy liczyć na stosunkowo wysokie wynagrodzenie, które szybko może dosięgnąć sufitu przez co łatwo jest się zachłysnąć. Jest to bardzo niebezpieczne. Dodatkowo nowoczesne frameworki, jak na przykład Django pozwalają tworzyć aplikacje bardzo ale to bardzo szybko. Jeśli ktoś jest obrotny i szybko się uczy to w ciągu roku jest w stanie ogarnąć takie Django na bardzo dobrym poziomie. Do tego kilka miesięcy, żeby przygotować się pod rozmowy rekrutacyjne i już uważa się za seniora.
Senior to lepsze zarobki
Równie niebezpieczne są częste prośby o podwyżkę. Tu od razu zastrzegam, że walka o swoje to nic złego. Mamy prawo wymagać konkretnego wynagrodzenia za dobrze wykonaną pracę. Gorzej jeśli chodzimy notorycznie i uda się coś wyżebrać. Koniec końców może się okazać, że to już limit w danej firmie. Wtedy zapada decyzja o zmianie. Przeglądając oferty, żeby nie stracić na zarobkach trafia się właśnie w widełki seniorów. Jest to kolejna pułapka, bo wynagrodzenie w jednej firmie nie jest równoznaczne z wynagrodzeniem w innej. Wynagrodzenie na początku naszej ścieżki rośnie stosunkowo szybko. Ale tempo wzrostu nie jest adekwatne do ostatecznego wynagrodzenia. Oznacza jedynie że szybciej osiągnie się sufit, czyli próg którego przeskoczyć już się nie da lub przeskoczenie będzie bardzo trudne.
Senior jest na tyle doświadczony, że świadomie potrafi określić czy woli większe wynagrodzenie czy ciekawszy projekt.
Ułatwienia nauki
To kolejny czynnik, który przyspieszył proces otrzymania tytułu seniora. Kiedyś wiedza była dostępna znacznie trudniej. Czerpało się ją głównie z książek i podczas samodzielnego rozwoju. Dziś poza książkami mamy bardzo dużo kanałów na YT i jeszcze więcej blogów. W związku z tym, że programowanie staje się coraz bardziej popularne jest więcej osób od których możemy się uczyć a to również przyśpiesza cały proces rozwoju.
Czas tworzenia aplikacji
Kiedyś aplikacje tworzyło się znacznie dłużej. Nowoczesne frameworki automatyzują za nas wiele procesów i dzięki temu projekty tworzone są znacznie szybciej. Jeśli seniorów liczyć po ilości ukończonych projektów, to właśnie dlatego teraz osiąga się ten tytuł znacznie szybciej. Oczywiście dalej są projekty, których tworzenie liczy się w miesiącach. Są też takie, które rozwijane są latami ale średni czas realizacji projektów znacznie się skrócił.
Podsumowanie - seniorem można zostać w kilka lat
Nie ma jasnej definicji seniora w branży IT. Jest to bardzo płynne i tak powinniśmy do tego podchodzić. Senior to przede wszystkim osoba doświadczona, która zna swoją wartość. To wszystko zdobywa się z czasem ale nie ma określonego progu jaki należy przepracować, żeby wskoczyć na ten poziom. Im tego doświadczenia jest więcej, tym lepiej ale jednyum wystarczy do tego kilka lat a innym kilkanaście. Jedno jest jednak pewne, senior musi posiadać konkretny zestaw umiejętności, zarówno technicznych jak i tych miękkich. Jednak zdarza się, że firmy które dodają wymagania nieco na wyrost. Prawdziwy senior to w końcu ktoś kto jest świadomy swojej wiedzy i braków. Wie czego powinien się nauczyć i w razie potrzeby szybko przyswaja potrzebne materiały.
Moim zdaniem dużo ważniejsze jest ciągle doskonalenie się i zbieranie cennych doświadczeń niż dążenie do takiego lub innego tytułu. Jeśli będziesz naprawdę dobry, to ludzie sami zaczną traktować Cię jak seniora, niezależnie od tego czy masz kilka, czy kilkanaście lat doświadczenia.
Ja osobiście nie wykazuję wszystkich z wspomnianych cech, jednak nieustannie dążę do tego, żeby je rozwijać do czego zachęcam również Was :)
Co wy sądzicie na ten temat? Jakie jest wasze stanowisko na temat wczesnych seniorów? Może znacie kogoś, kto jest seniorem, pomimo krótkiego stażu? Podzielcie się swoimi opiniami w komentarzach. Jestem bardzo ciekaw wasze opinii. Według Was seniorem można zostać w kilka lat, czy wymaga to dłuższego czasu?