Back-end

Senior developer, mid i junior — jakie są kryteria stopniowania stanowisk programistycznych w IT?

Stopniowanie stanowisk programistycznych jest kluczowe dla każdej firmy IT, ponieważ pozwala na lepsze zarządzanie zespołem i określenie odpowiedzialności każdego członka. Najczęściej wyróżnia się trzy poziomy: senior developer, mid i junior.

22 lut 2022

IT jest jedną z najszybciej rozwijających się branży związanych z nowymi technologiami. Stałe zapotrzebowanie rynku na programistów sprawia, że coraz więcej osób skuszonych wizją dobrej pensji i stabilnej pracy decyduje się związać swoją przyszłość z tym kierunkiem. Zanim jednak osiągnął poziom zarobków i satysfakcję z wykonywanej pracy muszą przejść kolejne etapy na ścieżce kariery developera. Junior, mid i senior developer – jakie są kryteria stopniowania stanowisk programistycznych w IT?

 

Kim jest junior, mid i senior developer i jakie są ich zadania?

Najczęściej firmy IT stosują trzystopniową skalę podczas rekrutacji nowych pracowników do swoich zespołów developerskich. Dlatego też ogłoszenia o pracę są pełne stanowisk na junior, mid lub senior developerów. Jednak dokładnie określenie różnic pomiędzy nimi jest bardzo płynne i często bardzo nieoczywiste. Najczęstszym kryterium jest staż pracy w zawodzie programisty w projektach komercyjnych, czyli realne doświadczenie w pracy w firmach IT. Bez względu na to, czy osoba samodzielnie kształciła się w tym kierunku, odbyła kursy i szkolenia online czy też skończyła studia programistyczne powinna posiadać określoną wiedzę. Nie tylko techniczną dotyczącą znajomości określonych języków programowania, narzędzi i frameworków. Równie istotna jest znajomość dobrych praktyk pisania kodu według określonych reguł czy znajomość różnych metodologii pracy w zespole. Co innego bowiem jest stworzyć hobbystyczny projekt na GitHubie, a co innego być częścią zespołu, w którym wymagane jest stosowanie reguł tworzenia bezpiecznego i stabilnego kodu wysokiej jakości.

Tak naprawdę nie istnieją jednak ścisłe kryteria oceny umiejętności, które powinien posiadać junior, mid czy senior developer. Są one mocno uzależnione od wymagań konkretnej firmy oraz specyfikacji samych projektów. Warto jednak zauważyć, że ze względu na ogólnodostępność materiałów szkoleniowych oraz powstaniu wielu języków programowania niskiego wejścia, które nie istniały jeszcze kilka czy kilkanaście lat temu, ścieżka rozwoju kariery developera na różnych etapach jest zdecydowanie krótsza niż jeszcze dekadę temu.

junior developer

Junior developer

Junior developer to najczęściej osoba, która dopiero rozpoczyna przygodę z programowaniem. Bez względu na to, czy odbyła już staż po studiach, czy też nauczyła się podstaw programowania samodzielnie, przede wszystkim musi przystosować się do pracy w firmie IT. Dotyczy to wykorzystywanych w niej języków i narzędzi programowania oraz metodologii pracy nad projektami. Wszystko, co junior spotyka na swojej drodze, jest dla niego nowe. Powinien zatem poświęcić więcej czasu i zaangażowania w swoją pracę. Niejednokrotnie musi poświęcić swój czas wolny na doszkalanie lub rozwiązywanie problemów, jakie postawił przed nim projekt. Najczęściej będzie on pracował pod nadzorem starszych kolegów z zespołu. Nierzadko jednak zdarza się, że pracodawca będzie wymagał od niego umiejętności samodzielnego pisania kodu. Tym bardziej, jeśli ma już za sobą praktykę zawodową.

 

Junior developer — zadania, umiejętności, oczekiwania:

  • 0-1,5 roku doświadczenia;
  • podstawowa znajomość języka programowania i dedykowanego mu frameworku obowiązującego w firmie bądź przy konkretnych projektach;
  • język angielski na poziomie komunikatywnym, który umożliwi mu wgląd w dokumentację techniczną;
  • praca w dużej mierze pod nadzorem starszych kolegów z zespołu;
  • możliwość popełniania błędów przy jednoczesnej umiejętności wyciągania wniosków z konstruktywnej krytyki;
  • wykonywanie przydzielonych mu zadań — brak możliwości wyboru tych zadań;
    praca polegająca na wykonywaniu stosunkowo prostych i powtarzalnych czynności;
  • wiedza na temat technologii stosowanych przy projekcie oraz wiadomości na temat sprzętu, na którym pracuje;
  • brak komunikacji z klientem oraz wpływu na decyzje podejmowane przy projekcie;
    ukierunkowanie na ciągły rozwój po godzinach pracy.

