Jak stworzyć juniorowi warunki do rozwoju? Devdebata

W jaki sposób firma może przygotować miejsce dla juniora, w którym będzie mógł szybko rozwijać się? To główne pytanie jakie zadaliśmy zaproszonym senior developerom, których poprosiliśmy o to, by odpowiedzieli o swojej ścieżce od juniora do seniora oraz o to, by poradzili, w jaki sposób junior może podnosić swoje umiejętności. Jak odpowiedzieli na pytanie z tytułu artykułu?

– [Warto] promować atmosferę, w której nie boimy się zadawać pytań. Należy postawić na współpracę, często dawać feedback, organizować sesje pair programmingowe, stawiać na jakość tworzonego kodu, robić code review i nie zapomnieć o tej ludzkiej stronie procesu wytwarzania oprogramowania. Jest to nie tylko dobre dla rozwoju juniorów, ale także każdego pracownika w firmie – mówi Michał Załęcki, Senior Software Engineer w Tooploox, jeden z uczestników devdebaty.

Na pytania odpowiedzieli:

Krzysztof Hasiński. Software Engineer z ponad dekadą doświadczenia. Pisał aplikacje webowe, natywne i oprogramowanie dla dużych klastrów obliczeniowych. Posiada komercyjne doświadczenie z kilkunastoma językami programowania, chociaż obecnie głównie zajmuje się wyłącznie Ruby. Uważa, że kod najlepiej oceniać po tym jak łatwo można go wymienić lub pozbyć się całkowicie. Oprócz kodowania lub język angielski (a zwłaszcza fonetykę), japoński (chociaż dopiero zaczyna naukę) i gry, także te retro.

Michał Załęcki. Senior Software Engineer w Tooploox. Zajmuje się tematyką blockchain oraz tworzeniem zdecentralizowanych aplikacji. Michał prowadzi warsztaty BlockchainPro oraz organizuje spotkania grupy ReactJS Wrocław. Jeżeli chcesz poczytać więcej na tematy związane z blockchain zajrzyj na bloga michalzalecki.com.

Sebastian Gruchacz. Programista .Net / C# od 15 lat. Jako członek zespołów wewnętrznych i jako konsultant w ciągu ponad 17 lat pracy zawodowej zajmował się rozmaitymi aspektami wytwarzania oprogramowania (od frontendu po asembler), dev-opsem, lokalizacją i testami automatycznymi, analizą i architekturą, szkoleniami i prowadzeniem zespołów. Aktualnie, przez większość czasu, jako Starszy Programista .Net, wspiera rozwój duńskiej platformy zakupowej Justt, w wolnym czasie rozwija własne projekty i bloguje.

Paweł Wieczorek. Senior Fullstack Developer w Chop-Chopie. Na co dzień programuje web aplikacje głównie w JavaScript, React i Node. Nieobce są mu także TypeScript, Express, PHP, Laravel i SQL. Entuzjasta dobrze zorganizowanego kodu i stała pomoc dla zespołu developerskiego, któremu pomaga rozwijać umiejętności. Po godzinach marnuje czas na granie i czytanie, a mógłby kodzić.

Adam Włodarczyk. Właściciel firmy Hindbrain tworzącej oprogramowanie na urządzenia mobilne oraz systemy CRM w różnych technologiach. Jego ulubionymi językami są Java i Objective-C, chociaż próbuje też sił w językach takich jak Kotlin czy Swift. Zdarza się, że nawet czasem pokoduje w PHP’ie. Żeby dać ujście ekstrawertycznej części swojej osobowości, uczy i jest mentorem kolejnego pokolenia programistów w Coderslab. Po godzinach stara się dbać o kręgosłup pływając i ćwicząc na siłowni.

1. Jak przebiegała Twoja ścieżka kariery, od juniora do seniora?

Odpowiada Krzysztof Hasiński, Senior Software Engineer:

Programować zacząłem jeszcze jako siedmioletni dzieciak. Pierwszą pracę dostałem w małej agencji marketingowej robiąc proste strony w PHP, HTML, CSS. Co ciekawe była to praca zdalna. Podczas studiów znalazłem pracę w firmie produktowej tworzącej oprogramowanie dla edukacji i nauczyłem się pracy w zespole. Następnie wyjechałem na rok do USA, gdzie pracowałem na uniwersytecie.

