Zacznijmy od początku. Kim jest tzw. “regular” developer?

Część z was pewnie jest na początku swojej kariery developerskiej. Niektórzy może mają już nieco doświadczenia w branży. Na pewno jednak w pewnym momencie każdy z nas napotka (lub napotkał) problem z określeniem czy wpada do szufladki z napisem “Regular”, czy może “Junior”?

Jarosław Mrowiec. .Net Developer. Programista z zamiłowania, od najmłodszych lat zafascynowany technologią. Propagator testów automatycznych i czystego kodu. W pracy zazwyczaj najbardziej dociekliwy członek zespołu – zainteresowany psychologią, bezpieczeństwem IT i rozwojem osobistym. Poza pracą splitboarzista, rolkarz i amator squasha.


Na to pytanie nie ma jednoznacznej odpowiedzi. Aby spróbować jak najlepiej zdefiniować regular developera, najlepiej jest przejrzeć ogłoszenia o pracę. Interesują nas te, które w tytule mają “regular” lub brakuje im prefiksu “junior/senior”. Po przeanalizowaniu kilku takich ogłoszeń szybko zbudujemy sobie obraz regulara w wybranej technologii. Rynek najczęściej wymaga od takiego programisty około 1-2 lat doświadczenia i określonego zestawu umiejętności.

Polecam jednak jeszcze chwilę wstrzymać się od przeglądania ofert i szufladkowania się ze względu na staż pracy. Z doświadczenia wiem, że:

  • “wymagany” staż pracy, to tylko sugestia,
  • poszczególne firmy mają bardzo szerokie “widełki” co do wymaganego doświadczenia (część wymagają 2 lat doświadczenia na stanowisko senior developera, dla innych 2 lata doświadczenia to wciąż junior),
  • część z ogłoszeń w ogóle nie ma podanych kryteriów jakie trzeba spełniać odnośnie doświadczenia,
  • developerzy rozwijają się w różnym tempie, więc uważam staż pracy za kiepski wyznacznik poziomu developera.

Skąd mam wiedzieć czy już czas zaznaczyć “regular” w wyszukiwarce ofert pracy?

Staż pracy może być pewną sugestią co do tego na jakim poziomie doświadczenia (junior, regular, senior) się znajdujemy. Jednak tak jak pisałem wyżej, uważam to za kiepski wskaźnik. Nie ma też żadnych zasad, które trzeba spełniać by mianować się regular developerem. Aby jak najlepiej odpowiedzieć na pytanie zawarte w tej części artykułu polecam wykonać poniższe:

‌1. Określ dokładnie swoją dziedzinę. W czym chcesz się specjalizować? Będzie to web-development, IoT, frontend web-dev, backend web-dev, machine learning?

2. Wyszukaj ogłoszenia o pracę wybranej przez Ciebie technologii.

3. Zapisz najczęściej powtarzające się wymagania.

Na tym etapie uzyskałeś pewne wytyczne odnośnie wymagań jakie musi spełniać regular-developer w wybranej przez Ciebie dziedzinie. Być może na tym etapie uznałeś, że spełniasz wymagania regular developera i dalsza część artykułu Cię nie dotyczy. Mimo wszystko polecam Ci dokończyć artykuł, znajdziesz tam garść porad, które równie dobrze sprawdzą się w dalszym rozwoju.

Niestety, wciąż jestem juniorem. Co robić?

Trafiłeś we właściwe miejsce. Skoro już wiesz na jakim poziomie się znajdujesz, to nie pozostaje nic innego jak podnieść swoje kwalifikacje! Przedstawię Ci kilka sprawdzonych metod, które spowodują poprawę Twoich umiejętności programistycznych. Jeżeli wykonałeś polecenie z poprzedniej części artykułu to powinieneś mieć listę wymagań, które musisz spełnić by stać się regular developerem. W większości będą to technologie lub frameworki, których musisz się nauczyć (np. react.js / symfony / asp.net core itd… ). Poniżej przedstawię Ci kilka źródeł, z których możesz czerpać wiedzę i w najbardziej efektywny sposób się uczyć.

Developer roadmap

Aby nie tracić czasu na naukę niepotrzebnych rzeczy, skorzystajmy z doświadczenia innych ludzi, którzy przygotowali dla nas swego rodzaju mapy rozwoju. Dobrze do nich zajrzeć jeżeli jesteś w miejscu, w którym nie wiesz czego się uczyć lub nie jesteś pewien czy biblioteka/framework którego chcesz się nauczyć nie jest przestarzały. Najczęściej takie mapy tworzone są w formie grafik i udostępniane na githubie, ale znajdziesz też roadmapy w formie check-listy. Oba rodzaje roadmap mają tę samą rolę, wskazują Ci kolejne zagadnienie, którego powinieneś się nauczyć oraz często oceniają jak bardzo przydatne są wymienione w niej zagadnienia.

Istnieją bardziej ogólne mapy, które pozwolą Ci odpowiednio ukierunkować swoją karierę (np. ta: github.com), jak i te bardzo szczegółowe dotyczące konkretnej specjalizacji (w tym przypadku asp .net core). ‌

Pluralsight (+ Skill IQ)

Forma pisana do Ciebie nie trafia? Jesteś zmęczony po dniu pracy i nie masz ochoty na czytanie artykułów / książek? Jeżeli na poprzednie pytanie odpowiedziałeś twierdząco, to kursy w formie wideo są dla Ciebie. Z czystym sumieniem mogę polecić Ci kursy na Pluralsight. Znajdziesz tam materiały dotyczące większości technologii, frameworków i języków programowania, z którymi będziesz miał styczność podczas swojej developerskiej kariery.