mid developer

Powiązana branża

HR / HRTech

W HR pracujemy z agencjami rekrutacyjnymi, startupami hrtech i firmami, które mają własny dział HR i wyrosły z gotowych narzędzi. Problem jest zwykle ten sam: proces rekrutacyjny albo kadrowy jest rozsypany między system ATS, arkusze, maile i kalendarz, a nikt nie widzi całości. Buduje się tu przede wszystkim systemy do rekrutacji, obiegu dokumentów pracowniczych, onboardingu i szkoleń. Rzadziej chodzi o brak funkcji — częściej o to, że narzędzie nie zgadza się z procesem, który firma faktycznie stosuje. Dlaczego gotowy ATS przestaje wystarczać Gotowe narzędzia zakładają jeden uniwersalny proces rekrutacji. Tymczasem agencja pracuje inaczej niż dział HR w produkcji, a rekrutacja specjalistów IT inaczej niż masowa. Kiedy firma zaczyna prowadzić proces obok narzędzia — w arkuszach i mailach — to znak, że narzędzie przegrało. Budowę własnego systemu zaczynamy więc od zmapowania procesu takiego, jaki jest, z jego wyjątkami — dopiero potem powstaje interfejs. Widoczność firmy HR na zewnątrz to osobny wątek: strona doradztwa czy agencji musi dać się aktualizować bez programisty, bo oferta i treści zmieniają się z tygodnia na tydzień. Tak przebudowaliśmy serwis firmy doradztwa HR — na narzędziach, które zespół obsługuje samodzielnie. Drugi nurt to dokumenty: umowy, aneksy, zgody, badania, szkolenia BHP. Obieg papierowy kończy się segregatorami i pytaniem „czy to na pewno wróciło podpisane". Cyfrowy obieg z podpisem elektronicznym i automatycznymi przypomnieniami zdejmuje z kadr najbardziej mechaniczną część pracy — a pracownikowi daje jedno miejsce, w którym widzi swoje sprawy. Na co uważać przy narzędziach wewnętrznych Narzędzie wewnętrzne nie ma marketingu, który zmusi ludzi do używania — albo jest wygodniejsze od arkusza, albo umiera. Dlatego w tych projektach interfejs nie jest kosmetyką: liczy się liczba kliknięć w codziennych czynnościach, sensowne wartości domyślne i to, żeby system podpowiadał następny krok procesu. Tę część pracy wykonujemy w ramach projektowania UX/UI z testami na osobach, które będą narzędzia używać naprawdę.

Branża HR

Mid developer/regular developer

Doświadczenie wielu programistów pokazuje, że junior developer staje się mid developerem, kiedy uda mu się opanować dane języki i technologie programistyczne tak, aby mógł samodzielnie napisać bezbłędny kod. A zatem mid developer nie potrzebuje już tak rzetelnego nadzoru, jak junior. Na swoim stanowisku czuje się bezpiecznie i komfortowo. Wie, kiedy warto poprosić o pomoc innych, a kiedy lepiej samemu postarać się rozwiązać problemy, co wynika z jego doświadczenia. To właśnie dzięki temu doświadczeniu potrafi nie tylko zrozumieć i zaimplementować kod projektu, ale przede wszystkim potrafi przełożyć wymagania biznesowe na język nowoczesnych technologii. Na zadania nie patrzy już jak na napisanie działającego i bezbłędnego kodu. Rozumie za to założenia projektu i oczekiwania klienta oraz potrafi zaproponować zespołowi własne rozwiązania.

Warto zauważyć, że jest to stanowisko wygodne, dlatego często mid developer nie awansuje dalej. Przyczyną tego mogą być jego własne oczekiwania wobec pracy. Nierzadko jednak przyczynia się do tego polityka firmy, która na rozmowie kwalifikacyjnej obiecuje awans po określonym stażu pracy, jednak niewiele robi w kierunku faktycznego docenienia pracownika.

 

Mid developer — zadania, umiejętności, oczekiwania:

  • 2-4 lata doświadczenia;
  • praca w główniej mierze samodzielna przy niewielkim nadzorze;
  • umiejętność samodzielnego rozwiązywania problemów technicznych;
  • zdolność wyznaczania sobie zadań w oparciu o cele biznesowe projektu;
  • umiejętność pracowania samodzielnie i w zespole, a nawet zarządzania niewielkim zespołem;
  • nadzór nad pracą młodszych kolegów;
  • inicjatywa w rozwiązywaniu różnych problemów oraz podejmowanie decyzji projektowych;
  • komunikacja z klientem na temat założeń i najlepszych rozwiązań dla projektu;
    ciągły rozwój i bycie na bieżąco z nowinkami technologicznymi.

