Mid, Junior, a może Senior ?

określanie ścieżki kariery zawodowej programisty

No Fluff Jobs
No Fluff Jobs Blog
6 min readNov 16, 2017

--

Poruszając temat pracy zdalnej, wspomnieliśmy trochę o rozwoju. To Twoje tempo nauki i chęć poznawania nowych rzeczy bezpośrednio wpływa na to, gdzie pracujesz, jak fajne rzeczy robisz i jakie masz warunki pracy. Na początku może to być mocno zagmatwane. W końcu nie da się określić wyraźnych i konkretnych granic pomiędzy poziomami wtajemniczenia programisty. Dlatego dzisiaj postaramy się trochę rozjaśnić różnice w poziomie wiedzy programistów. W tym zadaniu pomógł mi Tomek Bujok — założyciel No Fluff Jobs.

Niezależnie od tego, czy jesteśmy po politechnice, kursie programowania, a może po prostu nauczyliśmy się programować w domu, każdego z nas czeka moment wdrożenia do projektów, w których oprogramowanie jest komercyjne. Nauka programowania od podstaw po prostu wymaga poznania teorii, dobrych praktyk i zrozumienia działania kodu, a dopiero potem możemy zająć się praktyką. Tam, gdzie liczy się czas, bezpieczeństwo, jakość i wykonanie, nie jest tak łatwo, jak z pobocznym projektem robionym przy piwku po zajęciach na uczelni.

Nie zrozum mnie źle, praca jako programista nie jest straszna, bliżej jej do czegoś naprawdę fajnego i wygodnego, mimo wszystko każdy musi przejść etap bycia Juniorem i zawsze przystosowanie się do pracy w softwarehouse’ie wymaga troszeczkę czasu i nauczenia się nowych standardów. Dobrym przykładem jest tutaj tworzenie oprogramowania w zespole Scrum’owym. To nic trudnego, a jednak, by dobrze wyceniać zadania i planować tak, by nasz pomysł na wykonanie był blisko rzeczywistości, trzeba przejść przez trochę projektów i wyklepać swoje. Co warto zaznaczyć, naturalnym jest to, że przez większość czasu wszystko, co napotykamy na drodze jest dla nas nowe, często fascynujące. Dlatego też praca Juniora to w połowie czysta nauka rzeczy, które wykraczają poza zakres podstaw programowania i samego zrozumienia czym — na przykład — jest funkcja.

Do podstawowych trudności w pracy Juniora możemy zaliczyć:

  • Wydaje mu się, że wie wszystko najlepiej.
  • Nie umie ustalać priorytetów wykonywania zadań.

Jak przyśpieszyć swoją naukę?

  • Słuchaj innych, proś o code review starszych.
  • Bądź otwarty feedback i raczej z nim nie dyskutuj.
  • Próbuj patrzeć na problem całościowo — czy faktycznie przepisanie całego modułu jest potrzebne? Może wystarczy tylko trochę ulepszyć kod?
  • Analizuj to, ile wysiłku trzeba włożyć w coś, by uzyskać zamierzony efekt. Nie zawsze droga na skróty jest najlepsza, ale też, gdy droga jest prosta, nie trzeba chodzić naokoło.

Gdy napisałeś już trochę kodu, przestajesz pytać się o wszystko i spędzasz mniej czasu na googlowaniu, niż samym kodowaniu, to powoli zmierzasz do bycia Mid’em. Taki programista to osoba, która potrafi samodzielnie wykonywać powierzone jej zadania. Wie, kiedy warto pytać innych, a kiedy po prostu należy się bardziej skupić na problemie. A przede wszystkim potrafi posługiwać się technologiami i narzędziami, na których pracuje. Zazwyczaj osoby, które są na tym poziomie, mają ponad dwa lata doświadczenia. A co najciekawsze, niektórzy developerzy nie idą już wyżej.

Trzeba przyznać, że bycie Mid’em to dość bezpieczne i bezstresowe zajęcie. Choć praca wymaga pewnego wysiłku intelektualnego, to faktem jest, że taka osoba wie, jak korzystać z narzędzi. Wie także, jak używać danej technologii i jak tworzyć swój kod, by wszystko dobrze działało. Dlatego też w tej sytuacji osiąga komfort, czuje się bezpiecznie i często jej praca nie wymaga nadprzyrodzonych mocy rozumienia kodu, tylko po prostu czasu i zaangażowania.

Podstawowy problem w pracy Mida

Możesz zostać na poziomie Expert Beginner i warto na to uważać!
To moment, w którym wiesz, jak użyć danej technologii w projekcie, ale nic ponadto. Nie znasz corner case’ów czy szczegółów implementacyjnych narzędzi, których używasz. Dlatego też w przypadku nietrywialnego problemu nie masz pojęcia, jak go rozwiązać. Po 6 latach używania np. Springa możesz sobie odpowiedzieć na pytanie, czy faktycznie masz 6 lat doświadczenia w Springu, gdzie co roku Twoja wiedza stawała się bardziej zaawansowana, czy może przez 6 lat zostałeś na poziomie 1-roku doświadczenia i nie wyszedłeś ponad ten poziom. To powstaje właśnie w wyniku rutyny — chodzimy codziennie do pracy, wykonujemy podobne do siebie rzeczy dobrze, a następnie wychodzimy i nie specjalnie dbamy o to, by iść dalej z programowaniem.

