Ostatnio na blogu pojawiła się ciekawa opinia Marcina Zalewskiego na temat tego, na co powinien zwrócić uwagę kandydat na Junior Front-End Developera. Jak pokazują statystyki bloga, tematy związane z karierą, szczególnie jeśli chodzi o początkujących programistów, cieszą się niesłabnącym powodzeniem. Postanowiłem więc napisać kolejny post związany z tą tematyką. Dziś postaram się pokazać Ci, jak zrobić krok dalej jako Junior Developer. Będzie to kilka rad, które moim zdaniem mogą pomóc Ci rozwinąć się i pójść dalej w Twojej programistycznej karierze!

Pierwsza praca

No więc udało Ci się! Po wielu (albo i nie wielu) staraniach, rozmowach kwalifikacyjnych i stresujących sytuacjach w końcu dostałeś pracę jako Junior Developer… Pracujesz już na tym stanowisku w jakiejś firmie, która zdecydowała się Cię zatrudnić, dostałeś przydział do ciekawego (albo i niezbyt…) projektu. Masz też pewnie mentora/lidera, którego możesz pytać o różne, nurtujące Cię pytania. Zastanawiasz się więc teraz: co zrobić aby uczynić krok dalej jako Junior Developer?

Wyciśnij maksimum ze swojej szansy jakby to była cytryna!

Moja rada w takiej sytuacji: wykorzystaj swoją szansę jak najlepiej się da! Na tym etapie nie ma znaczenia czy Twój projekt jest super ciekawy i rozwojowy czy nudny jak flaki z olejem. Jesteś juniorem więc dla Ciebie to pewnie i tak nowość… U siebie zauważyłem, że przez pierwsze kilka miesięcy nowej pracy/projektu przyrost nowej wiedzy jest zdecydowanie największy. Szczególnie jeśli jest to coś, czego do tej pory nie robiliśmy - czy to nowy framework, architektura systemu czy też jakieś inne podejście do tworzenia projektu.

Myślę, że juniorów dotyczy to w szczególności, ponieważ dla nich wszystko jest nowe. Dlatego też powinieneś, przez ten pierwszy okres, bardzo mocno się skupić na swoich zadaniach i postarać się wykonać je jak najlepiej. Oprócz pokazania się z dobrej strony osiągniesz też wtedy możliwie największy przyrost wiedzy w krótkim czasie.

wyciśnij swoją szansę jak cytrynę

W innych podobnych artykułach przeczytać możesz, że ważne jest też aby dużo robić w domu. To jest oczywiście truizm ale dość istotny - moim zdaniem, warto sobie na spokojnie “rozkminiać” problemy, na które się natrafiło w pracy. Może się zdarzyć, że poprosisz kogoś o pomoc, ten ktoś rozwiąże Twój problem ale ostatecznie nie do końca rozumiesz jak to właściwie działa. W świecie JavaScriptu, na przykład, może to być dość częsta sytuacja…

Jeśli nie czujesz dlaczego coś działa, to moim zdaniem warto poświęcić trochę czasu na zrozumienie danego mechanizmu. To na pewno później zaprocentuje: raz, że wiedząc jak i dlaczego coś działa szybciej pokonasz podobne problemy w przyszłości; dwa, że Twoja wiedza będzie bardziej dogłębna i pełna. Tak jak wspominałem we wpisie na temat przygotowań do rozmowy kwalifikacyjnej: osoby, po których widać, że interesują się tematem, na pewno szybciej odnajdą się w kolejnej pracy.

Bądź “proaktywny”

Tak wiem, że hasło “proaktywny” brzmi trochę jak taka typowa “korpo-mowa”… Jest ono może irytujące ale, moim zdaniem, oddaje sedno tego jak najlepiej pokazać się w pierwszej pracy jako programista. Tak jak wspomniałem wyżej - Twoja pierwsza praca jako junior developer to niepowtarzalna okazja do zdobycia wiedzy. Samo jednak wykonywanie swoich zadań z zaangażowaniem i najlepszymi chęciami nie wystarczy. Nie możesz pozostawać bierny, czekać tylko na zadania i brać się za nie kiedy wreszcie je dostaniesz. W swojej “karierze” zauważyłem, że od programistów na wyższych szczeblach wymaga się przejmowania inicjatywy. Wychodzenia z własnymi propozycjami rozwiązań różnych problemów itp. Myślę więc, że warto od początku rozwijać w sobie takie właśnie podejście.