senior developer

Senior developer

Senior developer to programista najbardziej doświadczony w zespole. Napisał już niezliczone linijki kodu, przy których, owszem, popełnił wiele błędów, ale potrafił z nich wyciągnąć odpowiednie wnioski. To, co odróżnia go od junior i mid developera to jego całościowe i przyszłościowe spojrzenie na projekt. Oznacza to, że rozumie nie tylko, dlaczego konkretne rozwiązania zostały użyte w projekcie, ale również to, jakie problemy ma rozwiązywać powstały produkt, a zatem jakie są możliwości jego przyszłego rozwoju. Dostrzega potrzeby i wymagania klienta oraz potrafi skorzystać z takich rozwiązań, aby uniknąć długu technologicznego całego przedsięwzięcia. To właśnie on najczęściej nadzoruje pracę junior deweloperów, ponieważ od razu wie, jakie błędy popełnili oni w projekcie i potrafi przekazać im konstruktywną krytykę oraz cenne na przyszłość uwagi.

 

Senior developer — zadania, umiejętności, oczekiwania:

  • 5-8 lat doświadczenia;
  • samodzielna praca nad bardzo złożonymi projektami niejednokrotnie kilkoma na raz;
  • prowadzenie dużych zespołów i wspieranie ich swoją wiedzą i doświadczeniem;
  • umiejętność efektywnego delegowania zadań pomiędzy członków zespołu zgodnie z ich umiejętnościami i założeniami projektu;
  • nadzór nad pracą junior developerów;
  • szerokie spojrzenie na produkt z naciskiem na dalsze możliwości jego rozwoju;
  • podejmowanie strategicznych dla projektu decyzji;
  • kontakt z klientami i omawianie z nimi najlepszych rozwiązań technologicznych służących realizacji celów biznesowych.

 

Podsumowanie

W dużej mierze kryteria stopniowania stanowisk programistycznych w IT zależą od wymagań i oczekiwań, jakie stawia przed kandydatami na poszczególne stanowiska konkretna firma. Jednak wiele zależy też od samego programisty — jego pasji, zaangażowania, chęci rozwoju i etyki pracy. Dzięki temu nawet osoby z mniejszym stażem pracy mogą awansować znacznie szybciej niż standardowo lub też osiąść na laurach na ciepłym i wygodnym stanowisku.

Jak widać z powyższych informacji, kryteria stopniowania stanowisk programistycznych w IT nie są sztywnie określone. Junior developer to osoba, która dopiero zaczyna przygodę z programowaniem. Może pozwolić sobie na błędy w trakcie pracy, jednak stale musi dokształcać się i doskonalić. Mid developer powinien już samodzielnie pisać bezbłędny kod, rozumieć cele biznesowego projektu oraz zarządzać młodszymi kolegami. Z kolei senior developer to specjalista w swojej dziedzinie, który patrzy ponad kwestie czysto zadaniowe projektu. Potrafi samodzielnie dopasowywać najlepsze rozwiązania do osiągnięcia jak najwyższej jakości produktu oraz dostrzega możliwości jego przyszłego rozwoju. Dodatkowo powinien być nieocenionym wsparciem i mentorem dla całego zespołu.

FAQ

