Co powinien umieć każdy web developer?

RYNEK IT
Web Development

Pamiętam jeszcze dziesięć lat temu, kiedy portale HR zapełnione były ofertami jedynie uzupełniającymi raczkujące powoli projekty i przedsięwzięcia. Nazwy stanowisk brzmiały nader obco, a wymagania obejmowały często bardzo szerokie spektrum, niekoniecznie związane z docelowym zaangażowaniem pracownika. Dziś jednak mamy sytuację na tyle bezpieczną, że zamiast kreować pracę pod stanowisko, dzieje się odwrotnie. To właśnie ambitne i stabilne projekty wymagają pozyskania konkretnych umiejętności, przy dojrzałej strukturze zadań i zrozumiałym workflow.

Każdy niedojrzały rynek pracy charakteryzuje się tym, że choć tytuły brzmią podobnie - praca obejmuje zgoła inne zadania i priorytety. W Polsce lat 2000-2010 można było natknąć się na bardzo rozmaite nazwy stanowisk, choć koniec końców pracownik wychodził daleko poza proponowany zakres. Web Developer jest właśnie takim przykładem stanowiska w IT, które doświadczonym rekruterom nie mówi nic, dopóki nie określi się dokładnie specyfiki zadań z tym związanych. Co zatem powinien umieć Web Developer i jak powinien być przygotowany do pracy?

Na nieszczęście dla tych, którzy celują w to stanowisko - zakres pracy może być różnorodny. Z pewnością technologie takie jak HTML, CSS i JavaScript są niezbędne, lecz w ofertach pracy natknęliśmy się także na PHP, SASS, React, Node.js i Java. To niezwykle ciekawe z punktu widzenia klasycznego podziału na Front-End i Back-End - Web developer tak naprawdę powinien wg ofert pracy czerpać z jednego i z drugiego zakresu.

Podstawa podstaw czyli co muszę umieć?

Bezsprzecznie jednak, we wszystkich ofertach możemy natknąć się na technologie związane z budową stron internetowych / sklepów internetowych. Tutaj natrafiamy na sformułowania, że podstawą programową w przypadku Web Developera z pewnością jest HTML, CSS i JavaScript. Znajomość tagów HTML czyli struktury końcowej strony internetowej, umiejętność wizualnego zaprezentowania koncepcji za pomocą CSS i dodatkowo wprowadzenie elementów dynamicznych z poziomu JavaScript to z pewnością podstawa.

Nikt jednak nie zamyka się na te trzy umiejętności - strony internetowe już od wielu lat idą dalej. Niegdyś wystarczyło otworzyć edytor tekstowy, by zacząć tworzyć podstawową witrynę sieci Web. Dziś jednak zadanie jest o wiele trudniejsze, gdyż nie ma czasu na naukę podstaw, a tuż za rogiem czają się jQuery czy Bootstrap. To właśnie rozwój technologii przyniósł wiele uproszczeń dla metodologii pracy, tym samym utrudniając decyzję co do ścieżki kariery.

Znam podstawy - i co dalej?

Z języka HTML wychodzimy wszędzie - chwytamy za XML, Smarty czy Twig. To zawsze pozostanie bazą dla naszej wyobraźni. Sprawa ma się o wiele gorzej jeśli chodzi o JavaScript i CSS. Ingerując w statyczność strony za pomocą jQuery, ReactJS czy AngularJS uzyskujemy dostęp do niezwykle potężnych narzędzi mogących przechowywać i przetwarzać dane w dowolny sposób. Dziś Front-End developer tak naprawdę nie musi poznawać języka serwerowego, by sprawnie manipulować zestawem danych. Front-End miesza się z Back-Endem, a starzy wyjadacze PHP & MySQL tylko spoglądają ze zdziwieniem, jak wiele narzędzi otrzymał do dyspozycji "frontowiec".

Jednak nie jest to przesadą, by powiedzieć, że Web Developer powinien sięgnąć po klasykę webowego back-endu. Nauka PHP i MySQL przynosi same korzyści. Możemy poznać od podstaw metodologię programowania obiektowego i zachwycić się użyciem wzorca MVC (Model-View-Controller). Wszak wielu Web Developerów wpierw siada do języka interpretowanego po stronie serwera i z pomocą bazy danych próbuje uzyskać jasną i zrozumiałą strukturę, którą dopiero "obrobi" w językach i wtyczkach frontowych.

W moim przypadku motywacją do nauki całego spektrum technologii web była praca z Wordpressem. Ta dynamicznie rozwijająca się platforma w 2004 roku budziła zachwyt, gdyż oszczędzała wiele pracy ówczesnym Web Developerom. Mieliśmy wówczas do czynienia z bardzo zaawansowanymi projektami CMS, które wychodziły z rąk programistów z klasyczną edukacją w tle. Brakowało wówczas wielu narzędzi, które znamy dzisiaj, takich jak Bootstrap czy jQuery.

Back-End vs Front-End

Kontynuując wspomnienia - odwieczny konflikt Front i Back przestał mieć znaczenie. Dziś wszyscy mają świadomość tego, że Web Development opiera się na przepływie danych i nie ma znaczenia, kto jest ważniejszy. Back-End zapewnia logiczną strukturę danych i ma ogromny wpływ na bezpieczeństwo, natomiast Front-End ma za zadanie spełniać warunki dobrego UX/UI by dane były czytelne i "używalne".

Web Developer z roku 2010 to zupełnie inna postać niż w roku 2018. Dziś nagradza się nie tyle znajomość technologii i odniesienie do informatyki czy matematyki. Dzisiejszy Web Developer to czarnoksiężnik z księgą zaklęć - od projektu i specyfiki zadań zależy, jakie czary powinien zastosować. Na Web Developerze ciąży duża odpowiedzialność - jeśli odpowiada za cały proces tworzenia stron internetowych czy aplikacji, powinien wiedzieć, że planując Back-End, ma ogromny wpływ na Front-End i odwrotnie. Planując to, w jaki sposób inni korzystają z jego pracy, ma wpływ na to, czy zaplecze jest wydajne i uporządkowane.

Podsumujmy rynek pracy dla Web Developera

Czas podsumować spostrzeżenia na temat tego, co powinien umieć każdy Web Developer. Z pewnością warto wspomnieć tutaj także o całym otoczeniu pracy, czyli umiejętności pracy w zespole (grafik, administrator), znajomości języka angielskiego, czy zamiłowanie do nowinek technologicznych.

Junior Web Developer: HTML, CSS, JavaScript

Web Developer: J. w. + jQuery, Bootstrap (lub inny front-end framework), CSS3, HTML5, jQuery i XHR, CMS (np. Wordpress / Drupal), PHP5/7, MySQL, GIT/SVN, Agile/Scrum

Senior Web Developer: J. w. + AngularJS, ReactJS, Vue.js, Node.js, Java/Ruby, Administracja serwerem