No skill – no deal! Umiejętności front-end developera lub full-stack developera

money-5

Poziom średnio-zaawansowany

Jak to mówią no skill – no deal! Bez odpowiednich umiejętności nie zdziałamy za wiele. Ważny jest też ciągły rozwój naszych skillz.

To już nie te czasy, gdy wystarczała znajomość DHTML i PHP, obecnie developer obok języków programowania musi znać także masę narzędzi i frameworków.

Umiejętności front-end developera / full-stack developera kontra rynek

Dziś postaramy się rzucić okiem na to, co warto umieć chcąc być dobrym front-end lub full-stack developerem. Jakie są trendy, a przede wszystkim czego wymaga rynek – zleceniodawcy i pracodawcy.

Jakie są dziś pożądane umiejętności front-end developera lub full-stack developera? Branża rozwija się niezwykle dynamicznie w tym kierunku, a wiele osób rozważa zostanie front-end developerem, którzy są dziś rozchwytywani.

Inni, będący już Web Developerami (back-end, front-end) zastanawiają się, jakie jeszcze umiejętności warto nabyć. Dziś właśnie chciałbym napisać kilka słów o tym, co widzę na bazie obserwacji własnych, jak moich kolegów.

Jest łatwiej niż kiedyś…

… ALE w kwestii nauki. Pamiętam gdy sam próbowałem się czegoś uczyć kilkanaście lat temu. Oczywiście nie w szkole, tylko ze względnie drogich książek oraz internetu. Tyle tylko że modem podłączało się na chwilę, aby nie nabić zbyt dużego rachunku – wyścig z czasem.

I generalnie, samo znalezienie sensownych materiałów z dziedziny programowania było wyczynem.

W obecnych czasach jest znacznie prościej – pełny dostęp nie tylko to internetu, ale i do wiedzy, która zostaje podana na tacy. Pełno kursów i tutoriali, pomoc prawdziwych geeków na stronach typu Stackoverflow. Wystarczy odrobina chęci i determinacji, aby zdobyć potrzebne umiejętności we względnie krótkim czasie.

Wydawnictwo Strefa Kursów

Jest też trudniej niż kiedyś… jeśli chodzi o konkurencję. Tematyka niezwykle zyskała na popularności, praca zdalna również zyskała na znaczeniu. Świetnie, jednak z drugiej strony wpływa to na ogromną konkurencję. Potrzeba ekspertów – są tysiące ofert dookoła, z tym że chętnych – potencjalnych developerów zdaje się być znacznie więcej.

Przejdźmy jednak do samych umiejętności – języków, narzędzi i rozwiązań.

1. HTML, CSS i JavaScript są bardzo ważne, jednak to tylko fundamenty. Przy okazji trzeba by się orientować w różnicach między html5 a xhtml.

Dziś w większości wszystko skupia się na html5, ale warto znać różnice. Tym bardziej że z pewnością trafi nam się w końcu praca nad starszym projektem.

2. Do tego wybrana technologia server-side, jako że zwykle front-end developer integruje swoją pracę ze stroną lub aplikacją web, która działa w oparciu o jedną z nich – PHP, Ruby (Rails), Python (np. Django) lub inne. Najpopularniejszy wciąż pozostaje LAMP stack.

Zdecydowanie warto zagłębić się także w node.js – wydajną technologię, doskonale pracującą po stronie serwera i komunikującą się z front-endem. Czy to poprzez AJAX, czy socket.io (z połączeniem node + socket możemy tworzyć magię).

node-js

Jeśli chcemy programować głównie w JavaScript, node to coś dla nas. A jeśli node, warto poznać też jakiś framework, np. ExpressJS.

3. EN! Jeśli chcemy coś zdziałać, język angielski jest konieczny. Nauka będzie znacznie prostsza i lepsza, gdy nie będziemy polegać tylko na materiałach i książkach w naszym języku. Zasoby z całego świata staną otworem.

Pisanie, czytanie oraz mówienie i skomunikujemy się z klientami czy współpracownikami z wielu różnych miejsc na świecie. Znam to w praktyce – nie raz pracowałem zdalnie w międzynarodowym zespole.

Grunt to komunikacja – ja sam nie jest native speakerem, i pewnie każdy native speaker od razu to widzi i słyszy, ale najważniejsze to móc się skutecznie komunikować w tym języku. Skype, e-mail, czy też w formie komentarzy w kodzie dla innych programistów.


4. Fundamenty IT, takie jak algorytmy i struktury danych – ich znajomość przyda się wielokrotnie przy opracowywaniu rozwiązań.

5. Kontrola wersji – najpopularniejsze systemy tego typu to SVN i Git. Z SVN pracuję od lat, jednak już spory czas temu doceniłem zalety Git’a, którego wybieram gdy mogę (np. klient korzysta tylko z SVN).

6. Znajomość „czystego” JavaScript vs Frameworki

Generalnie trzeba mieć opanowane jedno i drugie. Naprawdę dobrze jest znać czysty JS, aby nie polegać tylko na frameworkach. JavaScript trzeba rozumieć, wtedy programuje nam się lepiej. Poza tym czasami trzeba zejść na niższy poziom abstrakcji (rozwiązania, których brakuje we frameworku / bibliotece, opracowywanie własnych bibliotek, czy też praca ze starym kodem). Nie powinno być to problemem, w końcu mówimy tylko o JS, nie o asemblerze.

Wydawnictwo Strefa Kursów

Sam cenię sobie znajomość czystego JS w przeszłości, zanim frameworki zdobyły tak dużą popularność.

