Dawno, dawno temu na blogu NetteCode, popełniłam artykuł: Junior Frontend Developer – analiza ofert pracy pod kątem stawianych wymagań
Od dłuższego czasu staram się popełnić go ponownie. To dziś ?
W poprzednim artykule pokazywałam jak różne mogą być wymagania przy tej samej nazwie: Front-end Developer. Czasem pod nazwą krył się Full Stack, czasem Webmaster. Baa! Front-end znajdziesz też czasem pod UI Developer. Nie zapomnij również o Młodszym programiście Front-end 😉
Sposób na to? Sprawdzać wymagania, nie tylko nazwy stanowisk 😉
Zacznijmy od tego, że od “tamtych czasów” (2017) zdecydowanie częściej znajdziesz oferty ukierunkowane nawet na konkretny framework:
- Angular Developer
- React Developer
- Vue JS Developer
Oczywiście nadal Front-end mogą obejmować również stanowiska:
- JavaScript Developer – choć tutaj raczej chodzi o wymieniony również poniżej:
- Full Stack Web Developer
- (aczkolwiek zauważyłam też stanowisko JavaScript Front-end Developera 😉 )
- Web Developer
Umiejętności w zakresie Front-endu mogą wymagać również stanowiska:
- Webmaster
Wyszukałam i przeanalizowałam kilka ofert pracy pod kątem stawianych wymagań, by finalnie zaprezentować własną opinię nt. wiedzy, którą warto posiadać celując w Front-end.
Uważam, że dość istotne jest również jak najwcześniejsze określenie celu naszej nauki, w jakim kierunku chcemy podażać (np. strony? aplikacje? – i nie, to nie to samo – o czym wkrótce będę jeszcze pisać 😉 ).
Przykładowe oferty pracy
#1 – Junior Front-end Dev
Wymagania:
- minimum rok komercyjnego doświadczenia
- HTML5, CSS3
- JavaScript (ES6)
- znajomość podstaw działania protokołu HTTP
- znajomość narzędzi: npm, Node JS, Git
- doświadczenie w pracy z Vue JS (ew. Angular JS czy React)
- podstawowe rozumienie zasad UX/UI.
Mile widziane:
- doświadczenie w tworzeniu SPA (REST API),
- znajomość zagadnień związanych z obsługą video w HTML5.
Zacznijmy od tego komercyjnego doświadczenia. Przewija się w wielu ofertach. Zakładam, że to pewnego rodzaju “filtr” na osoby, które świeżo wpływają na rynek pracy vs. osoby, które mają już za sobą choćby jedno stanowisko pracy, jeden projekt. Ciężko powiedzieć na ile to wymaganie MUST HAVE i na ile rzeczywiście CV bez wcześniejszego komercyjnego doświadczenia zostanie odrzucone.
Od razu również naprowadzę, że jeśli w ofercie widnieje HTML i CSS zamiast HTML5 i CSS3 oraz JavaScript bez dopisku ES6 – i tak chodzi o HTML5, CSS3, JavaScript w wersji ES6+.
Uwaga na ten Node JS ! Zakładam, że jeśli pojawia się w zestawieniu jak powyżej, oferta nadal dotyczy Front-endu, a nie Back-endu (Node JS to Back-end). Podejrzewam, że wymagana wiedza nt. Node JS ogranicza się do jego instalacji oraz korzystania z paczek (npm).
Tutaj oferta sugeruje stos technologiczny zapewne aplikacji przy której będzie pracować zatrudniona osoba (Vue JS). W temacie Vue JS, Angular, React – często wymieniane są zamiennie. Dlaczego? Ponieważ znając jeden bez problemu nauczysz się innego. Najtrudniejszy jest ten pierwszy język, pierwszy framework, pierwszy projekt, pierwsza linijka kodu i pierwsza praca 😉
Czasem zaznaczam, że zarówno w HTML/CSS, jak i JavaScript’cie są częściej i rzadziej wykorzystywane “możliwości”. Dajmy na to takie video 🙂 Jak widać tutaj zostało wymienione w kategorii mile widzianych.
Są rzeczy mniej i bardziej ważne w nauce Front-endu. Z jednej strony ich znajomość może zaplusować. Z drugiej, jeśli projekt ich nie wykorzystuje – może być totalnie zbędna.
#2 – Junior Front-end Dev
Wymagania:
- minimum rok komercyjnego doświadczenia
- doświadczenie z agile (Scrum, Kanban)
- JavaScript, ES6
- jQuery
- bardzo dobra znajomość HTML/HTML5, CSS/Scss
- doświadczenie w pracy z Angularem bądź Reactem
- praktyczne doświadczenie z testami jednostkowymi
- doświadczenie w obszarze Dostępności (WCAG, ARIA)
- Git, Gitflow
Przyznam, że tutaj dość wymagająca oferta na Juniora. Ale od razu dodam, że stawka była adekwatna do wymagań. Zaryzykuje stwierdzenie, że oferta jak i oferowana stawka bardziej podpadają pod stanowisko Mida.
Dlaczego uważam, że to wymagająca oferta? “Bardzo dobra znajomość HTML/HTML5, CSS/Scss”, “praktyczne doświadczenie z testami jednostkowymi” (nie każdy Junior ma je na start), nacisk na obszar dostępności.
Nie mówię, że nie ma Juniorów spełniających te wymagania.
#3 – Junior Front-end Dev
- HTML/CSS
- JavaScript
- TypeScript
- React
Można powiedzieć, że zestaw standardowy + TypeScript. Bo wiesz, że aplikacje reactowe też możesz pisać w TypeScript, co nie?
#4 – Junior Front-end Developer (Vue JS)
- HTML/CSS
- JS (ES6)
- Vue JS
- Vuetify
- Git
Standard, ale w wersji z Vue JS jako framework. Vuetify to framework implementujący Material Design dla Vue JS. Jeden z popularniejszych 🙂
#5 – Junior Front-end Developer (Angular)
- półtoraroczne doświadczenie w pracy z Angularem
- SVN/GIT
- testy jednostkowe dla Angulara 2+
- dobra znajomość języka angielskiego
SVN 😀 Ne pamietam kiedy ostatnio sama go widziałam.
#6 – Junior Front-end Developer
Wymagane:
- HTML5, CSS3
- JavaScript (ES5 & ES6)
- React
- Redux
- Git
- dobra znajomość angielskiego w mowie i piśmie
ale również:
- bazy danych: SQL/NoSQL
- WordPress (PHP) – nie sądzę, żeby chodziło o obsługę WordPressa od strony użytkownika 😉
Wspominałam, że nie wszystkie oferty mające w nazwie Front-end rzeczywiście mają w wymaganiach tylko Front-end? 😉 Tu już oferta raczej z kategorii: Full Stack Web Developer.
Dodatkowo jeszcze mile widziane:
- React Native
Czyli dodajmy jeszcze Mobile 😉
Oferta ofercie nierówna, itd.
#7 – Front-end Developer / Grafik
- HTML, CSS
- Photoshop, Illustrator
- minimum rok doświadczenia, ale w projektowaniu stron lub aplikacji
I nie zabrakło najczęstszego skojarzenia osób, gdy pada pojęcie Front-end. Warstwa wizualna, od etapu projektowania po zakodowanie.
Podsumowując:
MUST HAVE nadal pozostaje: HTML5, CSS3, JavaScript (pozdrawiam wszystkich, którzy twierdzą, by go pomijać i wchodzić od razu w frameworki albo co gorsza jQuery…).
Powiedziałabym również, że MUST HAVE to: RWD, media queries, Flexbox(, CSS Grid?) (choć to wszystko kryje się również pod CSS)
GOOD TO KNOW: Git oraz w zależności od kierunku:
- strony internetowe: (jQuery???, ) Bootstrap,
- aplikacje internetowe: dowolny framework JS (React JS, Angular, Vue JS, ale może już nie Angular JS 😉 )
Na liście awansował Git. Mam wrażenie, że w dzisiejszych czasach bardzo często ląduje na liście wymagań. Dodatkowo dość przydatnym tematem jest posiadanie Portfolio, które można zbudować właśnie udostępniając swój kod do wglądu via Github 🙂 (który nawiasem, w ostatnich latach zyskał również możliwość tworzenia prywatnych repozytorium za darmo! (wcześniej była to opcja płatna)).
Przypominam, że Git != Github !
Moim zdaniem naprawdę warto na starcie zastanowić się nad tym, co jest naszym celem: strony czy aplikacje internetowe. Bardziej ten temat rozwijam w ebooku, o którym informacje znajdziesz dalej.
Co do jQuery mam poważne wątpliwości. Nadal je utrafisz w niektórych ofertach pracy. Mimo to moje aktualne stanowisko to raczej: nie ucz się, jeśli nie musisz, jeśli nie widzisz go w wymaganiach danej oferty pracy.
Mam wrażenie, że jQuery częściej będzie wykorzystywany w przypadku tworzenia stron niż aplikacji internetowych. Częściej w projektach nie korzystających z frameworków JS (które raczej sugerują unikania łączenia jQuery z nimi) (tutaj pozdrawiam osoby, którym przeszkadza document.getElementById() i każą od razu wchodzić w jQuery, bo ładniej wygląda…).
Także Bootstrapa umieściłam tylko na liście “kierunek: strony internetowe”. Choć przyznam, że jestem rozdarta. Z jednej strony namnożyło się alternatyw, które są naprawdę często wykorzystywane… Dajmy na to takie implementacje Material Design dla każdego spośród frameworków. I tak np. możesz korzystać z Angular Material dla Angulara, Vuetify dla Vue JS czy też Material UI dla React’a. I nigdy nie uświadczyć Bootstrapa…
Jeśli celujesz w aplikacje internetowe i chcesz jak najszybciej przejść do nauki JavaScriptu i frameworków JS – raczej pominęłabym Bootstrapa. Jeśli celujesz w strony – warto rozważyć jego naukę.
Zwróć uwagę, że Bootstrapa nie znalazłam w żadnej z powyższych ofert pracy! jQuery tylko w jednej. Oczywiście to jest tylko pewna “próba”, wycinek rynku pracy.
NICE TO HAVE: TypeScript, znajomość komunikacji via REST API, HTTP, JSON, umiejętność pisania testów jednostkowych,
Mam wrażenie, że coraz częściej widzę nacisk na pisanie testów jednostkowych. Dobry kierunek 😉
Oczywiście, jeśli celujesz w aplikacje, na liście GOOD TO KNOW, która jest wyżej znajdziesz Angulara, w którym domyślnie piszesz… uwaga! W TypeScript’cie. Także TypeScript może awansować na tej liście. Tak samo temat JSON, HTTP, REST API – w przypadku celowania w tworzenie aplikacji internetowych, zwłaszcza SPA (Single Page Applications) – wydaje mi się, że może być to wymaganie nawet MUST HAVE.
Ciężko tworzyć taką listę, ponieważ dużo tak naprawdę „zależy”.
PONADTO: język angielski (przynajmniej na poziomie umożliwiającym czytanie dokumentacji; lepiej: komunikatywny; idealnie: biegła znajomość w mowie i piśmie).
Tak, wiem, w Internecie jest tyyyyle materiałów po polsku, że spokojnie da się nauczyć Front-endu bez znajomości języka angielskiego. Da się. Ale nadal podtrzymuje, że angielski jest językiem ojczystym programistów i jego nieznajomość prędzej czy później albo Cię zablokuje albo wręcz przekreśli Twoje szanse. Mam wrażenie, że pod tym kątem z roku na rok, przy wyższym nasyceniu rynku Juniorami, będzie coraz większy nacisk także na znajomość angielskiego. Ale o tym jeszcze planuję pisać wkrótce.
Mam nadzieję, że artykuł okaże się pomocny. Jeśli coś jest niejasne – śmiało dawaj znać w komentarzu! Jeśli masz pytania – również 😉
Startujesz z nauką Front-endu? Potrzebujesz sprawdzonych materiałów, informacji na start? Może przypadnie Ci do gustu mój świeżo wydany ebook na ten temat? Więcej informacji po kliknięciu w obrazek poniżej:
Szykujesz się pod rekrutację? Wpadnij na konsultację 🙂 Może jakiś brainstorming w temacie pracy? Próbny live-coding? Dobre rady, wskazówki od osoby z praktycznymi doświadczeniami w zakresie rekrutacji sięgającymi 2011 roku?
Jeśli też powoli myślisz o szukaniu pracy i po prostu chcesz przegadać jak się przygotować na czym się skupić – również zapraszam ? Możemy pogadać o wybranych przez Ciebie ofertach pracy. Mogę Ci powiedzieć, na czym warto się skupić w przypadku danej oferty, co oznaczają niektóre nieznajomo brzmiące pojęcia.
Zapraszam!