Czytaj

arrow pointing down

Praca w IT – na jakich stanowiskach pracują programiści?

Rynek IT się rozwija, a z nim nowe stanowiska. Programista, inżynier oprogramowania, front-end developer – przeczytaj, co oznaczają i czym się różnią!

Gwałtowny rozwój nowych technologii sprawia, że nowe stanowiska pracy w obszarze IT ewoluują w niebywałym tempie. Twórcy oprogramowania wpływają już praktycznie na każdy obszar życia. Firmy z innych branż coraz chętniej korzystają z rozwiązań IT. O możliwościach pracy programistów świadczą coraz to nowe specjalizacje, a co za tym idzie – nazwy stanowisk. W tym artykule chcemy przybliżyć nazewnictwo używane w branży IT i wytłumaczyć, czym zajmują się programiści na poszczególnych stanowiskach.

Specyfika rynku IT

Obcojęzyczne nazwy stanowisk pojawiły się w Polsce wraz z zagranicznymi korporacjami, które w ten sposób dążą do ujednolicenia swoich struktur. O ile w międzynarodowych organizacjach stosowanie języka angielskiego wydaje się być zasadne, to w innych, gdzie może chodzi o wizerunek i prestiż, niekoniecznie.

Jednak w branży IT liderami są głównie firmy amerykańskie, takie jak: Apple, Facebook, Google, IBM, Intel czy Microsoft. I to one w naturalny sposób narzucają standardy językowe i nazewnicze.

Ważne, by wyobrażenia programistów poszukujących pracy pokrywały się z oczekiwaniami rekruterów

W obszarze firm IT angielski jest nie tylko obowiązującym językiem komunikacji wewnętrznej, ale przede wszystkim językiem programowania. Z uwagi na tempo rozwoju sektora technologicznego stanowiska często się tworzą, zanim jeszcze zostaną fachowo nazwane. Nie powinno zatem dziwić, że wiele nazw stanowisk nie znajduje polskiego odpowiednika. A czasem też pokrycia w doświadczeniu i wymaganiach.

Jak donosi międzynarodowe Stowarzyszenie CompTIA, rynek pracy IT wykazuje zapotrzebowanie na stanowiska, których nazwy jeszcze kilka lat temu nic nikomu nie mówiły.

Stanowiska programistyczne

Niektóre angielskie nazwy stanowisk bez trudu znalazły polskie odpowiedniki, jak programista, administrator sieci czy architekt oprogramowania. Inne zaadaptowały się w wersji oryginalnej. Wobec innych jeszcze stosuje się zarówno polską, jak i angielską nazwę, Na polskim rynku IT istnieją jednak nieprzejrzystości w zakresie stanowisk.

Ważne, by nazwy, które mają na myśli programiści poszukujący pracy, pokrywały się z oczekiwaniami rekruterów.

Poniżej wymieniamy stanowiska uporządkowane według ich prawdopodobnej złożoności – od najmniej do najbardziej złożonych. (Kolejność w zakresie kompetencyjnym w krajach zachodnich przeważnie przekłada się na wynagrodzenie).

1. Programmer (programista)

To nazwa ogólna dla kogoś, kto wie, jak kodować (=coder). Koncentruje się na programowaniu w oparciu o istniejące języki programowania. Tworzy, modyfikuje i testuje kod. Nie odpowiada raczej za projekt jako całość.

Rozwój różnych technologii stwarza duże zapotrzebowanie na wykształconych programistów. Nowoczesna konstrukcja oprogramowania wymaga już jednak czegoś więcej. Aplikacje muszą być ciekawe, przyjazne dla użytkownika, szybkie, a przede wszystkim konkurencyjne. 

Obecnie na topie są programiści aplikacji mobilnych i software deweloperzy gwarantujący nie tylko doskonałe działanie aplikacji, ale też najwyższy poziom cyberbezpieczeństwa.

2. (Software) Developer

Oznacza często to samo co programista. Istnieje między nimi subtelna różnica: pisanie kodu może być znaczącą częścią pracy, ale nie jedyną. Osoba taka dodatkowo opracowuje i rozwija oprogramowanie. Pracuje już nie tylko z kodem, ale też z ludźmi i planami.

Firmy w Niemczech, Wlk. Brytanii czy Kanadzie w ofertach pracy częściej używają terminu „developer”, podczas gdy w USA raczej „engineer”. Choć między nimi też zachodzi różnica.