Dodatkowo wartym wspomnienia jest Skill IQ, który jakiś czas temu został uruchomiony na stronie pluralsight.com. Jest to quiz, który zweryfikuje Twoją wiedzę z wybranego zagadnienia i zaproponuje video tylko z tych działów wybranej technologii, z których najbardziej brakuje Ci wiedzy. Dodatkowo oceni Twój poziom wiedzy z wybranego tematu i przyzna Ci ocenę w formie zarówno punktowej (0-300 pkt), jak i opisowej (novice, proficient, expert). Jeżeli jesteś na samym początku swojej kariery, zachęcam Cię do zrobienia takiego quizu dwa razy. Po pierwszym wypełnieniu testu obejrzyj proponowane video i wypełnij luki w swojej wiedzy na dany temat. Za drugim razem test pójdzie Ci znacznie lepiej. Jeżeli jesteś na początku swojej kariery, i nie masz czego wpisać do CV to dodanie wyniku z skill iq będzie dobrym pomysłem, żeby wyróżnić się na tle innych kandydatów.

Hacker news, reddit i twitter

‌Jednym z obowiązków developera jest śledzenie na bieżąco świata technologii, w której się porusza. Agregatory treści i media społecznościowe koncentrujące developerów to świetne narzędzie do aktualizowania swojej wiedzy. Obserwując wartościowych ludzi na Twitterze, czytając technologiczne sub-reddity i śledząc Hacker news nie zostaniesz w tyle. Będziesz jednym z pierwszych, którzy dowiedzą się o nowych lukach bezpieczeństwa w wykorzystywanym przez siebie oprogramowaniu/bibliotekach. Czytając artykuły linkowane przez użytkowników wymienionych wyżej mediów, będziesz stale poszerzał swoją wiedzę. Liczne debaty prowadzone przez doświadczonych developerów pozwolą Ci poznać wiele różnych punktów widzenia na dany temat. Śledząc te media pozyskasz wiedzę, która w danym momencie nie jest jeszcze dostępna w książkach (liczne tutoriale i artykuły odnośnie nowych frameworków/technologii).

Podcasty‌

Każdy z nas czasem podróżuje lub wykonuje czynności, które nie absorbują naszej uwagi. To idealna okazja by przyswoić trochę wiedzy z podcastów. Oczywiście nie nauczysz się programować słuchając jak ludzie rozmawiają o programowaniu, ale podobnie jak w powyższym punkcie — pozostaniesz na bieżąco. Dodatkowym atutem podcastów jest fakt, że ze względu na swoją formę często poruszają tzw. tematy miękkie, ale na ten temat poświęcę zakończenie tego artykułu. Podsumowując, słuchanie podcastów świetnie rozwija umiejętności miękkie programisty, które są niezwykle ważne przy pracy w zespole.

Konferencje i meetupy

To jedno z najfajniejszych źródeł wiedzy, w dodatku bardzo często jest darmowe. Ze względu na swoją formę, wiedza na konferencji jest przekazywana w pigułce, dlatego to idealne miejsce żeby “na szybko” poznać nowe technologie/frameworki czy biblioteki. W ciągu kilku godzin poznasz jak inni programiści radzą sobie z często napotykanymi problemami (nie tylko technicznymi), dowiesz się co aktualnie wykorzystywane przez najlepszych i na co nie warto tracić czasu. Dodatkowym atutem konferencji jest możliwość nawiązania kontaktów. To jedno z niewielu miejsc, w którym możesz swobodnie porozmawiać z liderami branży. Najczęściej na tego typu wydarzeniach możesz też poszukać nowej pracy, to świetna okazja by podejść do stanowiska wybranej przez Ciebie firmy i porozmawiać o możliwości współpracy.

‌Wiedza techniczna to nie wszystko

Na temat umiejętności miękkich, psychologii pracy i rozwoju osobistego można by napisać osobny artykuł. Tutaj pobieżnie poruszę ten temat, bo uważam, że to bardzo ważny punkt w kontekście rozwoju programisty. Nauka nowego frameworka czy też wykucie na pamięć całego manuala wybranego języka programowania nie da Ci za wiele, jeżeli zignorujesz wspomniane umiejętności miękkie.

Nasza praca nie polega tylko na kodowaniu, znaczna część to komunikacja z biznesem, modelowanie tego co przekazują nam inni ludzie, rozwiązywanie problemów wspólnie z zespołem i ciągłe doskonalenie swojego warsztatu. Rzadko zdarza się sytuacja, w której pracujemy zupełnie sami. Dlatego dobry programista nie zaniedbuje edukacji w zakresie komunikacji, szuka sposobów na poprawę swoich zdolności poznawczych i dba o dobre relacje w zespole. Widziałem, jak kilka dni pracy ląduje do kosza przez złą komunikację w zespole lub konflikty wewnętrzne. Nie dopuść do takiej sytuacji w swoim zespole. Nie koncentruj się tylko na rozwoju umiejętności technicznych i zadbaj też o swoje zdolności miękkie. W ten sposób na pewno pomożesz swojej karierze i będziesz mógł skuteczniej wykonywać swoją pracę.


Zdjęcie główne artykułu pochodzi z unsplash.com.

Patronujemy

 
 
Polecamy
Piast Gliwice Mistrzem Polski – jak to się ma do Just Join IT?