Uśmiechnięty programista

Junior software developer

Drogę zaczynasz od juniora. Czasem wcześniej jest to staż lub praktyka, jednak potraktujmy to wszystko jako pierwsze stanowisko programistyczne. Klucz wtedy to nauka i Twój osobisty rozwój. Nie tylko umiejętność programowania i poznawanie narzędzi, ale też praca w grupie, i inne soft skillsy.

Wtedy wynagrodzenie jest przyzwoite, choć bez szału. Nie masz jednak zbyt wiele do powiedzenia, gdyż jesteś jeszcze niesamodzielny i potrzebujesz bardziej doświadczonego opiekuna. Nikt nie powierzy Ci bardziej odpowiedzialnych zadań, bo prawdopodobnie nie podołasz.

Pozostawiony samemu sobie mógłbyś dość szybko stracić panowanie nad solucją i, brzydko mówiąc, zrobić niezły burdel w kodzie. Taki kod jest później bardzo ciężki w utrzymaniu i dalszym rozwijaniu. Sam zaczniesz się w nim gubić, a gdy się zwolnisz, firmie zostanie jedynie przepisanie aplikacji od nowa.

Jest to zbyt duże ryzyko i, finalnie, kosztuje to firmę więcej niż od razu przydzielenie Ci doświadczonej osoby do opieki. Jak to mówią, chytry dwa razy traci.

Tak czy siak, dla Ciebie to same plusy. Pierwsze dwa lata zawodowej kariery powinieneś się głównie rozwijać. Ambitne projekty, odpowiedzialność na własnych barkach i poważanie wśród pozostałych pracowników przyjdą z czasem.

Paradoskalnie, najtrudniej znaleźć fajną ofertę pracy na stanowisko juniorskie. Choć najsłabiej płatne i najbardziej powszechne, juniorzy przechodzą największy przesiew podczas rekrutacji. Każda firma wie, że nietrafiony junior to strata pieniędzy. Jeśli masz problemy ze znalezieniem pierwszej pracy, upewnij się że Twój profil na LinkedIn jest aktualny i dodaj kilka informacji o technologiach programowania.

Regular developer

Gdy juz dość długo poobserwujesz i nabędziesz trochę doświadczenia, możesz pokusić się o wystartowanie na stanowisko regular developera. Gdzieniegdzie jest to medium developer lub, po prostu, software developer.

Takie stanowisko obliguje Cię do wzięcia odpowiedzialności za efekty Twojej pracy. Fakt, pójdą za tym lepsze pieniądze, lecz musisz się wykazać wystarczającymi umiejętnościami i wiedzą. Do tego przyda się samodzielność.

Gdy byłeś juniorem, Twoje błędy były puszczane mimo uszu. Teraz nie wypada już popełniać ich zbyt wiele. Oczywiście, jesteśmy tylko ludźmi i czasem każdemu zdarzy się popełnić jakąś gafę. Jednak, gdy robisz to zbyt często, tracisz zaufanie wśród członków zespołu.

Na zaufanie pracujesz bardzo długo i wytrwale, a można je szybko stracić głupimi wypowiedziami.

Tak czy inaczej, będąc na poziomie Medium, jesteś solidnym trzonem każdego zespołu developerskiego. Masz wystarczające doświadczenie, by dostarczać działający, niebrzydki kod. To on stanowi o sukcesie projektu.

Senior software developer

Na przystanku medium developer spędzisz pewnie od dwóch do pięciu lat. Gdy już staniesz się biegły i godny zaufania, a opanowana technologia niemal nie będzie miała przed Tobą tajemnic, będziesz gotów na objęcie stanowiska Senior Software Developera.

Wtedy dopiero zaczyna się jazda. Są Ci powierzane coraz bardziej ambitne, skomplikowane i ciekawe taski. Każdy liczy się z Twoim zdaniem. Poza programowaniem, jesteś proszony np. o wyceny i estymowanie czasu potrzebnego na wykonanie nowych projektów.