Dalej co prawda byłem juniorem, ale nauczyłem się profilować aplikacje i optymalizować wydajność. Przez rok pracy miałem styczność z projektami w kilkunastu różnych, często egzotycznych językach i technologiach. Z uwagi na to, że aplikacje uniwersyteckie wymagają potężnych komputerów (tysiące rdzeni, terabajty pamięci) miałem okazję poznać w praktyce zagadnienia związane ze skalowalnością.

Po powrocie do Polski chciałem ponownie zająć się aplikacjami internetowymi i dołączyłem do malutkiego wtedy software house’u. Zaczynałem jako mid-level, ale już po drugim oddanym projekcie dostałem awans na seniora. Z perspektywy czasu stwierdzam, że tytuł ten nie miał żadnego znaczenia.

Software house pozwala zobaczyć wiele tematów w krótkim czasie, ale ogranicza przywiązanie do produktu. Projekty zaczęły mi się zlewać, a praca wydawała się nudna mimo ciekawych wyzwań (pisaliśmy m.in. giełdę przestrzeni reklamowej dla aplikacji mobilnych, repozytorium obrazków z autoskalowaniem przy zachowaniu twarzy na zdjęciach oraz wielki portal z ogłoszeniami pracy reklamowany w fińskiej telewizji).

Zacząłem po godzinach eksperymentować z własnymi pomysłami na startup i założyłem firmę z dziewczyną. Szybko jednak projekt ten sprzedaliśmy i dołączyłem do innego startupu, tym razem jako lead engineer i zdalnie.

Odpowiada Michał Załęcki, Senior Software Engineer w Tooploox:

Mój pierwszy epizod jeszcze nie z językiem programowania, a z HTML i CSS miał miejsce w gdzieś w 4 lub 5 klasie szkoły podstawowej, gdy rodzice wysłali mnie i młodszego brata na zajęcia dodatkowe z informatyki. Zajęcia miały bardziej charakter zbiorowej gry w Age of Empires II, niemniej wtedy napisałem pierwszą stronę z pięknymi animacjami za pomocą tagu <marquee>. Zajęcia się skończyły i zapomniałem o temacie.

Na początku gimnazjum znowu poszedłem na zajęcia dodatkowe z informatyki – tym razem miało to być programowanie w C# od podstaw. Znalazłem się w grupie starszych dzieciaków, których poziom w mojej ocenie nie był początkujący. Wyobraź sobie, że nie wiesz jak działa pętla for – co tam for, nie wiesz czym jest zmienna, a na pierwszych zajęciach mieliśmy napisać kalkulator! Poległem. Tak mnie to doświadczenie zraziło do C#, że moje drugie, przelotne spotkanie z tym językiem miało miejsce kilka lat później – na drugim roku studiów.

Pod koniec gimnazjum jako aspirant na ucznia Technikum Elektronicznego w Bydgoszczy dostałem możliwość poprowadzenia dla mojej klasy kilku zajęć z HTML i CSS na “szóstkę”. Szansę wykorzystałem i to tak naprawdę wystartowało moją karierę programisty. Naturalnym wtedy krokiem rozwoju polskiego “webmastera” była nauka PHP, MySQL oraz JSa do robienia menu.

W trzeciej klasie technikum trzeba było odbyć miesięczną praktykę. Zahaczyłem się wtedy w agencji interaktywnej SasDesign, pisałem w PHP i Angularze, poznałem trochę rozwiązań e-commercowych, a po praktykach zostałem na dłużej.

Kolejna praca, tym razem w Monterail pozwoliła mi zamknąć rozdział programowania w PHP i pokazała zupełnie nowy świat – świat języka Ruby i frameworka Ruby on Rails. Po Monterail byłem zafascynowany ideą pracy zdalnej i dołączyłem do duńskiego woumedia. W woumedia mieliśmy własny produkt, na którym się skupiliśmy – Contractbook. Niedawno mogliście o nim przeczytać na Spider’s Web. Po dwóch latach w Contractbooku przyszedł czas na zmiany – poszedłem pracować we wrocławskim Tooploox, już jako senior engineer.

