Frontendowcy to obecnie najbardziej poszukiwana grupa programistów. Strony, aplikacje mobilne czy nawet backend i IoT – front end powoli wkrada się do każdego zakamarka życia. Zobaczmy więc, kim jest front end developer.

Ten wpis zaczyna serię artykułów o frontend developerze w dzisiejszych czasach. Przejdziemy przez podstawy, narzędzia, miejsca do nauki oraz jak być na bieżąco. A teraz, nie przedłużając, zapraszam do lektury.

Frontend Developer kiedyś

Frontend Developer to pojęcie bardzo szerokie. Aby je zrozumieć, cofnijmy się hen, hen daleko, aż do epoki frontendu łupanego. Dawno, dawno temu, w nie tak odległej galaktyce, wszystko zaczęło się od statycznych stron internetowych. Frontend wtedy był prosty – HTML i CSS. Po przygotowaniu i dorzuceniu jakiegoś języka templatów takie strony były wyrzucane przez backend na świat. Ludzie chcieli jednak czegoś więcej, chcieli stron interaktywnych, żywych. Tak powstał JavaScript.

Historia JSa to temat na oddzielny wpis. Dla nas ważne jest to, że od wymyślenia JSa frontend zaczął przyśpieszać. Najpierw do HTML i CSS dołączył JS. Później tego JSa było coraz więcej i więcej, zaczęły powstawać jakieś ułatwienia, biblioteki i frameworki, aż pojawiło się jQuery i nastało jQuerowiecze. Parę lat po nich nastała era RWD, narzędzi frontendowych czy transpilacji. Pojawiało się coraz więcej rzeczy ułatwiających z jednej strony pracę, z drugiej zaś dokładających więcej do nauki. Task runnery, kompilowanie kodu, preprocessory, miliony bibliotek – liczna narzędzi rosła i rosła. I z tym wszystkim dochodzimy do dzisiaj.

Frontend Developer dzisiaj

Dzisiaj frontend developer to, według mnie, osoba programująca w JavaScript. Oczywiście, jest też wiele różnych innych rzeczy, które frontend musi znać, jednak to znajomość JavaScriptu jest tym wyznacznikiem. Obecnie aplikacje webowe (chociaż nie tylko one) opierają się o JavaScript, często w połączeniu z biblioteką lub frameworkiem.

Frameworki i biblioteki – wspaniałe narzędzia upraszczające nam pracę. Ale czy na pewno? Oczywiście, wiele rzeczy jest prostszych dzięki nim, ale dochodzi kolejna rzecz do nauki poza JSem. Często te biblioteki czy frameworki mają swoje zależności, swoje problemy i swoje hacki, które trzeba poznać. A samych bibliotek i frameworków również jest wiele. Najpopularniejsze obecnie to angular.io (zwany angularem 2+) oraz react.js. Goni je vue.js, które zyskuje coraz większa popularność ze względu na prostotę i szybkość nauki.

To jednak nie wszystko. Frontend to nie tylko strony www czy aplikacje internetowe. Frontend obecnie to również aplikacje mobilne. Dzięki frameworkom takim, jak ionic, react native, cordova czy nativescript, frontend developerzy mogą tworzyć aplikacje mobilne na androida i iOSa. Co więcej, coraz więcej kodu jest reużywalnego, dzięki czemu można bardzo szybko zrobić stronę i aplikację mobilną bardzo szybko. Coraz głośniej jest też o PWA, czyli tworzeniu aplikacji internetowych tak, aby działały offline po pobraniu na telefon.

Frontend dotyka również drugiej strony – backendu. Odkąd stworzono Node.js, można używać JavaScriptu do tworzenia aplikacji backendowych. Tak, JS, który początkowo był do animowania elementów na stronach, pozwala tworzyć backend aplikacji.

Poza JSem i dodatkami do niego frontend developer powinien znać również najpopularniejsze narzędzia. Przykładowo, większość obecnych projektów stawia się z użyciem webpacka, aby ułatwić sobie pracę ze stylami. używa się np. SASS-a, do ściągania paczek NPM-a itd. Narzędzi jest bardzo dużo i cały czas ich przybywa, więc jest sporo do nauki.

Oczywiście zostaje nam też nasz standardowy pakiet, czyli HTML i CSS. One też się przydają w obecnych czasach, chociaż i tutaj jest pełno ułatwień. Metodyki nazewnictwa jak BEM, wspomniany wcześniej SASS, sporo bibliotek z gotowymi stylami czy całymi komponentami, jak np. Bootstrap. Wiele jest tutaj do nauki.

Skoro przy wyglądzie jesteśmy, to frontend developer coraz częściej musi, chociażby minimalnie, znać się na UX/UI. Coraz częściej też musi używać narzędzi do tworzenia szkiców i makiet stron, czy nawet tworzyć całe designy od zera. Nie jest to jeszcze za częste, a przy obecnym podziale obowiązków są od tego inne osoby, ale frontend powinien podstawy znać.

Widzisz więc, że frontend developer musi całkiem sporo się nauczyć, prawda? W internecie bez problemu można znaleźć wiele miejsc do nauki wszystkich wyżej wymienionych technologii, jednak wymaga to sporo czasu. Jeżeli szukasz książek na start, odsyłam do mojego wpisu na temat Top 9 książek po polsku dla junior frontend developera

Frontend Developer niejedno ma imię

Niby wszystko jest jasne, ale nie do końca. Przez wiele lat sama praca frontend developera zmieniała się wielokrotnie, w wyniku czego w internecie cały czas słychać różne dziwne nazwy na frontend developera. Niektóre są trafne, inne mniej. Poniżej wyjaśniam większość z nich:

  • Frontend Developer – domyślna nazwa, określająca osobą pracującą z JavaScriptem, HTML-em i CSS-em.
  • Frontend Engineer – Frontend Developer wykorzystujący w pracy wiedzę teoretyczną i techniczną ze studiów. Tytuł zwykle spotykany na rynku USA.
  • JavaScript Developer – programista pracujący głównie z JavaScriptem, niezajmujący się stylowaniem. Może być frontendowcem (praca np. w React.js) lub backendowcem (praca w node.js)
  • Fullstack Developer – programista, który potrafi programować zarówno frontend, jak i backend. Zwykle jest to osoba, która kompleksowo tworzy aplikację www, zarówno frontend w JSie, jak i backend w najczęściej node.js/python/php
  • CSS/HTML Developer – programista wyspecjalizowany tylko w tworzeniu w HTML i CSS, również najczęściej spotykany na rynku USA
  • Mobile Frontend Developer – programista, który tworzy w JS aplikacje mobilne, zwykle z użyciem frameworka, takiego jak react native/nativescript/cordova/ionic.
  • Frontend Devops – programista, który poza tworzeniem frontendu, potrafi zarządzać również procesem dostarczania, wdrażania czy integrowania dla pisanej przez siebie aplikacji.

Podsumowanie

Jak widzisz, frontend developer to pojęcie bardzo, bardzo szerokie. Dlatego warto już od początku zacząć się specjalizować. Ważne jest jednak, aby dobrze poznać podstawy, co opisałem w artykule Dlaczego warto poznać podstawy JavaScript

W kolejnym wpisie opiszę jak zostać frontend developerem. Tymczasem, jeżeli masz jakieś pytania, lub chcesz usłyszeć o czymś konkretnym – zapraszam do komentowania :)