Ta strona wykorzystuje pliki cookie w celu prezentacji dopasowanych dla Ciebie treści. Możesz włączyć/wyłączyć obsługę plików cookies w swojej przeglądarce.

Dowiedz się więcej
Front-end developer: Jak zacząć? (Wywiad z Mentorem Kodilli)

Front-end developer: Jak zacząć? (Wywiad z Mentorem Kodilli)

Opublikowano  przez Krzysztof Wróblewski, Marek Zoellner

Czym się zajmuje Front-end developer? Jakie technologie powinien znać? Jaka forma nauki będzie najlepsza dla osób początkujących i jak później znaleźć pracę? Na pytania odpowiada Marcin Zalewski.

Na co dzień Front-end Developer w branży e-commerce (firma Unic), który po kilku latach pracy jako freelancer zdecydował się na etat i poświęcenie wieczorów na własne projekty. Jest samoukiem, lubi nowości i bardzo chętnie dzieli się wiedzą i własnymi doświadczeniami. Marcin Zalewski od ponad dwóch lat jest też Mentorem w Kodilli.

Jaki był najciekawszy projekt, nad którym pracowałeś?

Najciekawszym w mojej karierze był paradoksalnie jeden z najdłuższych projektów, ponieważ miałem możliwość przyglądać się, jak ewoluował przez kilka lat i jak od starych frontendowych rozwiązań pokroju Grunta czy Gulpa ewoluował w ‘pełnoprawną’ react’ową aplikację, która obecnie jest na naprawdę fajnym poziomie. Zdecydowanie było to najciekawsze z uwagi na długość trwania projektu i technologii, z którymi mieliśmy okazję pracować przez te ponad pięć (a w moim przypadku trzy) lata. Ostatecznie wyszedł z tego jakościowo naprawdę dobry produkt z nowoczesnym stackiem technologicznym i mimo, że obecnie wspieramy jeszcze obie wersje strony, czyli starszą „brzydszą” i kontrastowo nowszą-ładniejszą wersję po redesignie to współpracują one ze sobą w obrębie jednego środowiska.

Jaki był najcięższy projekt, nad którym pracowałeś?

Był to o dziwo projekt oparty głównie o HTML i CMS, więc potencjalnie proste technologie. Musieliśmy jednak dostosować je dla osób, z różnego rodzaju niepełnosprawnościami (jak np. słaby wzrok)., bądź mających inne dysfunkcje przy przeglądaniu internetu, więc staraliśmy się utrzymać semantykę HTMLa na wysokim poziomie, żeby umożliwić użytkownikom końcowym dostęp poprzez czytniki ekranowe. Te osoby nie oglądały więc pełnej, wizualnej części strony, a jedynie opierały się na przeczytanych przez program (np. NVDA, Jaws) treściach poszczególnych elementów oraz ich atrybutów, obsługując go za pomocą klawiatury.

Czym się zajmuje Front-end developer?

Front-end developer zajmuje się najprościej mówiąc implementacją designów, czyli przeniesieniem wizji grafika na funkcjonalną, interaktywną stronę, a także z integracją z back-endem. Jest to zatem coś, co możemy kliknąć, przenieść, przesunąć bezpośrednio w przeglądarce. Frontend developer jest więc łącznikiem pomiędzy grafikami przygotowanymi przez designera, a osobą, która z serwera przekazuje nam informacje do wyświetlania tej strony i zapewnia płynność interakcji z użytkownikiem w przeglądarce.

Jakie kompetencje miękkie liczą się na Twoim stanowisku?

Wydaje mi się, że główną kompetencją miękką, jakiej mogą oczekiwać pracodawcy, będzie samodzielność. Uważam tak dlatego, że praca developera wymaga dużej liczby informacji, które często musimy wyszukiwać sami, niezależnie od poziomu doświadczenia. Z tego samego względu w potencjalnej firmie nie zatrudnimy 20 juniorów, którzy będą nagminnie pytać o wszystkie szczegóły, ponieważ będzie to wykorzystanie czasu nie tylko ich, ale również kolegów na ‘wyższych’ stanowiskach. Reasumując, pytać jak najbardziej możemy i powinniśmy, ale jeśli pytamy o każdą rzecz, którą mamy tak naprawdę na wyciągnięcie ręki i możemy sprawdzić sami, to będzie to zdecydowanie działało na naszą niekorzyść.