FAQ – najczęstsze pytania o poziomy junior, mid i senior developera

  • Najczęstszym kryterium jest staż pracy w projektach komercyjnych – realne doświadczenie w firmach IT. Liczy się jednak nie tylko wiedza techniczna (języki, narzędzia, frameworki), ale także znajomość dobrych praktyk pisania kodu i metodologii pracy w zespole. Co innego stworzyć hobbystyczny projekt na GitHubie, a co innego być częścią zespołu wymagającego stabilnego, bezpiecznego kodu wysokiej jakości.

  • Junior to osoba rozpoczynająca przygodę z programowaniem (0–1,5 roku doświadczenia). Posiada podstawową znajomość języka i frameworku obowiązującego w firmie, angielski na poziomie komunikatywnym, pracuje pod nadzorem starszych kolegów. Wykonuje stosunkowo proste i powtarzalne czynności z przydzielonych zadań, bez wyboru. Nie ma kontaktu z klientem ani wpływu na decyzje projektowe – jest ukierunkowany na ciągły rozwój.

  • Mid developer (2–4 lata doświadczenia) potrafi już samodzielnie napisać bezbłędny kod. Pracuje w większości samodzielnie, przy niewielkim nadzorze. Umie rozwiązywać problemy techniczne, wyznaczać sobie zadania w oparciu o cele biznesowe, zarządzać niewielkim zespołem i nadzorować pracę juniorów. Komunikuje się z klientem na temat założeń i najlepszych rozwiązań – rozumie wymagania biznesowe, nie tylko techniczne.

  • Senior (5–8 lat doświadczenia) to najbardziej doświadczony programista w zespole. Pracuje samodzielnie nad bardzo złożonymi projektami, prowadzi duże zespoły i efektywnie deleguje zadania zgodnie z umiejętnościami członków. Ma całościowe i przyszłościowe spojrzenie na projekt – rozumie, jakie problemy ma rozwiązywać produkt i jakie są możliwości jego rozwoju. Podejmuje strategiczne decyzje i kontaktuje się z klientami.

  • Orientacyjnie: junior to pierwsze kilkanaście miesięcy pracy, mid — mniej więcej od drugiego do czwartego roku, a senior — od około pięciu lat wzwyż. Te ramy nie są jednak sztywne i różnią się między firmami: w mniejszych organizacjach awans bywa szybszy, bo zakres obowiązków rośnie naturalnie, w korporacjach ścieżka jest bardziej sformalizowana. Decydują nie tyle przepracowane lata, ile samodzielność, odpowiedzialność za decyzje techniczne i zdolność prowadzenia innych. Sama liczba lat w CV bez tych kompetencji nie robi z nikogo seniora.

  • Stanowisko mid developera jest „wygodne” – pracownik radzi sobie samodzielnie, czuje się bezpiecznie i komfortowo. Brak awansu wynika z dwóch przyczyn. Po pierwsze, własnych oczekiwań pracownika wobec dalszej kariery. Po drugie, polityki firmy – pracodawca na rozmowie kwalifikacyjnej obiecuje awans po określonym stażu, ale faktycznie niewiele robi w kierunku docenienia pracownika.

Blog

Powiązane artykuły

Czytaj więcej
Back-end

GraalVM: Rewolucja w świecie wirtualnych maszyn

GraalVM wprowadza przełom w świecie wirtualnych maszyn, oferując wyjątkową uniwersalność i wydajność. Zaprojektowany z myślą o współczesnych wymaganiach programistycznych, umożliwia uruchamianie kodu napisanego w wielu językach, w tym Java, JavaScript, Python, i innych, na jednej platformie.

Tomasz Kozon
06 lut 2024
Back-end

GRPC: kiedy i dlaczego warto używać?

gRPC to nowoczesny, otwartoźródłowy framework zdalnego wywoływania procedur, który zdobywa coraz szersze uznanie wśród deweloperów. Ten artykuł wyjaśni kluczowe przewagi gRPC, omówi sytuacje, w której jego zastosowanie może okazać się szczególnie korzystne i przedstawi istotne aspekty pracy z tą technologią.

Tomasz Kozon
14 gru 2023
Back-end

Headless CMS - lista popularnych technologii

W ostatnim czasie coraz więcej firm decyduje się na wykorzystanie technologii Headless CMS. Jest to spowodowane coraz większym zapotrzebowaniem na elastyczność i możliwość tworzenia aplikacji internetowych, które będą dostosowane do indywidualnych potrzeb użytkownika.

Tomasz Kozon
05 lip 2022
Back-end

Czym jest HTTP 301 i kiedy warto go użyć?

HTTP 301 to status kodu, który informuje przeglądarkę oraz wyszukiwarki, że zasób, którego dotyczy żądanie, został przeniesiony na stałe do nowego adresu URL. Oznacza to, że zasób już nie jest dostępny pod starym adresem URL, a wszystkie przyszłe żądania powinny kierować do nowego adresu.

Tomasz Kozon
19 paź 2022
Back-end

Co to jest Joomla i jakie daje możliwości?

Joomla to popularny system zarządzania treścią (CMS), który pozwala na łatwe tworzenie i zarządzanie witrynami internetowymi. Jest to otwarty i darmowy system, który jest dostępny dla każdego, kto chce stworzyć profesjonalną stronę internetową.

Tomasz Kozon
15 lip 2022
Back-end

Assembler - niskopoziomowy język programowania

Assembler to niskopoziomowy język programowania, który umożliwia bezpośrednie manipulowanie sprzętem komputera. Choć coraz rzadziej używany, wciąż stanowi cenną umiejętność dla programistów zajmujących się optymalizacją lub tworzeniem oprogramowania wbudowanego.

Tomasz Kozon
20 maj 2023