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.

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:

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.

  • Z tym Query dla początkujących bym uważał. Jeśli ktoś poważnie myśli o webie to powinien poznać JS, a jeśli dobrze pozna język to biblioteki jQuery czy innej bardzo szybko się nauczy w razie potrzeby. Natomiast jeśli ktoś zna tylko jQuery to niestety w czystym JS nie zawsze sobie poradzi…
    Często mam wrażenie, że wiele osób usilnie potrzebuje jQuery, Angulara,Reacts itp. to bardzo prostych stronek typu wizytówki firmowe… no nie przesadzajmy, dla tych kilku animacji i jednego formularza w zupełności wystarczy JS, HTML i CSS (o back-endzie oczywiście tu nie mówimy w tym artykule).
    Moje zdanie jest więc takie, że warto uczyć się czystych języków, a biblioteki same przyjdą z czasem…

    • Zgadzam się – nauka czegokolwiek powinna zacząć się od poznania czystego języka ale problem w tym, że niestety takie są wymagania dla nowych pracowników. Firmy wolą nie tracić czasu na doszkalanie pracownika od podstaw.

      • ok, ale ja uważam, że w ten sposób właśnie firmy tracą czas na doszkalanie ludzi z podstaw JS… jeśli znasz dobrze JS (ES, DOM, BOM) to użycie jQuery czy innej biblioteki nie jest żadnym problemem, nawet gdy nie ma dobrej dokumentacji wejdziesz w kod przed minifikacją i dasz radę dojść co i jak…a jeśli nie znasz JS to możesz czasami patrzeć jak na magiczne zaklęcia i nic nie rozumieć…
        Wydaje mi się, że lepszy jest pracownik, który zna JS ale nie zna jQuery niż odwrotnie… ale może mam jakieś inne, dziwne spojrzenie na programowanie 🙂

        • Nigdzie nie napisałem, że pracownik ma nie znać czystego JS 😉 „Powinno” być JS i jQuery

    • Tylko jQuery – jak najbardziej nie. Dlatego dałam to jednak w pakiecie poza MUST HAVE. Sama zawsze jestem zdziwiona, kiedy ktoś pisze, że „liznął” JavaScript i wskoczył w jQuery… I że „po co znać czysty JavaScript, skoro jest jQuery”. A naprawdę widziałam na żywo takie opinie… Widocznie niektórym się wydaje, że jQuery to wyższy poziom. Podczas gdy to jak nauka całkowania bez znajomości arytmetyki (ew. z samą znajomością dodawania).

      Z drugiej strony nie mogłam wyrzucić tego poza wymagania. Jeśli firma wymaga Angulara może być ciężko ją przekonać, że „znam bardzo dobrze JavaScript, to wystarczy”. Tj. pewnie jeśli ktoś ma jakieś doświadczenie komercyjne – przyszłoby mu to łatwiej niż osobie początkującej (tj. przekonanie, że się nadaje).

      • Akurat Angulara do jQuery nie za bardzo powinno się tak bezpośrednio przyrównywać. Ale tak patrząc z boku to myślę, że trzeba by sobie odpowiedzieć na pytanie ile czasu zajmie komuś nauka jQuery, Angulara, React itp. itd. jeśli zna dobrze (na prawdę dobrze) JS, a ile czasu zajmie nauka React komuś, kto nie zna JS, a jedynie parę metod jQuery…

        Albo inny przykład, znasz dobrze JS, to szybko wdrożysz się w node jeśli firma będzie tego wymagała lub jakieś pojedyncze projekty. Znasz tylko framework to domyślam się, że możesz mieć problemy z szybkim wejściem w noda.

        A i tak na marginesie to piszą „Ty” nie mam namyśli Autorki posta ale ogólnie osoby rozpoczynające naukę programowania „webowego” 🙂 (nie bierz więc tego do siebie 🙂

        A i kończąc taka ciekawostka dlaczego warto uczyć się czystego JS:
        1. aplikacje webowe – stronki, crm itp.
        2. smartTV (aplikacje)
        3. programowanie robotyki, np. raspberry
        4. kiedyś nawet widziałem firmę szukającą programisty JS do programowania sterowników do pieców C.O.

        Znasz JS – możesz myśleć co chciałbyś programować. Znasz tylko jedną bibliotekę – zostajesz w webie i często prostych stronkach…

  • zpantalyku

    Bardzo przydatny artykuł, dzięki!
    Jeśli mogę z zupełnie innej beczki, proszę zerknij na zasady pisania nazw obcojęzycznych (np na sjp). Czytałoby się artykuł o niebo lepiej bez nich. Konkretnie chodzi mi o:
    framework’i JavaScript’owe -> framweworki JavaScriptowe;
    Bootstrap’a -> Bootstrapa;
    Angular’a -> Angulara;
    layaut’ów -> layautów.
    (ale
    CSS-a (bo to skrótowiec)).

    Pozdrawiam i mam nadzieję, że na zołzę nie wyszłam 🙂

    • Jak najbardziej nie 😉 Dzięki za poradę! Poprawię ten wpis i postaram się zastosować do tego w kolejnych. W sumie nigdy się nad tym nie zastanawiałam. Dopóki tego nie napisałaś nawet mnie nie raziło 😀 Teraz już tak xD

  • deha21

    Artykuł teoretycznie opisuje rzeczywistość. W zdecydowanej większosci nawet na juniora wymaga się dosyć dobrej znajomości frameworków JS. Ja szukam pracy jako Junior Front-End Dev od pół roku i nie umiem nic znaleźć we Wrocławiu (wszędzie wymagają JS w dobrym stopniu). Umiem dobrze HTML/CSS/SCSS, ogarniam jQuery, podstawy JS-a, Angulara, VueJS. Do tego znam jeszcze PHP, MySQL. Zrobiłem dziesiątki stron (front+back), kilka „apek” jeśli tak to można nazwać.

    • Tak. Chyba rzeczywiście powinnam go zakończyć uwagą, że ktoś może mieć mniejsze umiejętności i dostanie pracę, a ktoś może mieć duuuuużo większe i z jakiegoś powodu mieć problem.

      W sumie sama się zastanawiam od czego to zależy… Niektórzy by pewnie zwalali na umiejętności miękkie czy inne. Jednak moim zdaniem – od farta. Ktoś może mieć coś, co akurat w danym zespole jest pożądane, a co nie jest określone w wymaganiach technicznych. Albo tysiąc innych powodów…

      • coderek

        Nie powiedziałbym, że to fart. Te umiejętności miękkie też wbrew pozorom w branży IT się liczą. Szczególnie jeśli pracujesz przy jakimś projekcie w teamie. Nie wyobrażam sobie, że u nas w Codete byliby ludzie zamknięci na innych, tacy typowi informatycy siedzący tylko w kodzie. Dlatego fajnie jak na rekrutacji od razu rozdziela się tą stricte techniczną od typowo HR-owskiej 🙂

  • Pingback: Wpis o niczym szczególnym()