Twoje sugestie, sprzeciwy i propozycje nie pozostają bez echa. Dzięki robieniu coraz trudniejszych zadań, rozwijasz się jeszcze bardziej niż w poprzednich stadiach, przez co mimowolnie stajesz się ekspertem w wybranej dziedzinie. Często zaczniesz też brać pod opiekę młodych programistów, którzy dopiero zaczynają swoją przygodę z programowaniem komercyjnym. Będziesz dla nich wzorem i wywrzesz realny wpływ na ich rozwój. Od Ciebie zależy, jakie wartości im przekażesz.

Pamiętam, gdy zaczynałem jako Junior, do każdego commita dostawałem kilkadziesiąt komentarzy odnośnie mojego kodu. To wszystko od dwóch starszych kolegów, którzy czuwali nad jakością kodu w projekcie. Pamiętam, że czytając te komentarze i wcielając je w życie, stawałem się coraz lepszym programistą. Z każdym tygodniem komentarzy pojawiało się mniej, po czym pisałem na tyle poprawny kod, że zdarzały się commity bez komentarza.

Gdybym od początku był pozostawiony samemu sobie, popełniałbym cały czas te same błędy. Dlatego młodzi bardzo potrzebują opieki doświadczonego Senior Developera.

To zamyka trzy podstawowe kroki w rozwoju programisty.

Pozostałe drogi

Czasami ludzie wybierają inna specjalizacje po osiągnięciuu regular developera. Przykładowo, wybierają ścieżkę security experta, UXa, administratora baz danych czy managera projektu.

Stwierdzają, że programowanie to po prostu nie ich bajka. Ważne, że wybranie ścieżki programisty nie zamyka innych dróg rozwoju. Dla każdego coś miłego. Zanim jednak zdecydujesz się na jakąkolwiek inną ścieżkę, warto nabrać podstawowej wiedzy w programowaniu. Łatwiej będzie Ci wtedy współpracować z programistami, będąc na innych pozycjach.

Przykładowo, manager bez backgroundu technicznego nie będzie miał zielonego pojęcia, czy programista nie robi go w bambuko. To samo security expert czy ux. Tutaj również będziesz ściśle współpracował z programistami, którzy bywają niesforni. Podstawowe zrozumienie pozwoli Ci znaleźć z nimi wspólny język.

Nieważne, którą drogą podążysz, pewnie staniesz przed wyborem rodzaju umowy. Poczytaj koniecznie o różnicach między Umową o pracę a kontraktem B2B.

A może architekt IT?

Jest jeszcze jedna ścieżka, która obrałem osobiście. Gdy już programowanie samo w sobie przestaje być wyzwaniem, możesz zacząć realizować się w szerszym kontekście w roli architekta systemów IT.

W moim przypadku niemal naturalnie wszedłem na tę ścieżkę. Mam szerokie doświadczenie w wykorzystanych technologiach i typach aplikacji. Zaczynając od aplikacji dekstopowych dla Windows, po aplikacje webowe w .net i php, przez aplikacje okienkowe w Javie, na aplikacjach mobilnych kończąc. Łatwiej jest mi ogarnąć szersze spektrum projektu jako całościowego rozwiązania od a do z. Potrafię zaprojektować Api wraz z wieloma klientami, zostawiając szczegóły implementacyjne zespołom dostarczającym poszczególne aplikacje.

To trochę jak kierownik budowy, który ogarnia każdy etap budowy, od fundamentów po wykończenie wnętrza. Czy to oznacza, że mówię programistom, jak mają wykonywać swoją pracę? Broń Boże! Po prostu upewniam się, że oprogramowanie spełnia normy jakościowe i projektowe na każdym etapie. Tylko tyle i aż tyle.

Dla mnie była to naturalna droga rozwoju.

Którą drogą Ty podążysz? Daj znać w komentarzu i dzięki za przeczytanie tekstu!