Ostatnio na blogu wciąż tylko wpisy czysto techniczne, postanowiłem więc dla odmiany napisać dziś coś trochę innego. Temat tego posta nasunął mi się już jakiś czas temu. Co jakiś czas dostaję bowiem maila z pytaniem, jaką wiedzę trzeba posiadać aby zacząć pracę na stanowisku Frontend Developer. Do tego na blogu NetteCode pojawił się ostatnio ciekawy artykuł, w którym autorka omawia kilka ofert pracy na to stanowisko. Wynika z tego wszystkiego, że Frontend Developer to pojęcie dość szerokie. Postaram się więc dzisiaj opisać swoje obserwacje i przedstawić kilka wersji “frontendowca”!

Frontend Developer, czyli programista

Moim zdaniem, programowanie w JavaScript, często z użyciem jakiegoś frameworka, to najbardziej pasujący opis do nazwy “frontend developer”. W czasach aplikacji internetowych, stron typu SPA, gdzie wiele operacji dzieje się po stronie klienta, istnieje duże zapotrzebowanie na taką specjalizację.

Od osoby takiej wymaga się przede wszystkim bardzo dobrej znajomości języka JavaScript, dzięki któremu implementowane są wszelkie wymagane “ficzery” aplikacji. Praca nad frontendem aplikacji, polega m.in. na komunikacji z API (najczęściej REST) wystawianym przez backend w celu pobierania z niego danych. Następnie dane te są, w odpowiedni sposób, prezentowane przez część frontendową. Do tego mogą dochodzić różne operacje na tych danych, które odbywają się już po stronie przeglądarki internetowej. Frontend aplikacji służy też do odbierania informacji od użytkownika. Są one następnie odpowiednio przetwarzane i wysyłane do backendu, za pomocą tego samego API.

W powyższych działaniach, bardzo przydatne są frameworki JavaScript, które dostarczają programiście narzędzi wspomagających wykonywanie opisanych powyżej zadań. Moim zdaniem, znajomość danego frameworka jest bardzo przydatna przy poszukiwaniu pracy jako Frontend Developer, ale nie jest to warunek konieczny. Osoba, która świetnie porusza się w języku JavaScript, jest w stanie szybko przyswoić sobie zasady pracy z każdym frameworkiem JS, dostępnym na rynku. Dlatego, kiedy młodzi kandydaci na Frontend Developerów pytają mnie czego się uczyć - zawsze odpowiadam, żeby najpierw nauczyli się JavaScriptu, a potem ewentualnie skupili się na konkretnym frameworku!

Oczywiście, znajomość JavaScript i frameworka to nie wszystko. Do tego dochodzi dobra znajomość HTML i CSS - ficzery ficzerami, ale aplikacja musi też przecież dobrze wyglądać, więc nie da się bez tego obejść. Ponadto znajomość wielu różnego rodzaju narzędzi (Sass/LESS/Stylus, webpack, babel, grunt/gulp, npm, itd.) wspierających pracę, również jest ważna i przydatna.

frontend developer przy pracy nad kodem

Frontend Developer, czyli grafik-webmaster

W wielu firmach, a co za tym idzie, ogłoszeniach o pracę, na stanowisko Frontend Developera szuka się osób ze znajomością: HTML, CSS oraz Photoshopa. Czasem nazwa stanowiska jest inna, na przykład “Web Developer”. Bardzo często zakres obowiązków takiego pracownika jest przesunięty w stronę bycia grafikiem, który dodatkowo ma “ciąć” swoje dzieła i kodować je do HTML i CSS.

Moim zdaniem, jest to trochę błędne użycie nazwy “Frontend Developer”… Tutaj mamy bowiem do czynienia z grafikiem, którego obowiązki zostały poszerzone o kodowanie statycznych stron. Niemniej jednak, tego typu wymagania spotyka się w ogłoszeniach o pracę i warto zdawać sobie z tego sprawę.

Czasami też, zdarzają się jeszcze bardziej okrojone formy “Frontend Developerów”. Osoby takie nie są grafikami, a zajmują się jedynie “cięciem” grafiki i kodowaniem jej do HTML i CSS. Swoją drogą nie wiem dlaczego słowo “cięcie” wciąż funkcjonuje - przecież nie ma już prawdziwego cięcia projektów graficznych na kawałki… To odeszło bezpowrotnie wraz z layoutami opartymi o tabelki…

graficy przy pracy

Frontend Developer, czyli… fullstack? web developer?

Od czasu do czasu zdarza mi się też widzieć ogłoszenia, w którym wymagana jest bardzo dobra znajomość HTML, CSS, JavaScript oraz… np. PHP! Takie oferty pracy to raczej domena firm typu “agencja interaktywna”, gdzie oczekuje się, że programiści ogarną tworzenie od zera całych stron.

Ok, backend takich stron zwykle nie jest jakiś mocno skomplikowany, żeby dzielić go na kilka osób. Wszystko fajnie… ale nie nazywajmy tego frontend developmentem! Na szczęście, takie coś to rzadkość i pracodawcy zwykle nazywają takie stanowiska mianem “web developera”.

Często też można się spotkać z określeniem “fullstack developer”. Odnosi się ono jednak najczęściej do programisty, pracującego przy większych aplikacjach internetowych, który ogarnia zarówno część kompetencji Frontend Developera (patrz pierwszy opisany dziś typ) jak i Backend Developera (gdzie backend może być w różnych technologiach, takich jak C#, Java, Ruby, PHP itp.).

Pamiętaj też, że istnieje jeszcze Node.js, który pozwala tworzyć backend w języku JavaScript. Tutaj może się zdarzyć, że człowiek ogarniający frontend i backend w tym samym języku nazwany zostanie nie “fullstackiem”, a na przykład “JavaScript developerem”…

Podsumowanie

Powyżej opisałem tylko, moim zdaniem, najczęstsze odmiany Frontend Developera. Pojęcie to jest jednak na tyle szerokie, że bez wątpienia może się zdarzyć, że natkniesz się na jeszcze inny miks wymaganych kompetencji. Warto więc dobrze studiować ogłoszenia o pracę. Na tej podstawie da się bowiem wyciągnąć ogólny wniosek, o jaki typ “frontenda” chodzi (albo czy w ogóle chodzi o “frontenda”).