Odpowiada Sebastian Gruchacz, Programista .Net / C# od 15 lat:

Mój pierwszy kontakt z komputerem to sesja F1 na bursztynowym monitorze w redakcji Bajtka, gdzieś w okolicy roku 86. Totalne zauroczenie. Widząc moje zainteresowanie rodzice kupili mi “jakąś” książkę o programowaniu. Prolog. Uch. Wymieniliśmy na Logo. A potem jeszcze jedna książka z podstawami Basica dla dzieci. A komputer w domu pojawił się dopiero jakiś czas później, jak byłem w czwartej klasie – Atari 65XE. Miałem dostęp do kilku czasopism o programowaniu, udało mi się dorwać do kserowanej dokumentacji (mapa pamięci, assembler, Basic) i zaczęła się moja pasja. Głównie Basic, ale bawiłem się też Logo, Assemblerem, Action czy Fortranem. Niestety, czas z komputerem miałem bardzo ograniczony, przez co większość kodu pisałem tylko na papierze (ale już wtedy kolorując składnię różnymi długopisami) – i tylko niewielką część tego wprowadzałem do komputera.

Dopiero gdy byłem w liceum pojawiała się w szkołach informatyka i miałem okazję na ponowny kontakt z PC. Ale zero programowania w tamtych czasach – co najwyżej bazy danych, edytory tekstu itp. Swój komputer “nabyłem” dopiero po zaliczeniu matury i się zaczęło na poważnie: Turbo Pascal, HTML, Delphi, C/C++… Najpierw uczyłem się tego sam, potem na uczelni doszły takie rzeczy jak Unix, bazy danych i teoria oraz jeszcze więcej Delphi. A tymczasem w pracy robiłem w charakterze full-stacka: ASP (classic ;-)) – pisane w VBS, SQL Server 2000, JavaScript (jeszcze czasy przed Ajaxem, o jQuery nie wspominając!) i HTML, CSS i PhotoShop. Spotkania z klientami, zbieranie wymagań, projektowanie UI i DB – totalny full-stack. Firma padła, a ja zatrudniłem się gdzie indziej, ale na podobnym stacku. Potem pojawił się .Net i najpierw nieśmiało, jeszcze w Visual-Basicu zacząłem się wciągać. Dopiero potem, gdy dałem się namówić do spróbowania C# odkryłem swoje miejsce na świecie. A jak już pojawiła się wersja 1.1 i typy generyczne w 2.0 byłem przeszczęśliwy.

Potem kolejna firma i praca przy lokalizacji oprogramowania – praca z zasobami, skryptami (bash), programami do lokalizacji, ale potem tworzenie oprogramowania do automatyzacji testów, zarządzania wirtualkami, automatyzacji budowania itd. Potem kolejna firma i mieszanina technologii webowych. Otwarcie działalności, kolejne kontrakty, dłuższe i krótsze. Czasem tylko do gaszenia pożarów, a czasem do ciekawych projektów. Plejada projektów, technologii, ludzi i metodyk. Programowanie, testowanie, projektowanie, analizowanie, rozmowy z klientami jako analityk i sporządzanie dokumentacji. Front-end i backend. SQL i skrypty do budowania. Scrum, Kanban i pseudo-scrum. Epizod z OpenCl i C++. Praca zdalna i wyjazdowa, małe teamy, którym “lekko leadowałem”. Były też rozmowy rekrutacyjne, szkolenia, warsztaty i meetupy. A potem chmura, devops, a później brutalny powrót do rzeczywistości front-endu (Angular). I znowu backend. SQL i micro-serwisy.