Kolejna umiejętność - cytując słowa mojego team leadera, to pasja, ponieważ rekruterzy zwracają także dużą uwagę na to, dlaczego w ogóle chcemy zostać front-end developerami. Dużym plusem będzie więc zainteresowanie się poza kursem internetowym nowinkami technologicznymi, artykułami i tutorialami wiodących portali frontendowych, czyli zarówno stricte nauką jak i zwykłym ‘ciekawskim’ zgłębianiem wiedzy. Wspomnijmy też koniecznie jeżeli jeździmy na konferencje i meetupy dla programistów i jest to faktycznie w obrębie naszych zainteresowań. Czysto hobbystyczne zainteresowanie tematem będzie więc dużym motywatorem zarówno dla pracodawcy jak i dla nas co bezpośrednio przełoży się na tempo i chęci do nauki.

Jakich technologii używasz na co dzień?

W moim przypadku pracuję głównie z React’em, którego używamy w obrębie firmy do większości nowych i niedawno rozpoczętych projektów. Powodem sympatii całego teamu developerów do Reacta jest zarówno duże i ciągle powiększające się know-how oraz uniwersalność narzędzia z tworzonymi produktami. Jeżeli coś zrobiliśmy w jednym projekcie, to faktycznie jest nam łatwiej potencjalny problem rozwiązać w innym, a dodatkowo jest to jedna z najpopularniejszych obecnie bibliotek z bogatą dokumentacją i długą listą narzędzi. Poza tym są to oczywiście nowoczesne technologie pokroju Webpacka, do budowanie projektów i jego konfiguracji, NextJS, Storybook czy Jest odpowiedzialny za testowanie. Używamy również najnowszych wydań JavaScriptu (ES6, ES7), które możemy z łatwością kompilować przy pomocy Babela do starszych wydań Ecma Scriptu i zapewnić wsparcie nawet na starszych przeglądarkach.

Korzystamy więc z tych narzędzi, które ułatwiają nam i przyśpieszają pracę i faktycznie pozwalają iść z duchem czasu, a klienci i użytkownicy otrzymują dzięki temu nowoczesne i w pełni sprawne środowisko.

Jak często zmienia się stack technologiczny frontendowca?

W tej branży większość osób powie, że jest to dość szybka zmiana i faktycznie pojawiają się ciągle nowe wersje bibliotek, kolejne frameworki czy po prostu pluginy, które wykorzystujemy, ale wydaje mi się, że nie do końca jest to tak bardzo dynamiczne. Korzystamy z HTML-a czy CSS-a, które gdzieś po drodze uaktualniły swoją wersję o jedną czy dwie ‘jednostki’, ale jest to nadal język czy biblioteka ze wsparciem dla zarówno starszych urządzeń jak i już istniejącego kodu czyli z wsteczną kompatybilnością. Często kolejne aktualizacje i nowe wersje to jedynie syntaxowy, składniowy lukier, który upraszcza sposób w jaki piszemy kod i wyciąga w naszą stronę masę przydatnych narzędzi. Ostatecznie nie jest to aż tak odmienne od tego, co robiliśmy jeszcze kilka lat temu.

Marcin Zalewski Kodilla

Jak się uczyć, żeby zostać Front-end developerem?