Oczywiście Tobie, jako juniorowi, może być ciężko proponować np. rozwiązania architektoniczne. Twoja wiedza może nie być do tego wystarczająca. Możesz jednak starać się zawsze zgłaszać do wykonania jakiegoś zadania podczas planowania iteracji. To zdecydowanie lepsza postawa niż czekanie aż coś Ci przydzielą… To samo tyczy się sytuacji, w której skończysz swoje zadanie. Nie czekaj aż ktoś się Tobą zainteresuje - od razu mów swojemu liderowi, że jesteś wolny i szukasz roboty!

Wiem, że to wszystko dla niektórych może wydawać się oczywistością. Wśród programistów wielu jest jednak introwertyków (sam nim jestem). Dla osób takich, taka postawa może wymagać pewnego przełamania i trochę pracy nad sobą… Wierz mi jednak, że im szybciej wyrobisz w sobie nawyk bycia gościem z inicjatywą tym lepiej dla Ciebie. Na pewno będzie to doceniane przez kolejnych Twoich pracodawców!

Nie bój się pytać

Na wstępie wspomniałem o mentorze lub liderze, którego w wielu firmach dostają nowi pracownicy. Takie osoby mają za zadanie wprowadzić Cię w życie firmy, pokazać jak się w danym miejscu pracuje i co jest ważne. Jeśli w Twoim przypadku masz taką dedykowaną osobę, wykorzystaj to i zadawaj jej pytania. Na prawdę nie ma się czego wstydzić!

Zresztą, tak na prawdę nie tylko Twój mentor jest od tego aby Ci pomagać. W każdej normalnej firmie, pomocni będą też wszyscy inni współpracownicy… Dlatego też, jeśli czegoś nie wiesz to pytaj! Na pewno ktoś udzieli Ci odpowiedzi - tak na prawdę wszystkim w zespole zależy aby robota szła do przodu, również te zadania, które Ty wykonujesz.

nie bój się pytać

Poza tym to samo dotyczy Twoich zadań - jeśli nie umiesz sobie z czymś poradzić to proś o pomoc kolegów! Oczywiście możesz najpierw próbować sam rozwiązać problemem - nie rób tego jednak zbyt długo. Głupio będzie, jeśli spędzisz nad czymś dwa dni, a potem okaże się, że z pomocą kogoś innego problem rozwiązany zostanie w pięć minut…

Zadając komuś pytanie, pamiętaj o jednym: musisz być skupiony na odpowiedzi, a jeśli czegoś nie rozumiesz to dopytaj. Postaraj się też zapamiętać odpowiedź lub rozwiązanie Twojego problemu na przyszłość - jeśli tego potrzebujesz, to rób notatki. Nikt nie lubi być pytany o to samo wiele razy, a Tobie też nie będzie głupio się powtarzać…

Code Review - świetna okazja do nauki

Kolejną świetną okazją do zdobywania wiedzy jest praktyka code-review. Pisałem już kiedyś o tym więc jeśli jest to dla Ciebie nowość to przeczytaj koniecznie!

Generalnie chodzi o to, że zanim wkomitujesz swój kod do repozytorium, musisz pokazać go komuś innemu. Obecnie wydaje mi się, że jest to już standardem w większości firm. Zwykle spotkać się można z dwoma sposobami przeprowadzania takiego przeglądu kodu: albo po prostu wołasz kogoś do swojego komputera i po kolei pokazujesz mu swoje zmiany albo też Wasze narzędzie do kontroli wersji wspiera przeglądy kodu. Przykładem tego drugiego podejścia jest są na przykład Pull Requesty w systemie git, gdzie aby wrzucić coś do repozytorium, ktoś inny musi Twoje zmiany zaakceptować.

Ale do czego zmierzam: code review to świetna okazja by pokazać komuś swoją pracę i wysłuchać jego uwag dotyczących jakości Twojego kodu. Najlepiej dla Ciebie jeśli Twój “reviewer” to doświadczony programista - wtedy masz szanse czerpać garściami z jego wiedzy i doświadczenia. I moim zdaniem powinieneś to robić! Nie denerwuj się więc (ani nie załamuj) jeśli ktoś wytknie Ci wiele błędów - to bardzo dobrze dla Ciebie bo za jednym zamachem nauczysz się więcej. Przy okazji możesz też dopytywać, dlaczego rozwiązanie, które on proponuje jest lepsze. Jak widzisz, taki przegląd kodu do mnóstwo okazji do rozwoju!

