Jakie wymagania spotkasz w ogłoszeniach o pracę na stanowisku Junior Frontend Developera? Co jest Twoim MUST HAVE, co warto poznać? Jaki wymagania są wspólne dla wielu ofert pracy, czym mogą się różnić? To i jeszcze więcej w dzisiejszym artykule!
Artykuł zainspirowany pytaniem na grupie Programuj, dziewczyno! (Dorota, dzięki 😉 ), na którym aktualnie trwa (już po raz drugi) wyzwanie o tej samej nazwie.
Update 11.2020: Jeśli interesuje Cię kierunek Front-end, polecam się ze świeżo wydanym ebookiem w tym temacie! Więcej informacji znajdziesz klikając w poniższy obrazek 🙂
Wybrałam trzy ofert pracy, by przeanalizować je pod kątem wymagań. Podpowiedzieć, co jest bardziej lub mniej istotne w tych ogłoszeniach. Jak je czytać? Nie z punktu widzenia rekrutera, a „młodszego” programisty.
Warto wiedzieć, że Front-end to baaaardzo duża dziedzina. A co za tym idzie – oferty pracy i wymagania są bardzo zróżnicowane. Analizuję wyłącznie oferty dla Junior Front-end Developerów. Junior Web Developer to całkiem inna bajka, choć obejmuje sobą Front-end.
Wybór ofert przypadkowy. Jeśli wymagania mocno się pokrywały – szukałam kolejnego ogłoszenia.
Zaczynamy 🙂
Oferta 1.
Wymagania:
- Dobra znajomość HTML5, CSS3, JavaScript
Jeśli ktoś idzie w kierunku Front-end’u ,musi się liczyć z wymaganiem „dobrej znajomości” HTML5, CSS3, JavaScript. To trzon, wspólny dla wielu ofert pracy.
Co oznacza dobra znajomość? Właściwie Front-end łączy się z koniecznością kodowania widoków (strony, aplikacji. A zatem powiedziałabym, że „dobra” znajomość to taka, która umożliwia Ci zakodowanie pewnego wyglądu. Owszem, może się okazać, że będziesz potem korzystać z innych możliwości oferowanych przez HTML5 (a jest ich całkiem sporo: Canvas, Audio, Video, itp.).
I teraz tak: nikt nie oczekuje od Ciebie wkucia całej dokumentacji, wszystkich metod na pamięć. Masz się po prostu po tym sprawnie poruszać. Owszem musisz znać pewne podstawy, dla każdego języka czy technologii inne (postaram się przygotować wpis, przedstawiający taką listę pojęć powiązanych co najmniej z Front-end’em).
Wiem, że wiele osób początkowo myśli, że programista wkuwa na pamięć tą całą wiedzę. Nic bardziej mylnego. Ona sama ląduje w pamięci, jeśli czegoś bardzo często używasz. Więcej. Mamy narzędzia, które podpowiadają nam gdybyśmy zapomnieli jak „brzmi” dana metoda.
IDE vs. edytor tekstowy. Krótki przegląd. Co na początek?
- Dobra znajomość jQuery
Niektórzy tutaj dodaliby jQuery jako MUST HAVE. Ja powiedziałabym, że podstawy jQuery WARTO znać. Jest to bardzo częste wymaganie w ofertach pracy na stanowisko Frontend Developera.
- Dobra znajomość Bootstrap
Tu zaczynają się schody. Przyznam szczerze, że prywatnie uważam, że Frontend Developer POWINIEN znać Bootstrapa. Nawet jeśli go nie używa.
O Bootstrap’a toczy się prawdziwa wojna. Można odnieść mylne wrażenie, że lepiej się go nie uczyć i na pytanie rekrutera odpowiedzieć: „Pfff! Bootstrap to zło. Ja go nie używam”. Problem w tym, że jeśli Bootstrap jest w projekcie, a Ty jesteś Juniorem – raczej nikt go nie wywali z projektu po Twoim komentarzu .
Podstawy Bootstrapa po prostu warto znać.
- Dobra znajomość Angular JS
Coś za co oferty pracy na Juniora są krytykowane. Wiele osób uważa, że Junior powinien znać pewne podstawy, ale frameworki JavaScriptowe (jak Angular, React, Vue, Ember, itd.) to już za dużo.
Na dodatek tutaj moim zdaniem powinien być dopisek odnośnie wersji. Aktualna to v4, niecały rok temu wyszła v2, wcześniej obowiązywała v1.x. Teoretycznie Angular JS = v1.x, wyższe wersje to Angular 2, Angular 4. Ale czy rzeczywiście chodzi o v1.x? A może o najbardziej aktualną – v4?
Jeśli jest takie wymaganie powiedziałabym, że warto znać przynajmniej podstawy Angular JS przed rozmową (pytanie, którego? bo v2 od v1.x dzieli przepaść). Nie wiem czy poszłabym na tą rozmowę bez kompletnej znajomości Angulara. No chyba, że znam inny framework JavaScriptowy jak: React, Vue, itp.
Na pewno dobrze widziana będzie aplikacja pisana w Angularze. Postaram się przygotować „coś” w tym temacie. Tj. jak krok po kroku stworzyć aplikację webową. Tym bardziej, że jak wiecie sama ostatnio pracuje nad swoją (React + Redux + Firebase).
Ile tego wszystkiego jest?
Tak wygląda Front-end. Jeśli interesuje Cię lista, gdzie jest to wszystko „poukładane”, zapraszam do tych dwóch artykułów:
Znajdziesz tam również trochę linków w temacie GDZIE nauczysz się wymienionych technologii.
- Podstawy REST API, JSON
Będzie Ci się to przewijać wszędzie. REST API i JSON to prędzej czy później MUST HAVE.
Zacznij od JSON-a, a następnie zapoznaj się z REST API.
Postaram się udostępnić jakieś materiały na ten temat w kolejnym artykule. Tymczasem rzucę kilka linków:
JSON:
- Meet JSON – krótki kurs na CodeCademy
- JSON APIs and Ajax na FreeCodeCamp
- Oficjalna strona JSON
- JSON Tutorial na TutorialsPoint
Więcej darmowych platform do nauki programowania? Zapraszam Cię do tego artykułu.
REST API:
Celowo zmienię teraz kolejność wymagań. Choć docelowo ostrzegam, że zazwyczaj są uporządkowane pod kątem „wymagalności”. Czyli im niżej, tym mniej istotny (albo oczywisty dla wszystkich) element.
- Znajomość języka angielskiego umożliwiające sprawne posługiwanie się dokumentacją techniczną
Takie określenie spotkacie w wielu ogłoszeniach. Oznacza to tyle, że musisz znać angielski na poziomie, na którym jesteś w stanie czytać i rozumieć dokumentację techniczną. Umiejętność rozumienia ze słuchu również mile widziana, jeśli chcesz szukać odpowiedzi w plikach video.
Angielski jest to prostu MUST HAVE dla programisty. Linki, materiały, które udostępniam są po angielsku nie po to by Was wkurzyć, ale dlatego, że często są najlepsze.
Inna sprawa, że pewnych pojęć po prostu nie powinno się tłumaczyć na polski. Albo przynajmniej zawsze powinien być podany angielski odpowiednik. Za to właśnie są często krytykowane książki programistyczne. Za tłumaczenia, z których kompletnie nie wiadomo, o czym traktuje dany fragment (zwłaszcza, jeśli ktoś dopiero zaczyna).
Na temat angielskiego już się rozpisywałam w artykule: Umiejętności i kwalifikacje przydatne w pracy programisty
Dlaczego przesunęłam tu kolejne wymagania? Otóż są to:
- Podstawowa znajomość Java i SQL
I już przynajmniej wiemy co siedzi w Back-endzie aplikacji, nad którą byśmy pracowali. Java. Przyznam, że to częste połączenie (ale nie znam statystyk).
Co jeszcze może się znaleźć na miejscu Javy? PHP, Node JS, Python, itd.
I teraz tak: podstawowa znajomość niekoniecznie oznacza, że będziesz pisać w Javie czy SQL. W ogłoszeniu tego typu raczej podejrzewałabym, że chodzi o ogólne rozumienie. Bądź co bądź Front-end komunikuje się z Back-end’em. A Java i SQL to już Back-end…
Niestety, skoro taki punkt znajduje się w wymaganiach może być ciężko osobie, która kompletnie nie zna podstaw Javy i SQL.
Ponieważ to stanowisko Juniorskie pominę również analizę wymagań „mile widzianych”, ewentualnie poświęcę temu kolejny artykuł.
Pomijam również umiejętności miękkie: umiejętność szybkiej nauki, komunikatywność, itp.
Pierwsza oferta pracy i tyle pisania 😀 Mam nadzieję, że kolejne będą dużym powtórzeniem tego, co już padło.
Oferta 2
Wymagania:
Dobra znajomość:
- HTML/HTML5
- CSS/CSS3
O pierwszych dwóch już pisałam. HTML5 oraz CSS3 są najnowszymi wersjami języków HTML oraz CSS.
- SASS
Jeden z preprocesorów języka CSS.
Co to jest preprocesor oraz kilka innych propozycji możesz znaleźć w artykule Kierunek Web Developer – Wstęp do serii + Front-end
Powiedziałabym, że wymaganie dość istotne. Prawdopodobnie Sass jest wykorzystywany w projekcie i nawet, jeśli go nie znasz – będziesz musiała (musiał) go poznać.
Próbowałabym bez znajomości Sass’a. Zwłaszcza jeśli znasz inny preprocesor języka CSS, jak np. Less czy Stylus. Jeśli nie – Sass nie jest ciężki do nauki. Warto ogarnąć przynajmniej podstawy przed rozmową.
Szukając informacji na ten temat możesz się natknąć na pojęcie SaaS (Software as a Service). To nie to samo 😛
- RWD
Pojęcie obowiązkowe! Responsive Web Design. Pisałam już o nim w artykule: Kierunek Web Developer – Wstęp do serii + Front-end. Nie idź na rozmowę bez jego znajomości!
- JavaScript/jQuery
Omawiane wcześniej.
- Git
Ta da da dam! Git – narzędzie niezbędne w pracy prawie każdego programisty. Czy to zawodowo czy prywatnie. Poświęciłam mu cały artykuł na blogu: Git – co, gdzie, jak i dlaczego? [Materiały na start]
Pomimo wpisania w wymaganiach – nie określiłabym go jako MUST HAVE. Tj. naprawdę warto się go nauczyć. Jednak jeśli go nie znasz – spokojnie nadrobisz już w pracy. Ale na pewno będzie plusem na rozmowie.
- Photoshop
O tym się nie wypowiadam. Wymagania wobec Frontend Developera w tym zakresie są bardzo różne. Jeśli takie wymaganie się pojawia – może chodzić o cięcie dostarczonych layoutów. Nie wiem czy często zdarzają się oferty, w których Front-end Developer zajmuje się projektowaniem wyglądu aplikacji czy strony.
Jeśli widzicie coś takiego w ofercie pracy –nieznajomość Photoshopa może być różnie odebrana. Photoshop to wbrew pozorom (?) niełatwe narzędzie.
Dodam również, że tutaj Angular i Bootstrap wylądowały w „mile widziane”. Takie rozwiązanie jest „milej widziane” niż umieszczanie dobrej znajomości frameworków JS w „wymagane”.
Oferta 3
Wymagania:
- Bardzo dobra znajomość HTML i CSS
- Podstawowa znajomość JavaScript
Koniec wymagań.
Taka perełka się trafiła. Można się jedynie zastanawiać co oznacza „bardzo dobra znajomość HTML i CSS”.
Dodam, że w żadnym z powyższych ogłoszeń, ani w „wymaganiach” ani w „mile widzianych” nie została umieszczona informacja o konieczności skończenia studiów bądź studiowania na kierunku ścisłym.
Podsumowując:
MUST HAVE: HTML5, CSS3, JavaScript
W tym znajomość pojęć, m.in. RWD, REST API, JSON. Na temat pojęć ukażą się kolejne artykuły.
GOOD TO KNOW: jQuery, dowolny framework CSS (najlepiej Bootstrap – naprawdę często wykorzystywany), dowolny preprocesor CSS (np. Sass, Less)
NICE TO HAVE: dowolny framework JavaScript (np. Angular, React, Vue), Git (!)
PONADTO: Photoshop
Poniekąd jest to powtórzenie treści zawartych w moich artykułach:
Tam jednak jest to ujęte od strony pokazania ścieżki rozwoju Front-end Developera. Nie cała zawarta tam wiedza jest Ci potrzebna, by zacząć zawodowo. Zwłaszcza mam teraz na myśli rozbudowaną część drugą – która w całości dotyczy JavaScriptu.
Oczywiście są oferty, które diametralnie będą się różnić. Ja analizowałam głównie te, które miały w nazwie „Junior Frontend”.
W przypadku ofert pokroju „Junior Web Developer” możecie się spotkać z wieloma innymi wymaganiami. Dlaczego? Front-end to jedno, Web to drugie. Web jest pojęciem dużo szerszym niż Front-end. Obejmuje sobą Front-end, ale i Back-end.
Może za jakiś czas przygotuje kolejne podobne zostawienie – tym razem z Junior Web Developer.
Mam nadzieję, że artykuł okaże się pomocny? Jeśli coś jest niejasne – śmiało dawaj znać w komentarzu!
Na koniec pare linków:
Chcesz poćwiczyć umiejętność kodowania PSD do HTML? Jest w tym celu powołana specjalna grupa – Weekly WebDev Challenge, którą Ci polecam.
Jeśli potrzebujesz w nauce programowania – polecam Ci również moją grupę wsparcia – Programowanie – wsparcie na starcie, do której należy już przeszło 5 tys. osób!
Grupę Programuj, dziewczyno! już dzisiaj polecałam. Działa od niedawna i jak można się domyślać po nazwie skupia kobiety zainteresowane tematyką programowania. Mnie również tam znajdziecie 😉 Grupa liczy już przeszło 2 tys. kobiet.
Pare innych grup facebookowych poświęconych tematom programowania znajdziesz w tym artykule.