Forma nauki to mocno indywidualna sprawa. Część osób woli czytać książki, część preferuje video-tutoriale, a jeszcze inni wezmą udział w kursie stacjonarnym czy kursie online. Obecnie naprawdę dużo form i materiałów mamy na wyciągnięcie ręki, więc nie zalecałbym jednego konkretnego sposobu, bo takiego zapewne nie ma. Próbowałbym eksperymentować, z tym, co mamy dostępne w internecie, z tym, co możemy sprawdzić w ramach ‘demo’ i zobaczyć, czy w dany sposób jesteśmy w stanie spędzić kilka godzin nad nauką jednego rozwiązania i czy nie będzie to dla nas nużące. Po takich próbach i ‘testach’ możemy podjąć ostateczną decyzją co do ścieżki nauki i obrać konkretną drogę naszego dalszego szkolenia.

Jak szukać pracy jako Front-end developer?

Jeżeli szukamy pracy jako Junior Front-end developer, myślę że przede wszystkim starałbym się jakoś wyróżnić. Jest sporo szkół programowania, poradników czy tutoriali, z których możemy się uczyć i zgaduję, że większość rekruterów wielokrotnie widzi bardzo podobne do siebie CV, które tak naprawdę powielają te same treści, a kandydaci mają na Githubie te same projekty widoczne w programie każdego kursu. Czymś, co nas na pewno może wyróżnić, jest jakiś projekt związany z naszym hobby, albo z kompletnie nie związanym z IT zainteresowaniem. To jest też coś, o czym najczęściej możemy mówić na rozmowie. Jeżeli przychodzimy na rozmowę z czymś, co robiliśmy sami, nie jest to częścią kursu czy czegokolwiek, co zrobiliśmy posługując się jakimiś radami czy instrukcją tutoriala, to jest nam dużo łatwiej o tym opowiedzieć. Możemy znacznie sprawniej odpowiedzieć na pytania rekrutera odnośnie tego, co sprawiło nam trudność, dlaczego wybraliśmy taki a nie inny stack technologiczny, dlaczego w ogóle ten projekt powstał w ten, a nie w inny sposób? Automatycznie połowa naszej rozmowy rekrutacyjnej oprze się o coś, co dobrze znamy i gdzie czujemy się pewnie, a nasze szanse na pewno wzrosną i pokażemy się z dobrej strony. Starajmy się też zwracać uwagę na blogi front-endowe, lokalne konferencje, które często są darmowe czy spotkania, które zrzeszają poszczególne grupy programistów i dają nam zastrzyk motywacji do dalszej nauki i wzięcia udziału w kolejnych wydarzeniach.

Duże znaczenie ma również nie tyle język programowania, a język obcy, który obecnie jest takim „must have” i jedną z bazowych umiejętności, którą musimy mieć. Podstawą jest oczywiście angielski, ale dodatkowa znajomość języka, którym np. posługuje się klient firmy do której aplikujemy będzie stanowiła ogromny atut. Starajmy się więc eksponować nasze mocne strony i minimalnie przeważyć ‘szalę zatrudnienia’ na naszą korzyść dzięki umiejętnościom miękkim, językowi czy zainteresowaniom. Zaprezentujmy się jako osoba komunikatywna i otwarta, która faktycznie ma wiedzę nie tylko techniczną, ale też jest przygotowana i chętna do dalszej nauki i współpracy z resztą teamów.

Rozwiąż darmowy test predyspozycji

Jakie masz rady dla początkujących programistów?

Jeżeli miałbym mieć jakieś rady dla osób, które chcą się nauczyć Frontendu czy jakiegokolwiek innego języka programowania, ale jeszcze nie wiedzą o tym kompletnie nic, to myślę, że powinni po prostu spróbować. Próg wejścia do programowania jest tak niski, że możemy po kilku godzinach stwierdzić, czy coś nam się podoba i stanowi realną alternatywę. Spróbowałbym, więc poświęci dzień i jeżeli uznamy, że pierwsze wyświetlenie “Hello World” w przeglądarce nam się spodobało, i nie możemy się doczekać swojego pierwszego komponentu to jak najbardziej jest to coś dla nas i zdecydowanie powinniśmy kontynuować!

Umów się na rozmowę z doradcą Kodilli