3. (Software) Engineer

Kluczowa na tym stanowisku jest możliwość projektowania rozwiązań, co różni je od pracy zwykłego programisty. Tworzy koncepcje, niekiedy projektuje. Zadaniem jego, jako twórcy oprogramowania, może być analiza wymagań zleconych zmian w kodzie, implementacja i wdrażanie oraz tworzenie dokumentacji.

W Niemczech, Wlk. Brytanii czy Kanadzie używa się częściej terminu „developer”, natomiast w USA – „engineer”

Developer i Engineer pod wieloma względami są równoważne. Oba tytuły wskazują, że dana osoba zna różne technologie, umie pisać kod w językach programowania i je rozpoznawać. Oznaczają zdolność podejmowania decyzji przy projektowaniu i wdrażaniu oprogramowania oraz uczestniczenia w cyklu jego życia. 

4. Web Developer (projektant witryn internetowych)

Programista, który projektuje, tworzy i modyfikuje strony internetowe. Specjalizuje się w tworzeniu aplikacji WWW opartych na modelu klient-serwer. Technologie, których używa, to przede wszystkim HTML, CSS i JavaScript po stronie interfejsu użytkownika, PHP, ASP.NET (C #), Python lub Java na poziomie serwera i protokołu HTTP do komunikacji.

Przed wdrożeniem zawartości witryny internetowej analizuje potrzeby i możliwości użytkownika (wydajność, dostępność). Na koniec ma zadbać o poprawne jej funkcjonowanie od strony back-endu.

Stworzenie nawet niezbyt skomplikowanej strony internetowej wymaga złożonych umiejętności. W praktyce projekt witryny zazwyczaj powstaje przy ścisłej współpracy Web Designera (strona graficzna), copywritera (tworzy zawartość), zaś jej bieżącą obsługą zajmuje się administrator systemu.

5. DevOps Developer

Nazwa powstała z połączenia słów development i operations – tzw. DevOps – ma za zadanie stworzyć synergię pomiędzy działami wytwarzania oprogramowania (Dev) i zarządzania systemami (Ops).

Zajmuje się czuwaniem nad administrowaniem systemu, bieżącym jego utrzymaniem i kontrolą wersji oprogramowania. Zapewnia płynną komunikację pomiędzy wszystkimi zespołami technicznymi w firmie, odpowiedzialnymi za tworzenie produktu i wspólne dostarczanie wartości dla klienta.

6. Front-end Developer

Jak sama nazwa wskazuje, jest odpowiedzialny za to, co stoi frontem do klienta. Programista taki tworzy interfejs i umie go połączyć z back-endem, czyli zintegrować z usługą. Dba o to, jak produkt prezentuje się od strony interfejsu użytkownika. Koduje, tworzy komponenty/funkcje i wizualne elementy projektowanego oprogramowania.

Jest odpowiedzialny za front-end zarówno systemów operacyjnych, jak i różnego rodzaju aplikacji (witryn internetowych czy aplikacji mobilnych). Dla niektórych oznacza osobę, która zna HTML i CSS, dla innych to ktoś, kto ma głęboką znajomość JavaScript i jego najpopularniejszych frameworków.

W przypadku twórców aplikacji mobilnych w ogłoszeniach pracy rzadko wymienia się konkretne języki programowania, lecz mówi się po prostu o Front-end czy Back-end developerach.

7. Back-end Developer

Back-end Developer powinien być zaznajomiony z którąś z technologii jak: JavaScript, .Net, C++, Ruby, czy PHP itd. Do jego obowiązków należy zakodowanie serwisu, aplikacji, systemu od strony serwera, stworzenie API (application programming interface), organizacja komunikacji z bazami danych.

Może się zdarzyć, że kompetencje front-endowca i back-endowca będą się przenikać. Jeśli ktoś odnajduje się po obu stronach, może się okazać, że pracuje już jako Full Stack. 

8. Full Stack Developer

Ów „pełny stos” charakteryzuje programistów, którzy łączą pracę serwera i interfejsu. Powinien umieć zakodować system/aplikację po stronie serwera w danej technologii oraz dbać o odpowiednią wizualizację interfejsu i funkcjonalności po stronie użytkownika.

Oznacza to, że może pracować z bazami danych jak PHP, HTML, CSS, JavaScript itd., a także przeprowadzać konwersję projektów Photoshop do kodu front-end. Łączy zatem funkcje front- i back-end developera.

Ma znajomość technologii na jednej warstwie (np. JavaScript, REST, ASP.NET i SQL Server), ale dobrze, gdy zna też rozwiązania nowej generacji, jak Dart, Falcor, czy Couchbase. Jest ekspertem na każdym poziomie stosu i nadąża za wszystkim. 

9. Software Architect (architekt oprogramowania)

Plasuje się on najwyżej na drabinie zawodowej programisty. Reprezentuje wysoki poziom i jest najlepszym zasobem technologicznym firmy – osobą, która robiła to tyle razy, że praktycznie widzi przyszłość. Ma złożoną i odpowiedzialną funkcję.

Jest ekspertem od oprogramowania, który dokonuje wyborów technologii, dyktuje standardy techniczne, zaprojektowanie rozwiązania, czuwa nad jakością kodu i całego projektu. Dzieli się wiedzą z programistami – często podlega mu zespół lub kilka zespołów programistycznych. Akceptuje wszelkie kluczowe decyzje związane z produktem.

10. Inżynier systemowy

Jego rolą jest opracowywanie systemów i sieci informatycznych, a następnie ich wdrażanie oraz administracja wraz z instalowaniem i modyfikowaniem baz danych. Powinien być przygotowanym na tworzenie dokumentacji technicznej, testowej oraz powykonawczej projektów.

Stanowiska ze względu na specjalizację

Programiści, którzy chcą być kojarzeni z daną technologią czy językiem, coraz częściej posługują się bardziej szczegółowymi nazwami. Mamy na myśli stanowiska typu x Developer lub x Engineer, gdzie x jest konkretnym językiem lub technologią, czyli specjalizacją danego programisty.

Podobnie mają się kojarzyć takie złożone nazwy jak Senior Python Developer – i w miejscu „Python” mogą się znaleźć nazwy sugerujące konkretną umiejętność, np. Android, iOS, PHP itd. Odpowiednio: zamiast Developer – Engineer, a zamiast senior – junior. Ostatnie z nich mają sugerować podział ze względu na staż i zdobyte doświadczenie. 

Stanowiska ze względu na staż pracy/doświadczenie

Jeśli się nad tym zastanowić, junior, mid i senior to tylko etykiety, choć na ogół przekładają się na wynagrodzenie. Ogólnie rzecz biorąc, ścieżka kariery prowadzi od bycia "młodszym", do awansu po kilku(nastu) latach na "starszego" programistę. Zdarza się też, że awans ma niewiele wspólnego z długością kariery, szczególnie w mniejszych firmach. Na ogół jednak kolejne stopnie kariery w IT można scharakteryzować następująco:

  • Intern / Stażysta — rzadko jest czas na przyuczanie; po prostu musi znać podstawowe narzędzia programowania.
  • Junior — powinien wykazywać zdolność do samodzielnego wykonywania zadań technicznych.
  • Middle / Mid — poza kwestiami technicznymi musi rozumieć wymagania biznesowe i być w stanie przełożyć je na rozwiązania techniczne.
  • Senior — ma podejmować właściwe decyzje technologiczne w projekcie, czyli takie, które przynoszą firmie maksymalne korzyści i minimalizują koszty. Jest na bieżąco z tym, co zespół opracowuje, i wie, jakie zadania powinien spełniać ukończony produkt. Zna wąskie gardła systemu i możliwości jego skalowania.

Podsumowanie

Również w WEBSENSA zdarza nam się zmagać z nazewnictwem stanowisk zawodowych. Chcesz wiedzieć, co oznaczają dla nas poszczególne tytuły? Zobacz, jakie wymagania zawarliśmy w naszych ofertach pracy!

Powiązane artykuły

Metody zarządzania projektami IT – tradycyjne, czyli kaskadowe

Metody zarządzania projektami IT dzielimy na kaskadowe i zwinne. Przeczytaj o tych tradycyjnych (kaskadowych), jak Waterfall czy PRINCE2.

Web Content Accessibility Guidelines – produkty cyfrowe zgodne z WCAG

Co to jest dostępność sieci oraz WCAG? Jak ułatwić korzystanie z internetu osobom niepełnosprawnym? Przeczytasz w tym artykule.