Dziś pierwszy w historii bloga wpis gościnny! Myślę, że temat - pierwsza praca jako junior front-end developer - będzie dla wielu bardzo interesujący. Autorem posta jest Marcin Zalewski - front-end developer, absolwent ekonomii, entuzjasta JavaScript. Prowadzi on również, fanpage mzalewski.pl na Facebooku - polecam zacząć go obserwować, a teraz zapraszam do lektury wpisu!

Nie jestem pewny czy wzmożone zainteresowanie front-endem związane jest z pojawiającymi się w szybkim tempie kolejnymi kursami, ilością ofert na rynku pracy, zarobkami czy może promocją ogólnopojętego programowania? Jednak w odpowiedzi na wiele pojawiających się pytań postanowiłem na bazie swoich doświadczeń odpowiedzieć przynajmniej na kilka z nich. Tekst to moje luźne przemyślenia i nie twierdzę, że wszystko w 100% pokrywa się z realiami. Obrazuje on tylko moje zdanie na ten temat i pokazuje na co powinien zwrócić uwagę przyszły Junior Front-end Developer.

Język angielski

Pierwsza kwestia niemająca wiele wspólnego z programowaniem to język obcy, którym naturalnie jest angielski. Uważam, że opanowanie tego języka w stopniu przynajmniej średnio zaawansowanym to podstawa, bez której napotkamy liczne problemy. Począwszy od komunikacji, przez pisanie i czytanie dokumentacji na nauce kończąc. Zdecydowana większość materiałów pisana jest w języku angielskim, a tłumaczenia (o ile takowe istnieją) często nie oddają w pełni tego co autor miał na myśli, bądź niepotrzebnie komplikują tłumaczone problemy. Ponadto rozmowy językowe przeprowadzane przez pracowników z HR’u są często pierwszym etapem rekrutacji, więc nawet będąc dobrze rokującym programistą możecie nie dostać szansy na wykazanie się przez ‘braki językowe’.

Wymagania techniczne

Co do wymagań technicznych na junior front-end developera – oczekiwania są duże względem faktycznej wiedzy większości juniorów. Przynajmniej takie jest moje zdanie i mówię to na podstawie obserwacji wymagań w ofertach na stronach takich jak nofluffjobs, pracuj.pl czy grupach pokroju “Front-end pierwsza praca” (Facebook - tutaj link). Na tych portalach świetnie widać przekrój tego stanowiska. 90% ogłaszających posiada portfolio z jedną stroną typu one-page i ewentualnie kilkoma rezultatami zadań z Freecodecampa czy Codeacademy. Oznacza to jednak, że mobilizacja i trochę pracy może was mocno wyróżnić na tle całej grupy!

Przez duży wzrost chętnych do pracy na tym stanowisku rekruterzy mogą przebierać w CV i wybierać osoby, które faktycznie spełniają wymagane minimum, a nawet przewyższają oczekiwania pracodawcy. Myślę, że potencjalnej firmie często nie opłaca się w krótkim okresie zatrudniać kogoś, kto będzie potrzebował ‘opieki’ seniora przez większość czasu. Nie wynika to jednak z kosztów zatrudnienia juniora, tylko konieczności poświęcenia zasobów bardziej wykwalifikowanych pracowników. Bycie samodzielnym będzie zatem bardzo procentowało!

pierwsza praca - twórz własne projekty!

Wspominając mobilizację i dodatkowe projekty miałem na myśli oczywiście powiększenie portfolio, które nie tylko oznacza, że umiecie kodować, ale też rozmawiać z klientem, szukać zleceń czy najzwyczajniej doprowadzić projekt do końca. Porównanie kilku prac tworzonych w różnych odstępach czasowych pozwala również na obserwację waszych postępów w nauce, które przekładają się na jakość kodu i poniekąd stanowią dla pracodawcy informację jak szybko potraficie dostosować się do nowych technologii i wdrażać poznane rozwiązania.

Jak dobrze znasz wymagane języki programowania?

Kolejna kwestia to najczęściej subiektywne opinie odnośnie znajomości danego języka programowania. Informacja o bardzo dobrej znajomości chociażby języka HTML to według mnie jedno z najczęściej powielanych kłamstw, które nie ma żadnego odniesienia do rzeczywistości. Jak bowiem zdefiniować znajomość danego języka? Możemy oczywiście oszacować procentową znajomość składni, porównać się do innych czy stwierdzić, że opanowaliśmy daną technologię, bo poprzedni projekt nie sprawił nam większych problemów. Ale skąd pewność, że nie traficie na takowe przy kolejnym zleceniu? Z własnego doświadczenia wiem, że do pewnego momentu im dłużej uczę się danego języka tym bardziej zdaję sobie sprawę jak duże mam w nim braki.

Stos technologiczny

Kolejna kwestia to ogrom stosu technologicznego we front-endzie. Większość firm korzysta obecnie z task runnerów, wybranych IDE, systemów kontroli wersji, frameworków, bibliotek czy OS. Nie oznacza to jednak, że musicie znać na wylot każde narzędzie, bo i po co? Potencjalna firma/freelancer/wykonawca ma często swój gotowy build, który jedynie ulepsza i z którego korzysta w każdym projekcie. Nie musicie umieć napisać od podstaw środowiska pod wieloosobowy projekt, ale warto mieć doświadczenie przy pracy z kilkoma narzędziami. Znajomość Gulpa/Webpacka, CLI, wiedza o tym jakie możliwości kryje za sobą ulubiony edytor tekstu, bundler czy lintery zdecydowanie działa na Waszą korzyść. Inaczej jednak wygląda kwestia użytkowania preprocesorów CSS. Uważam to za ‘must have’ i nie wyobrażam sobie obecnie pracy bez SCSS i rozsądnego podziału plików. Atutem natomiast będzie na pewno stosowanie określonego nazewnictwa klas zgodnie z metodyką BEM czy OOCSS poparte przykładami.

JavaScript

Ostatnia pomijana, a według mnie najistotniejsza kwestia – JavaScript. Kolejna rzecz, którą każdy przyszły junior dumnie oznaczył w CV, jednak jego doświadczenie sprowadza się do edycji kilku sliderów z jQuery. Już całkowicie nie rozumiem osób, które nie potrafią napisać prostego skryptu w VanillaJS, ale dzielnie brną w kolejne tutoriale Angulara. Robią po raz n-ty tę samą aplikację co wszyscy inni kursanci, przepisując 95% proponowanego przez autora kodu. W pełni rozumiem pokusę płynącą z tworzenia SPA i niską barierę wejścia, jednak proponuję najpierw zająć się “czystym” JavaScriptem. Opanowanie funkcji wyższego rzędu, IIFE, asynchroniczności, promises, closures, dziedziczenia prototypowego, event bubble, hoistingu, jak działa „this” czy „strict mode”, zamiast zabierać się od razu za coś czego nawet do końca nie rozumiemy przez braki w podstawach zdecydowanie da nam więcej efektów.

Pierwsza praca - podsumowanie

Podsumowując, jeżeli od dłuższego czasu nieskutecznie poszukujesz pracy, może warto zastanowić się nad zmianą strategii? Zwiększenie swojej atrakcyjności jako pracownika przez poświęcenie kolejnych kilku tygodni, a nawet miesięcy na naukę brakujących technologii na pewno przyniesie znaczne rezultaty.