Pewnie spotkałeś się z takim określeniem jak Full-Stack Developer? I może nawet zastanawiałeś się czym w praktyce się taka osoba zajmuje. Pewnie zdążyłeś także zauważyć, że spora ilość ofert pracy dla programistów czy też web developerów ma w nazwie stanowiska właśnie to tytułowe określenie. Kim więc jest Full-Stack Developer i dlaczego tak często można się z tą nazwą spotkać?

Kompletny stos technologiczny

Najlepiej byłoby określić takiego developera jako osobę, która sprawnie porusza się po wszystkich warstwach stosu technologicznego (ang. stack). Czyli jest to developer, który potrafi kodować aplikację po stronie klienta, poradzi sobie z budowaniem back-endu, umie administrować serwerem, bazą danych i wszystkim co w praktyce może być jeszcze potrzebne. Przynajmniej w teorii Full Stack Developer powinien sobie poradzić z projektowaniem, kodowaniem, debugowanien, wdrażaniem oraz utrzymaniem kompletnej aplikacji webowej.

Więcej informacji: Zostań Full Stack Developerem Zobacz kurs

Czy to możliwe?

W tym miejscu pewnie każdy sobie zadaje oczywiste pytanie: czy to jest wykonalne? Przecież wiedza wymagana do jednoczesnego tworzenia zarówno front-endu jak i back-endu jest niezwykle obszerna a olbrzymia ilość technologicznych wyzwań przekracza raczej możliwości jednej osoby.
Spójrzmy przez chwilę na temat w taki sposób: potraktujmy tego naszego Full-Stack Developera jako kogoś, kto ma dość dobrą orientację w tych kluczowych warstwach stosu technologicznego i ma dobre zrozumienie pewnych fundamentalnych koncepcji. Jako kogoś kto w razie potrzeby zajmie się rozwijaniem front-endu, a potem może i back-endu bo ma trochę doświadczenia w jednej i w drugiej warstwie. Dodajmy do tego nieco wiedzy na temat architektury, wdrażania oraz testowania aplikacji. Nagle zaczyna to wyglądać sensownie i wydaje się być, mówiąc kolokwialnie: „do ogarnięcia”. Bo tak też właśnie trzeba traktować Full-Stack. Jako wiedzę, która pomaga złączyć w całość poszczególne warstwy i sprawia, że możemy w razie potrzeby w każdej z nich swobodnie pracować.

Sprawdź naszą ścieżkę: Specjalista Web designer Zobacz kurs

Teoria a praktyka

Realia rynku są takie, ze firmy nieustannie szukają kogoś, kto potrafi pracować jako Full-Stack Developer. Wąskie specjalizacje są oczywiście bardzo ważne i w niektórych przypadkach wręcz kluczowe. Jednak Full-Stack to dla wielu firm bardziej optymalne rozwiązanie biorąc pod uwagą bilans wymagań oraz realnych możliwości czasowo-finansowych. Mniejsze firmy nie mogą sobie pozwolić na zatrudnianie specjalisty z każdej dziedziny. Startupy składające się z kilku osób tym bardziej muszą stawiać na kogoś, kto zna kompletny stos technologii. Dodajmy do tego developerów, którzy samodzielnie rozwijają swoje projekty i niejako z natury pracują jako Full-Stack.

Co trzeba umieć?

Co tak naprawdę wchodzi w skład Full-Stack i jakie technologie musi opanować developer w praktyce? Oczywiście wszystko zależy od projektu, nad którym pracujemy, jednak przynajmniej z grubsza można by wymienić pewne tematy które ciągle się przewijają – wystarczy przyjrzeć się ogłoszeniom oferującym pracę na takim właśnie stanowisku.
Co jest potrzebne:

  • Umiejętność budowania frontu z użyciem HTML5
  • Znajomość praktycznych aspektów CSS z naciskiem na takie zagadnienia jak Layouty, Typografia czy użycie Preprocesorów (np. SaSS)
  • Umiejętność pracy z co najmniej jednym popularnym frameworkiem UI np. Bootstrap
  • Dobre opanowanie fundamentalnych koncepcji języka JavaScript oraz nowoczesnych mechanizmów wprowadzonych w ES6 (Promise, arrow functions itp.)
  • Opanowanie fundamentalnych koncepcji front-end takich jak DOM, zdarzenia czy debugowanie w przeglądarce
  • Podstawowa znajomość środowiska Node.js oraz narzędzi które się z nim wiążą – Gulp, npm, Webpack
  • Wiedza na temat Unit Testing dla aplikacji JavaScript
  • Znajomość podstaw jednego popularnego frameworku front-end np. Angular, React, Vue.js
  • Dobra znajomość jednego języka typowego dla back-end np. PHP, Java, Ruby czy C#
  • Umiejętność pracy z relacyjnymi bazami danych opartymi na SQL
  • Znajomość różnych technik przechowywania danych: cookies, LocalStorage, bazy typu NoSQL
  • Dobra znajomość protokołu HTTP oraz zasad projektowania REST API
  • Wiedza na temat architektury nowoczesnych aplikacji webowych oraz fundamentalnych koncepcji takich jak MVC, mikrousługi itp.
  • Umiejętność pracy z serwerem w chmurze od popularnego dostawcy: AWS, Azure czy Heroku
  • Umiejętność pracy z systemem kontroli wersji Git
Sprawdź naszą ścieżkę: Specjalista Web developer Zobacz kursy

Podsumowanie

Full-Stack Developer z założenia ma mieć dobrą orientację we wszystkich kluczowych warstwach stosu składających się na aplikację webową. Opanowanie powyższych zagadnień jest więc rzeczą kluczową dla każdego, kto zamierza rozwijać swoją karierę w tym właśnie kierunku. O tym, że jest to interesujący i przyszłościowy wybór świadczyć może bardzo duża ilość firm poszukających Full-Stack Developerów.