Jeśli natomiast trafi Ci się ktoś, kto traktuje code review po macoszemu to może lepiej poszukać kogoś z bardziej poważnym podejściem (o ile jest taka możliwość)? Moim zdaniem, szczególnie na początku kariery, bardzo dobrze jest trafić na odpowiednich ludzi, którzy wskażą Ci właściwą drogę… Nie zawsze się da ale jeśli masz wybór to zawsze lepiej uczyć się od najlepszych!

Ściana

Przyjdzie w Twojej juniorskiej karierze taki moment, w którym poczujesz, że dotarłeś do ściany… Prędkość wzrostu Twojej wiedzy drastycznie spadła, pojawia się znużenie i brak chęci. To sygnał, że coś zaczyna być nie tak - ale nie martw się, to zupełnie normalne w naszej pracy!

Tak jak wspomniałem na początku, przez pierwsze kilka miesięcy w projekcie, przyrost wiedzy jest największy. Jest to spowodowane nowymi bodźcami, które pobudzają nasz mózg do pracy i nauki. Po tym czasie następuje jednak moment, w którym masz już wszystko w zasadzie ogarnięte. Kolejne “ficzery” nie sprawiają Ci problemu. Zresztą kroki do ich wykonania stają się powtarzalne więc robisz je trochę jak automat. Kolejne dni są coraz bardziej do siebie podobne, a Ty zaczynasz mieć dość…

Naturalnym rozwiązaniem tego problemu jest poszukanie sobie nowego projektu. Często, szczególnie w większych firmach, masz możliwość zmiany projektu, w którym pracujesz na inny w ramach tej samej firmy. Myślę, że jeśli zaczynasz czuć się wypalony to warto porozmawiać o takiej możliwości ze swoim liderem. Może da radę przenieść Cię gdzieś indziej, a może zaproponuje jakieś inne rozwiązanie - zawsze warto spróbować.

zmiana pracy

Oczywiście ostatecznym krokiem jest zmiana pracy. Tutaj oczywiście zalecam rozwagę - czy na pewno nie ma możliwości dalszego rozwoju w danej firmie? Czy sprawdziłem wszystkie opcje, łącznie ze zmianą projektu? Jeśli jednak czujesz, że wszystkie możliwości rozwoju zostały już wyczerpane, być może czas właśnie na taką decyzję… Wydaje mi się jednak, że tego rodzaju krok dalej jako Junior Developer, nie powinien nastąpić wcześniej niż po roku pracy.

Zresztą rok to, moim zdaniem, minimum jeśli chodzi o bycie Junior Developerem. Jeśli dobrze przepracowałeś ten okres, dałeś z siebie wszystko i Twoja wiedza znacznie się powiększyła to pewnie radzisz sobie w projekcie, a zespół jest z Ciebie zadowolony. Daje to moim zdaniem podstawy do zastanowienia się nad awansem. Zresztą, pewnie i tak Twój progres został zauważony i dostaniesz w odpowiednim czasie odpowiednią ofertę.

Pamiętaj tylko abyś nie spoczął na laurach… Zawód programisty oznacza ciągły rozwój, więc tak na prawdę to dopiero początek!

Krok dalej jako Junior Developer - Podsumowanie

To tyle na dziś jeśli chodzi o moje przemyślenia. Ogólnie, jeśli chcesz zrobić krok dalej jako Junior Developer, czeka Cię sporo pracy nad sobą. Z jednej strony, musisz zdobyć gruntowną wiedzę w swojej dziedzinie programowania. Do tego najlepiej przysłuży się praktyka w projekcie, więc korzystaj z możliwości jaką Ci dano, zatrudniając Cię! Z drugiej strony, warto od początku rozwijać umiejętności “mientkie”. Powyżej wspomniałem o proaktywności - uważam, że jest to umiejętność, która bardzo Ci się przyda w dalszej karierze!

Zapewne wpisem tym nie przekazałem wszystkiego co można by powiedzieć w tym temacie! Jeśli chcesz coś tutaj dodać i podzielić się swoimi doświadczeniami, to zachęcam do pozostawienia komentarza pod wpisem!