Jeśli chodzi o same biblioteki, najpopularniejszą (i również moją ulubioną) jest jQuery.

Wśród innych można wymienić podobną do jQ bibliotekę Zepto.js, Prototype JS czy Mootools.

jQuery ma świetną społeczność, i miliony ciekawych pluginów. Niektóre z nich (i wiele więcej) opisujemy tutaj. Własne rozwiązania też możemy opracowywać jako pluginy.

Najlepiej gdy sami możemy wybrać rozwiązania, z którymi pracuje nam się najlepiej, jednak nie zawsze jest to możliwe (projekt korzysta z innych bibliotek, klient narzuca jakieś rozwiązanie, itp).

Bez względu na preferowaną bibliotekę, umiejętnością której zdecydowanie potrzebujemy jest praca z AJAXem.

Format wymiany danych? Może być XML, ale zdecydowanie króluje JSON. Z JSON pracuje się po prostu przyjemnie, jako format wymiany danych jest bezproblemowo obsługiwany w wielu różnych językach programowania, a my możemy integrować bezboleśnie.

OK, kompletujmy dalej wartościowe umiejętności front-end developera.

7. Twitter Bootstrap znacznie ułatwia nam tworzenie front-endu, szczególnie responsive (RWD). Jest często wymagany przez pracodawców, a przede wszystkim naprawdę nam pomaga.

W kwestii Responsive Web Design bardzo ważna będzie także znajomość Media Queries.

8. Angular to framework od wuja Google, posiadająca niesamowite możliwości.

Od jakiegoś czasu sam zagłębiam się i pracuję z Angularem. Znajomość Angular oraz node.js sam uważam za mandatory skill na przyszłość.

Ponad to bardzo ważny skill to tworzenie single page apps (one page), z którym możemy co prawda borykać się ręcznie, ale zdecydowanie warto sięgnąć po framework. I tutaj może nam znacznie pomóc Angular, Backbone.js, czy też Ember.

9. Obsługa narzędzi

Nie tylko IDE i kontrola wersji, Firebug to chyba rzecz oczywista. Jednak dobry developer bez problemu pracuje także w konsoli, kontrolując bardzo pomocne narzędzia.

Z pewnością composer czy Bower, NPM, czy task runner GruntJS. To typowe narzędzia pomagające developerowi, często wymagane przez pracodawców.

Na froncie przyda nam się znajomość rozwiązań typu SASS i LESS.

Poza tym ważne, aby nasze rozwiązania były cross-browser.

10. Co jeszcze?

A na przykład React (A JavaScript library for building user interfaces) – biblioteka od wuja Facebook’a.

Stykając się z projektami i ofertami ze Szwajcarii, często widzę wymaganą znajomość Vue.js.

Poza tym narzędzia typu issue tracking, oraz inne ułatwiające współpracę, szczególnie jest kochacie (tak jak ja) pracę zdalną. Przykładowo Basecamp, Trello. Wybór narzędzi zależy od team’u.

Umiejętność testowania o optymalizacji wydajności jest również bardzo cenna. Przydadzą się także umiejętności z obszaru UI/UX.

I jeszcze jedno – quality!

Bardzo ważna jest jakość! Nasz kod to nasz wizytówka – niech wygląda znakomicie, a działa jeszcze lepiej. Stabilnie – aby każdy mógł spać spokojnie.

Jakaś specjalizacja?

Czemu nie – są ludzie specjalizujące się w WordPress – opracowywanie themes i pluginów, wdrożenia.

Na rynku niemieckojęzycznym bardzo popularny jest CMS Typo3. Jest tam wiele ofert z tego obszaru, są nawet agencje specjalizujące się głównie w tworzeniu projektów na bazie tego rozwiązania. A opracowywanie themese dla Typo3 wcale najprostsze nie jest.

A może programowanie gier Web?

Poza tym cóż – nie można umieć wszystkiego, ale im więcej potrafimy, tym lepiej. Stąd też lepiej skupić się na opanowaniu kilku rozwiązań na wysokim poziomie, zamiast próbować wziąć na siebie setki napotkanych rozwiązań i bibliotek.

Szczególnie w kwestii JS, jest ogromna masa przeróżnych bibliotek i narzędzi. Jest w czym wybierać.

Grunt to utrzymać pasję do nauki i ciągłego rozwoju.

Zasoby:

http://blog.danielna.com/getting-a-job-as-a-front-end-web-developer.html

http://www.sitepoint.com/full-stack-developer

Polecam także bogaty wybór książek:

http://bit.ly/1k4lUQh

Umiejętności front-end developera – podsumowanie

To tyle na dziś, choć temat jest i tak znacznie obszerniejszy. Przejrzeliśmy przydatne umiejętności, a nadmieniam że to wszystko tylko z mojego skromnego punktu widzenia, oraz osób z którymi zamieniam dwa słowa od czasu do czasu.

Warto śledzić co się dzieje i jakie będą trendy na przyszłość.

A jakie Wy macie spostrzeżenia? A może jakieś przewidywania na przyszłość?

Dziękuję za uwagę. Niech kod będzie z Wami!

Programista WWW i aplikacji mobilnych z wieloletnim doświadczeniem, początkujący bloger. Pasjonat programowania, nowych technologii, e-commerce, a także sportu i motoryzacji.

Twitter LinkedIn Google+ Skype Xing 

Podaj dalej: Share on Facebook2Tweet about this on TwitterShare on Google+0Share on LinkedIn0Share on Tumblr0Digg thisEmail this to someonePin on Pinterest1
Możesz skomentować leave a response, lub podać trackback z własnej strony.