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

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?

senior, mid czy junior developer

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

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.

Tomasz Kozon

Autor Tomasz Kozon

Zajmuję się projektowaniem aplikacji i serwisów internetowych. Posiadam wiedzę i doświadczenie z zakresu: programowania, Marketing Automation, kampanii w Social Media, SEO, SEM, kampanii mailingowych i copywrittingu. Obecnie kieruję własną spółką (software house/agencja marketingowa) i organizacją non-profit. Rozwijam start-upy, programuję i zarządzam projektami zintegrowanych kampanii marketingu w wielu kanałach on-line.

Więcej wpisów od Tomasz Kozon