Takim człowiekiem orkiestrą jestem – dwa miesiące na zmianę prowadzę zdalny team programistów (jako product-owner, człowiek od code-review i opracowywania szczegółowych wymagań na podstawie jednego zdania instrukcji”z góry”). Zajmuję się programowaniem lokalnej wersji systemu na mikroserwisach, w dokerze (pierwszy kontakt) i do tego robię analizę konfiguracji innego systemu, dla innego zdalnego konsultanta. Później przez dwa tygodnie dziergam skrypty w PowerShellu (jednocześnie uczę się, bo wcześniej nie za wiele w tym robiłem), odpalam je na maszynach w sieci i zbieram rozmaite dane oraz parametry. Potem nagle opieka nad usługą w ASP.Net, konwersja operacji z SQL 2016 do SLQ 2014. Tydzień później pierwszy kontakt z Node.js, rozbudowa jakichś skryptów do raportów, potem ELK stash, konfiguracja i zabawy z aplikacjami satelitami. A w międzyczasie opracowanie wymagań dla innych programistów oraz przygotowywanie warsztatów dla juniorów. Słowem, na nudę nie narzekam ani na zarobki. Gdzieś tam jeszcze po drodze piszę jakieś programy dla siebie i sporadycznie bloguję mniej lub bardziej technicznie.

Odpowiada Paweł Wieczorek, Senior Fullstack Developer w Chop-Chopie:

Dość ciężko. Swoich pierwszych projektów sprzed czterech lat nie wspominam za dobrze, chociaż mam sentyment do siedzenia do późna i wylewania z siebie ostatnich potów, tylko po to by dowieźć projekt na czas. I o ile moje stare projekty wyglądają i funkcjonują do dziś w tej samej formie, to raczej nie jestem zadowolony z jakości ich kodu.

Będąc juniorem, jak to zwykle bywa, podglądałem pracę tych bardziej doświadczonych devów. Dość częstą praktyką w firmie było dołączanie bardziej doświadczonego deva do projektu, który otrzymał do wykonania junior. Zazwyczaj podział obowiązków był taki – junior (w tym wypadku ja) robił markup, a mid/senior podpinał te wypociny pod CMSa (WordPress), a w razie potrzeby wspomagał w robieniu markupu. Taki podział był o tyle dobry, że na bieżąco konsultowałem z kimś swoją robotę oraz mogłem podejrzeć kod tej drugiej osoby i nauczyć się czegoś nowego.

Czas mijał, a ja już byłem w stanie samodzielnie realizować projekty, zupełnie zajmując się markupem i CMSem, okazjonalnie wskakując do juniorskich projektów. Śmielej podchodziłem do PHPa i WordPressa, a gdy to już miałem w miarę opanowane, szło mi to coraz szybciej i sprawniej, to zacząłem dostawać coraz to bardziej zawiłe projekty.

Po godzinach zacząłem ogarniać rzeczy związane ze środowiskiem – Node, Grunt (ble), Gulp, Webpack, Apache, Xdebug itd. i miałem z tego radochę, ponieważ mając wiedzę o każdej z tych rzeczy, byłem w stanie pomagać innym, którzy mieli z ów środowiskiem problem. A gdy to już przychodziło coraz łatwiej, wskoczyłem w świat Reacta, TypeScripta, Eslinta i Laravela.

Odpowiada Adam Włodarczyk, iOS/Android Developer w Hindbrain w Hindbraind:

Swoją karierę zacząłem po kilku latach pracy jako pracownik działu IT w jednej z firm, która obsługiwała placówki medyczne. Swoją przygodę z programowaniem zacząłem od nauki Javy z Android SDK i od tamtej pory jakoś do mobilków mi bardzo blisko. Później nadszedł czas na rozwój we własnym zakresie, otworzyłem swoją działalność gospodarczą i zacząłem poszukiwania klientów. Od 5 lat działam jako freelancer głównie przy mobilkach, ale w związku z częstą potrzebą pisania RESTFul Api, też nie są mi obce frameworki PHPowe czy Spring.

Dodatkowo od dwóch lat jestem wykładowcą oraz mentorem w Coderslab, co pozwala mi rozwijać umiejętności miękkie. W życiu nie nazwałbym się Seniorem, bo według mnie takim człowiekiem może być osoba, która ma bogate doświadczenie poparte wieloletnią praktyką. Bardzo dobrze widać to na przykładzie Zachodu, gdzie czynnie w branży IT pracują ludzie mający 50-60 lat i posiadający 30-40 lat doświadczenia (to jest senior), a u Nas niestety, ale trochę to pojęcie zostało wypaczone przez fakt, że sam rynek jest stosunkowo młody. Niemniej jednak jeszcze wiele przede mną nauki i zgłębiania różnych technologii.

