Rekrutacja w IT – Frontend

Od jakiegoś czasu biorę aktywny udział w rozmowach rekrutacyjnych i chciałbym się podzielić paroma spostrzeżeniami z jakimi się spotkałem. Obecnie świat frontend bardzo szybko się rozwija i nie jest bezpodstawnym by żartować sobie każdego dnia “Co tam we frontendzie, jaki nowy framework dzisiaj wyszedł.”. Tak ten świat wygląda i należy szukać sposobów by się w nim odnaleźć, ale również nadążać i mieć narzędzia śledzenia trendów. Moim zdaniem najważniejsze jest świadomość paru rzeczy:
 
Dobra znajomość znajomość podstaw JavaScript oraz zaawansowanych zagadnień w JavaScript – ta wiedza będzie nam potrzebna bez względu na to z jakim frameworkiem będziemy pracowaćJavaScript to język który ma bardzo wiele możliwości jednak nie wszystkie są rozsądne, nie wszystko co można w tym języku robić jest dobrą praktyką jak np. eval() Nie jest podstawy mówi się, że “eval is Evil”. Bardzo dobrą książką która daje dobre i szybkie wprowadzenie do JavaScript to książka “JavaScript – The Good Parts”. Dzięki niej na blisko 170 stronach możemy się zapoznać z dobrą stroną JavaScript, bardzo ładnie pokazuje to obrazek przypięty do tego postu:

Umiejętność odróżnienia ważnych aspektów “nowego” frameworku od ceteris paribus już istniejących rozwiązań Moim zdaniem nie ma sensu w chwili obecnej nawet próbować być specjalistą i znać wszystkie możliwe hacki w jednym frameworku. Ja osobiście popełniłem ten błąd ucząc się Ionic 1 https://ionicframework.com/docs/v1/, po około 9 miesiącach intensywnej nauki tego frameworku wyszła na świat nowsza wersja Ionic 2 która rozwiązywała wiele problemów (np. zacinanie się aplikacji kiedy na listę wrzuciliśmy większą ilość elementów) i okazało się, że 90% mojej nauki poszło do kosza. Nauka poszła do kosza ponieważ wersja Ionic 1 był powiązany ściśle z AngularJS 1 natomiast w Ionic 2 twórcy postanowili zaimplementować Angular 2 który jest praktycznie nowym frameworkiem, a AngularJS do Angular2 oraz Angular 4 ma się dokładnie tak samo jak Java do JavaScript…. 
http://crockford.com/javascript/
https://frontendmasters.com/books/front-end-handbook/2017/ – bardzo dobra kompleksowa książka
 
Znajomości dobrych praktyk zarówno programowania w JavaScript jak również dobrych praktyk programowania w wybranych przez nas lub firmę frameworku
Kiedy zaczynamy programować w nowym frameworku warto zadawać następujące zapytania do Google:
“angular controllers best practices”
“angular factory best practices”
“angular writing code best practices”
Jeśli akurat piszemy w Angular polecam https://github.com/johnpapa/angular-styleguide. Moim celem jest przekazanie idei “best practicies”, niestety kiedy robimy tutorial nacisk kładziony jest na szybki efekt, nikt się nie przejmuje dalszym rozwojem kodu a aby otrzymać jak najszybciej efekt zazwyczaj jak najniższym wysiłkiem energii i to jest dobre, jednak zajmując się komercyjnie programowaniem warto znać dobre praktyki.
 
Znajomość zagadnień architektury oraz umiejętność pisania kodu wraz z testami (nie jest prawdą, że każdy kod napisany np. w AngularJS jest “testowalny” – w momencie kiedy w kontrolerze mamy wstrzyknięte dużo zależności ciężko napisać testy do takiego kodu)
Mam tutaj zagadnienia które zahaczają o architekturę, na przykładzie AngularJS to: moduł, dyrektywa, programowanie modułowego kodu.
https://stackoverflow.com/questions/11171778/difference-between-service-directive-and-module
 
Efektywna umiejętność śledzenia trendów
Dla osób rozpoczynających swoją przygodę proponuję Weekly Webdev Challange https://www.facebook.com/groups/1131907053499522/ każdego tygodnia jest nowe zadanie dzięki któremu możemy szlifować nasze umiejętności web developera lub podobne inicjatywy https://medium.freecodecamp.org/the-10-most-popular-coding-challenge-websites-of-2016-fb8a5672d22f poniżej zamieszam linki dzięki którym możecie śledzić trendy, oczywiście to tylko wybrane:
https://www.reddit.com/r/Frontend/
https://medium.com/@sapegin/who-to-follow-on-twitter-if-youre-a-frontend-developer-b7873e787480
http://frontendweekly.co/
https://twitter.com/hashtag/frontend
https://medium.freecodecamp.org/modern-frontend-hacking-cheatsheets-df9c2566c72a
http://thewebplatformpodcast.com/
https://www.wykop.pl/link/3385027/jak-wyglada-nauka-javascript-w-2016-eng/
https://medium.freecodecamp.org/how-to-reverse-a-string-in-javascript-in-3-different-ways-75e4763c68cb
https://benmccormick.org/2017/07/19/ten-things-javascript/
http://ml-games.tomasz-rewak.com JavaScript pozwala również na Machine Learning
https://github.com/benoitvallon/computer-science-in-javascript/tree/master/data-structures-in-javascript
https://developer.mozilla.org/pl/docs/Web/JavaScript/EventLoop
https://leetcode.com/problems/median-of-two-sorted-arrays/description/
Na koniec dodam, że nie poruszałem w tym wpisie takich zagadnień jak: HTML5, CSS wraz z preprocesorami, kontrola wersji, znajomość obsługi Continuous Integration. Musimy pamiętać również, że najlepszą formą nauki to praktyka, obecnie firmy bardzo lubią kiedy kandydat posiada własne konto Github na którym można zleźć przykładowy kod. 
W razie pytań zapraszam do komentowania i zadawania pytań i/lub uwag. 

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *