Powracamy z kolejnym tekstem w serii “poznaj Primotly”, w którym przybliżamy kulisy pracy w IT. Ostatnim razem poznaliście Jakuba Wachola, który wytłumaczył kim jest back-end developer. Dziś zajmiemy się front-endem. Jakub Celewicz opowiedział nam o wyzwaniach, ścieżce kariery, niezbędnych technologiach i umiejętnościach, których potrzebuje skuteczny front-end developer.
“Poznaj Primotly” to zbiór wywiadów z ekspertami z różnych dziedzin IT. Początkujący deweloperzy znajdą tu nie tylko przydatne wskazówki, ale także inspirację, jakie umiejętności powinni rozwijać i jakie kompetencje zgłębiać. Dla osób, które poszukują pracy w IT, będzie to świetny sposób na lepsze poznanie kultury naszej pracy i członków zespołu Primotly. Dążymy do nieustannego rozwoju uczestnicząc w nowym projektach, pozyskując nowych klientów i nawiązując nowe partnerstwa biznesowe. Jeśli czujesz, że do siebie pasujemy, koniecznie odwiedź zakładkę Kariera - zaaplikuj na konkretną ofertę pracy lub po prostu wyślij nam swoje CV, abyśmy mogli się lepiej poznać!
Jakub Celewicz – web developer z ponad 6-letnim doświadczeniem w tworzeniu aplikacji webowych dla międzynarodowych klientów. Fan prostoty zarówno w designie, jak i kodzie. Wcześniej pracował jako freelancer tworząc strony internetowe dla amerykańskich i polskich przedsiębiorstw.
Jak zostać front end-developerem: pierwsze kroki
Jak wyjaśnić, czym zajmuje się programista front-end, osobie spoza świata IT?
W największym skrócie można powiedzieć, że programista front-end zajmuje się całością interakcji użytkownika ze stroną bądź aplikacją, a także jej stroną wizualną.
Moją rolą jest dopilnowanie, aby interfejs był intuicyjny, spójny i zgodnym z zasadami projektowania (np. 10 zasad heurystyki). Do tego dochodzą elementy UX, UI i dostępności. Wszystko to bardzo ewoluowało w ciągu ostatnich kilku lat, również pod względem standardów regulowanych przez prawo. Front-end jest zatem związany nie tylko z samym programowaniem, ale także z użytecznością na granicy interfejs-kod.
Z jakimi wyzwaniami wiąże się dziś praca front-end developera?
Myślę, że warto zacząć od tego, jak zmieniło się podejście do tworzenia witryn internetowych na przestrzeni lat. Kiedy zaczynałem programować hobbistycznie 15 lat temu, przychodziło się do klienta z projektem. Projekt ten wyglądał jak ulotka reklamowa, którą można było opublikować w Internecie. Strony internetowe w tamtych czasach były bardzo oryginalne; każda z nich była inna i wyjątkowa. Jednocześnie nie istniały standardy, które każda witryna musiała spełniać. Każdy robił to tak, jak chciał, aby strona się wyróżniała.
Wraz z rosnącą popularnością smartfonów pojawiły się wymagania dotyczące responsywności. Można powiedzieć, że ewolucja technologiczna sprawiła, że praca front-end developera zaczęła wyglądać zupełnie inaczej. Strona internetowa musi dziś nie tylko świetnie wyglądać, ale także doskonale działać na różnych typach urządzeń. Nie możemy dopuścić do sytuacji, w której coś działa na komputerze, ale nie na smartfonie. Dziś programista front-end projektuje interfejs z gotowych komponentów. Mamy makietę, informacje o funkcjonalności i przepływie danych. Moim zadaniem jest zgranie tego wszystkiego w całość tak, aby strona działała płynnie na komputerach, tabletach i smartfonach.
Dlaczego zdecydowałeś się zostać front-end developerem?
Zawsze chciałem zajmować się stroną wizualną projektów. Przekształcanie kodu w graficzną reprezentację jest dla mnie bardzo satysfakcjonujące, ale muszę przyznać, że kiedy zacząłem tworzyć strony internetowe, nie myślałem o zostaniu programistą. Jednak od początku interesowały mnie interfejsy, interaktywność i projektowanie grafiki w łatwy do opanowania sposób. Na początku dostosowywałem istniejące CMS-y do projektów. Przez kilka lat specjalizowałem się w MODX i zrealizowałem dziesiątki projektów jako freelancer. W 2010 roku pojawiła się jednak rewolucja – generatory stron. W pewnym sensie zabrały one pracę webmasterom. Pomyślałem, że stworzenie takiej usługi od podstaw to świetny pomysł i wtedy zająłem się programowaniem na poważnie.
Co najbardziej lubisz w swojej pracy?
Największą zaletą tej pracy jest brak nudy. Każdy dzień wygląda inaczej. Cały czas pojawiają się nowe wyzwania. Nie ma powtarzalnych zadań i rutyny. Technologicznie niektóre rzeczy mogą być podobne, ale każdy projekt oferuje coś nowego i świeżego w praktyce. Czerpię też wiele radości z samego tworzenia. Mam realny wpływ na to, jak coś działa i wygląda. Uczestniczenie w tworzeniu dzieła jest dla mnie ekscytujące. Co dla mnie niezwykle ważne - mam też możliwość rozwoju. Programowanie pozwala tworzyć procesy i automatyzować pewne rzeczy. A że technologia towarzyszy nam dziś w niemal każdej dziedzinie życia, to przestrzeń do nauki i zdobywania nowych kompetencji jest naprawdę duża.
Co jest największym wyzwaniem w pracy front-end developera?
Te niekończące się innowacje mają też swoją negatywną stronę. Czasami trudno nadążyć za zmieniającymi się technologiami. Pewnego dnia myślisz, że coś opanowałeś i nagle pojawia się nowa biblioteka i musisz uczyć się wszystkiego od nowa. Trudno więc mówić o stabilności w tym zawodzie. Proces tworzenia aplikacji w połączeniu z zapleczem również może być czasami przytłaczający. Dzień musiałby być dwa razy dłuższy, żebyś miał wiedzę na temat wszystkich zagadnień pojawiających się w projekcie. Musisz zaakceptować fakt, że nie możesz kontrolować wszystkiego, dlatego tak ważny jest punkt styku DevOps, back-endu, front-endu i designu.
Jak myślisz, co charakteryzuje dobrego front-end developera?
Jak powiedziałem wcześniej, najważniejsza jest satysfakcja z pracy. Nie będziesz dobrym front-end devem, jeśli będziesz się do tego zmuszał lub robił to tylko dla pieniędzy. Najważniejszy jest ten wyzwalacz – chęć stworzenia czegoś wizualnego. Dla mnie to absolutna podstawa tego zawodu. Dobry programista front-end chce rozwiązywać problemy i znajdować rozwiązania. Jeśli często zadajesz sobie pytanie, jak coś działa i co kryje się za jakimś mechanizmem, a potem brniesz w temat, aż znajdziesz odpowiedź, to front-end jest czymś dla Ciebie.
Skąd czerpać wiedzę na temat front-endu?
Skąd czerpać wiedzę na temat programowania front-end?
Kiedy zaczynałem 15 lat temu, nie było wielkiego wyboru i dostępu do rozmaitych materiałów edukacyjnych wideo, jak dziś. Dziś uważam, że jest to najlepszy sposób na zdobywanie wiedzy przez początkujących programistów. Udemy oferuje wiele świetnych kursów. Polecam dostosować je do swojego poziomu wiedzy i nie zaczynać od wiedzy dla bardziej zaawansowanych programistów. Szukając kursów warto kierować się rekomendacjami – duża liczba pozytywnych recenzji i wysokie oceny to najlepszy wyznacznik jakości. Należy pamiętać, że samo przejście kursu nie wystarczy. Zachęcam do eksperymentowania i robienia rzeczy po swojemu. Warto wykorzystać zdobytą wiedzę do własnych projektów. W ten sposób można nauczyć się rozwiązywać problemy, co pozwala na szybkie postępy.
Drugim źródłem wiedzy, które również polecam, są grupy na Facebooku (wiele kursów oferuje dostęp do własnych „zajęć”, na których spotykają się „studenci”). Pozwalają na interakcję z ludźmi, a to jest bardzo ważne, gdy cały dzień pracujesz przed komputerem.
Przydatne narzędzia i źródła wiedzy dla front-end developera:
- Material UI – kompleksowy zestaw narzędzi interfejsu użytkownika, który pomaga szybciej wprowadzać nowe funkcje.
- JavaScript Weekly – newsletter z artykułami o JavaScript, nowinkami i fajnymi projektami.
- Frontend Weekly – zbiór przydatnych treści związanych z JavaScript i programowaniem front-endu.
Jak zmienia się perspektywa, gdy początkujący programista, który ma doświadczenie wyłącznie z kursów, trafia do zespołu jako junior front-end dev?
Znalezienie pracy przy prawdziwych projektach przez kogoś, kto samodzielnie uczył się w domu z kursów, to już duży sukces. Pracując z zespołem, możesz zobaczyć cały proces, przepływ i złożoność operacji. Pojawiają się elementy, takie jak kontrola wersji i potoki kompilacji/testowania. Podczas pracy nad projektami bardzo ważna jest umiejętność czytania dokumentacji; musisz być w stanie znaleźć, zrozumieć i zastosować pewne zasady. Seniorzy muszą tworzyć zadania dopasowane do kompetencji juniorów. Niech budują z prostych komponentów, do których bardziej doświadczeni pracownicy dodadzą logikę i przepływ danych. W takich warunkach junior może robić bardzo szybkie postępy. Rola seniorów jest niezwykle ważna, jeśli chodzi o przekazywanie wiedzy. Nie każdy może to zrobić. Z drugiej strony juniorzy nie powinni być sfrustrowani powtarzającymi się code review. Czasami coś może pójść nie tak, ale przepisanie kodu od podstaw to nie koniec świata. To nie jest porażka; to szansa na rozwój i zdobycie nowej, wartościowej wiedzy.
Stack technologiczny front-end developera
Z jakich technologii najczęściej korzystasz w swojej pracy?
Podstawowym stosem technologicznym dla front-endu jest React. Jest to obecnie najbardziej wspierana i popularna biblioteka. W poprzedniej pracy miałem więcej do czynienia z Vue.js, gdzie było mniej pisania kodu, ale to React daje zdecydowanie większą kontrolę. Zawsze interesowałem się też backiem. Myślę, że pełne kompetencje pozwalają spojrzeć na projekt bardziej kompleksowo. NextJS jest świetnym back-endowym frameworkiem ponieważ bierze najlepsze elementy z Angularowego podejścia (luźno powiązane i łatwo testowalne struktury oraz dobrze zaprojektowaną architekturę). Dekoratory, klasy, sposób pisania i rozmieszczenie narzędzi ułatwiają orientację.
Jak myślisz, co może się zmienić w świecie front-endu w nadchodzących latach?
Myślę, że największa rewolucja szykuje się w sposobie budowania aplikacji i stron. HTML i CSS są wymaganiami przeglądarek. Ogromna swoboda projektowania w tych językach może generować różne problemy. Różni ludzie mogą osiągnąć pewne efekty na różne sposoby – jeden użyje tabel, inny flexów, a jeszcze inny gridów. Jest dużo lepiej niż kiedyś, ale ta wolność jest w pewnym sensie przekleństwem. I tu właśnie pojawia się nowość opracowanego przez Google frameworka Flutter i nowego języka programowania Dart. Sposób pisania kodu w tych technologiach gwarantuje poprawność i kompatybilność interfejsów na różnych urządzeniach (w tym nawet ekranach w samochodach). Interfejs, sposób działania, szybkość i odświeżanie są od razu zgodne z systemem, dla którego tworzony jest wynikowy kod. 90% kodu jest identyczne dla każdej platformy docelowej. Z punktu widzenia programisty to niewiarygodne, jak wiele problemów to rozwiązuje. Rosnącą popularność Fluttera i Darta widać już w świecie startupów.
Ścieżka kariery i rynek pracy
Jak wygląda dziś rynek pracy dla front-end developerów?
Zapotrzebowanie na programistów jest dziś ogromne i nie inaczej jest w przypadku programistów front-end. Sam dostaję kilkanaście ofert pracy tygodniowo. Możliwości są naprawdę szerokie ze względu na różnorodność projektów i technologii. Musisz zadać sobie pytanie, w jakim kierunku chcesz się rozwijać? Jeśli pracujesz w Reacie, trudno będzie ci przeskoczyć do projektu z Angularem z dnia na dzień. Wymaga co najmniej roku pracy z nową biblioteką. Programiści front-end wybierają więc swoje specjalizacje – React, Angular, Vue.js, Flutter itp. Dla pracodawców najważniejsze jest doświadczenie w wybranym stacku. Każdy framework ma swoje wady i zalety. Warto przyjrzeć się im bliżej i wybrać to, co najbardziej ci odpowiada pod względem dalszego rozwoju oraz projekty, które są dla ciebie ekscytujące.
Praca w Primotly
A co sprawiło, że zdecydowałeś się pracować w Primotly?
Miałem kilkumiesięczne doświadczenie z NestJS i chciałem dalej rozwijać swoje kompetencje w tym kierunku. Primotly poszukiwał front-end developera, a znajomość NestJS miała być dodatkowym atutem potencjalnego kandydata na to stanowisko. Przekonała mnie możliwość wykorzystania JavaScript na back-endzie. Pracując tutaj czuję, że cały czas doskonalę swoje umiejętności. Główny projekt, w którym tutaj pracuję, pozwolił mi ewoluować od typowego front-end developera do full-stack developera.