2. Mamy junior developera, który zna HTML, CSS i podstawy JavaScript. Ile powinien zarabiać w pierwszej pracy i dlaczego tyle?

Odpowiada Krzysztof Hasiński, Senior Software Engineer:

Tyle, ile pracodawca mu zaoferuje. Znam ludzi z takim doświadczeniem otrzymujących powyżej 25 000 PLN oraz takich, którzy dostają ledwie 2 000 PLN.

Odpowiada Michał Załęcki, Senior Software Engineer w Tooploox:

W Tooploox akurat na front-endowego juniora trzeba pochwalić się dobrą znajomością JavaScript, ale stażyści mogą liczyć na 2 320 zł brutto przez pierwsze 3 miesiące. Dlaczego tyle? Z ekonomicznego punktu widzenia to taka osoba może więcej firmę kosztować niż przynosić wartości, bo trafia pod skrzydła seniora, którego czas będzie kosztować firmę więcej niż to co przeważnie jest wstanie dostarczyć stażysta. Nie przywiązywałbym aż takiej uwagi do tego, ile zarabiasz na samym początku, a jakie masz możliwości rozwoju i awansu. Pakiet benefitów w Tooploox jest bogaty i nastawiony na pomóc w rozwoju, m.in. finansowanie konferencji, kursy online, czas w ramach pracy na naukę i samorozwój. Dynamika wzrostu pensji juniora jest też większa niż seniorów.

Odpowiada Sebastian Gruchacz, Programista .Net / C# od 15 lat:

Tyle żeby mógł się spokojnie utrzymać i chciał zdobywać wiedzę na własną rękę także po pracy. Po wstępnej weryfikacji poziomu “ogarnięcia” powinien trafić w tryby szkoleń i warsztatów (wliczam w to zarówno działania wewnętrzne jak i zewnętrzne), które pozwolą mu się rozwinąć przede wszystkim w tych kierunkach, które są zgodne z jego predyspozycjami i potrzebami firmy – i to powinno być odebrane jako najważniejsza część wynagrodzenia. Dobrze “poprowadzony” świeży programista powinien “zacząć się zwracać” dość szybko.

Odpowiada Paweł Wieczorek, Senior Fullstack Developer w Chop-Chopie:

Na tyle na ile się dogada z pracodawcą, biorąc pod uwagę też średnie widełki dla Junior Web Developerów, co można łatwo sprawdzić na justjoin.it. Nie nastawiajmy się na górną granicę zarobków, jeżeli jest to nasza pierwsza praca. Celujmy gdzieś bliżej początku przedziału, a jeżeli uda nam się wynegocjować więcej, to tym lepiej. Należy sobie uświadomić, że na samym początku Junior będzie generował stratę dla firmy, ze względu na brak doświadczenia oraz angażowanie innych devów w pomoc w jego rozwoju.

Odpowiada Adam Włodarczyk, iOS/Android Developer w Hindbrain:

Powinien zarabiać tyle, ile uda mu się wynegocjować, wszystko zależy od jego umiejętności negocjacyjnych, chwili w jakiej wchodzi na rynek oraz miejsca w jakim firma, do której kandyduje, się znajduje (chodzi mi tu o miasto/państwo). Jeśli ktoś będzie w stanie dać za jego pracę (a raczej dalszą naukę) przykładowo 5 000 PLN netto – to proszę. Jeśli 15 000 PLN netto, super, jeśli 3 000PLN netto też fajnie. Tak, już odpowiadając na pytanie konkretnie, to wydaję mi się, że biorąc pod uwagę Warszawę i umiejętności to 2 500PLN netto to mniej więcej dobra kwota na początek dla takiego juniora.

Zapraszamy do dyskusji

Patronujemy

 
 
More Stories
Dlaczego warto wykorzystać Vue.js w projekcie open source