Okej, informacje w mediach, które napędzają trend naciskania stale na rozwój mogą nieco irytować, ale faktem jest, że tak, jak na przykładzie chociażby Angulara widzimy, że z czasem wizja jego twórców się zmienia i finalnie wpływa dość mocno na końcową pracę z tym framework’iem, tak szybko, jeżeli zignorujemy to, że świat idzie do przodu i uznamy, że nauka programowania się już w naszym przypadku zakończyła, tak szybko będzie można odłożyć nas na półkę pod tytułem “przeszłość”. Nie chcę tutaj dramatyzować, ale nie da się rozmawiać ze swoim zespołem czy potencjalnym pracodawcą, nie mając pojęcia o tym, co obecnie jest dobrze wspierane i jak tego używać. Dlatego właśnie, nie musisz ogarniać wszystkiego, ale w masie nowych technologii po prostu znajdź pewną swoją ścieżkę, w której będziesz dalej się specjalizował.

Co warto robić?

  • Wnikaj w działanie technologii, nie tylko jak jej używać. Dociekaj szczegółów, próbuj zrozumieć, o co chodzi, czy i jak można by coś ulepszyć.
  • Pomyśl o rozwijaniu projektów pobocznych — może zaangażowanie się w projekty Open Source to coś dla Ciebie. Wychodź ze strefy komfortu, rób to, co nie zawsze wydaje się łatwe i próbuj nowych rzeczy.

Są też tacy, którzy chcą iść wyżej. Na programowanie nie patrzą tylko jak na kod do wykonania. W projekcie poza zadaniami widzą potrzeby i wymagania klienta, daleką perspektywę, która pozwala zabezpieczyć się przed długiem technologicznym i złożoność rozwiązania, co pozwala dobrze rozplanować pracę. Często Junior uczy się właśnie od Seniora, ponieważ doświadczeni programiści, którzy na kodowaniu zjedli zęby, potrafią od razu wskazywać błędy, zarówno w kodzie, jak i kierunku myślenia o problemie. Widzieli w swojej karierze nie jeden projekt i praktycznie niezliczoną ilość kodu, dlatego właśnie stanowią tak dużą wartość dla pracodawców. Dobry Senior potrafi nie tylko dbać o jakość kodu, ale też mieć w tym wszystkim na uwadze oczekiwania klienta dotyczące produktu, co często przekłada się bardzo pozytywnie na pracę całego zespołu.

Problemy w pracy Seniora:

  • Zobojętnienie i wypalenie. Widział już wszystko i wszystko oryginalna pisownia “sucks” inaczej mówiąc po prostu “jest słabe, do bani”.
  • Co przekłada się na brak umiejętności uczenia innych, szczególnie młodszych i prowadzenia ich na ścieżce rozwoju.

Niestety osoby na poziomie Senior potrafią wraz z kolejnymi pokładami wiedzy coraz bardziej zamykać się na innych. To sprawia, że pomimo ogromu doświadczenia, może być ciężko być cierpliwym i rozumieć, że ktoś może nie wiedzieć tak wiele, jak oni. Seniorzy zazwyczaj świetnie realizują swoje zadania, ale niestety nie zawsze są w stanie dobrze przekazać to, o co w nich chodzi. Koniec końców lepiej jednak jest mieć coś do powiedzenia i zastanawiać się nad tym, jak to powiedzieć, niż odwrotnie!

Tak NIE wygląda Senior Developer 😃

Warto pamiętać, że tego typu podział jest umowny. Tak jak polskie prawo nie jest w stanie nadążyć za zmianami w nazwach stanowisk w branżach, tak szybko ewoluujących, jak IT, tak też jest ze zwykłymi ludźmi. Dzisiaj każda firma ustala pewną swoją strukturę. Przez to, że nie ma jakiegoś systemu kwalifikacji, granice między stanowiskami zaczynają się rozmywać, co może sprawić, że ktoś na poziomie Mida w firmie Y, jest lepszy od Seniora w firmie X.

Jak więc najlepiej unikać tego typu różnic?

Nie patrz na prefiksy, tylko na technologię. Sprawdzaj, badaj, szukaj. Jeżeli naprawdę zależy Ci na rozwijaniu się i znalezieniu dobrej pracy lub fajnych klientów, to najlepszym planem będzie sprawdzanie ich wymagań i poznawanie stacka technologicznego. W takim systemie nie tylko łatwiej będzie nam sprostać oczekiwaniom, ale też mając pewien ogląd tego, z czego korzystają różne firmy IT, możemy z większą otwartością poznawać nowe technologie, zanim jeszcze staną się bardzo popularne, a wręcz modne w programowaniu.

Na koniec:

Będąc Juniorem, skup się na słuchaniu i korzystaniu ze wskazówek.

Jeżeli jesteś Midem, patrz, jak możesz rozwijać swojego skilla, by nie utknąć w martwym punkcie.

A na koniec, jako Senior skup się na tym, by wiedzieć, jak przekazać wszystko to, czego się nauczyłeś. Nie martw się, nikt Ci nie zabierze doświadczenia!

--

--

No Fluff Jobs
No Fluff Jobs Blog

Praca w IT bez ściemy: stos technologiczny, widełki płacowe, bonusy — maksimum konkretów! Zmieniamy standardy rekrutacji IT.