Rodzaje programistów - jak się w tym odnaleźć.

Front-end, Back-end - jak się w tym wszystkim połapać?
Artykuł o tematyce kompetencji poszczególnych gałęzi kariery programistycznej od początku skrywał się w mojej głowie i cieszę się że mogę się z Wami podzielić moimi przemyśleniami na ten temat. Pracując jako junior front-end developer (na własną rękę) dostrzegłem pewien problem który dotyka freelancerów w branży IT a jest to brak rozeznania klientów jeśli chodzi o technologie webowe. I to nie jest żaden problem, w końcu nie można wymagać od każdego by rozróżniał te kwestie.
To jak to jest z tymi rolami?
W programistycznym świecie mamy dwie główne specjalizacje, a dokładniej Front-end oraz Back-end developer. Czy front-end developerzy dali by sobię radę poradzić z wszystkimi zadaniami bez back-end developerów i odwrotnie? Już tłumaczę.
-
Front-end developer - to osoba która zajmuje się zaprogramowaniem strony tak by wyświetlała się ona na wszystkich nowoczesnych urządzeniach jak należy, zgodnie z projektem graficznym. W dobie technologicznego skoku gdzie korzystamy na codzień nie tylko z komputerów ale także ze smartphonów, smartwatchów, tabletów - strony responsywne to pozycja obowiązkowa. Już w 2016 roku ruch w sieci dzięki smartphonom pokonał ruch tradycyjny przy użyciu komputera, a artykuł o tym znajdziesz tutaj. Programista front-end nie koniecznie musi znać się na projektowaniu zaawansowanych systemów serwerowych, tworzeniu CMS'ów (z ang. Content Management System - System zarządzania treścią), tworzeniem baz danych a także przesyłaniu danych pomiędzy systemami.
- Back-end developer - to osoba która zajmuje się programowaniem od nieco innej strony, a dokładniej strony serwerowej, logiki biznesowej czy baz danych. Osoba taka nie koniecznie musi znać się na kwestiach związanych z programowaniem witryn internetowych. To właśnie back-end developer jest w stanie stworzyć dla klienta system CMS który jest tak często porządany przez klientów czy sklep internetowy obsługujący magazyn produktów, odbieranie zamówień, wystawianie faktur, aktualizację stanu danego produktu na magazynie.
Ale zatrzymajmy się na chwilę. Czy muszę przy stworzeniu strony prosić o pomoc obu programistów?
Nie koniecznie. W dzisiejszych czasach powstało wiele ciekawych rozwiązań działających na korzyść programistów Front-end'u. I choć wciąż programista front-end nie jest w stanie napisać dobrego jakościowo i zaawansowanego systemu zarządzania treścią czy nie napiszę obsługi banku mającego setki tysięcy klientów, to jest w stanie w niektórych sytuacjach obejść się bez pomocy back-end developera. O czym mowa? Od dawna są gotowe rozwiązania np. CMS, gdzie możemy skorzystać z systemu WordPress tworząc blog, mamy także system WooComerce oparty na WordPressie gdzie możemy stworzyć sklep internetowy. Ma to oczywiście swoje minusy i w pewnych kwestiach musimy iść na ustępstwa (artykuł na ten temat na pewno niebwem się pojawi). Do stworzenia bloga można także skorzystać z Headless CMS gdzie do strony www napisanej w tradycyjny sposób można podpiąć CMS i wskazać mu w jakich obszarach użytkownik będzie w stanie ingerować w treść strony, nie przejmując się całą tą otoczką systemu zarządzania treścią, po prostu dostajemy dostęp do panelu administracyjnego gdzie mamy możliwość zmiany małej konkretnej, wcześniej wyznaczonej treści - system ten nie obejmuję całej witryny.
To tylko kilka z przykładów. Każda strona jest inna, wymaga innych rozwiązań. Nie da się jednoznacznie odpowiedzieć na to pytanie, aczkolwiek w mojej opini front-end developer jest tutaj w nieco lepszej pozycjii bo powstają rozwiązania które pozwalają bez komunikacji z back-end developerem stworzyć średnio zaawansowany system internetowy.
Ale to nie wszystko...
Są jeszcze tzw. Full Stack Developerzy. Kim jest taka osoba? To osoba która zna technologie zarówno front jak i back-endowe. Lecz bardzo proszę nie popadać tutaj w błędne myślenie że po co w takim razie kontakt z front/back-end developerami jak mogę znaleźć jakiegoś programiste Full Stack. Tak naprawdę programowanie to ciężka praca i w każdym większym przypadku niż prosta strona wizytówkowa czy prosty system zarządzania treścią obsługujący bloga - wymagana jest praca nie dwóch, nie trzech programistów a całego zespołu specjalistów którzy zadbają o każdy z obszarów, tworząc dobry produkt który przez lata będzie mógł być łatwo rozwijany oraz utrzymywany, w przyszłości także przez innych.
Warto wydaje mi się przytoczyć tutaj metaforę znanego w Polsce front-end developera Adama Romańskiego dotyczącą opisu tych specjalizacji:
Wyobrażcie sobie sklep - taki zwykły spożywczak. Front-end to wszystko to co widzicie wchodząc do sklepu, wszystkie półki które widzicie, sprzedawca, kasjer, lada - to wszystko jest front-endem. Wszystko z czym możecie wejść w interakcję, komu możecie zadać pytanie, co możecie dotknąć. (...) Czym zatem jest back-end? Jeżeli poszlibyście za sprzedawcą na zaplecze to zobaczylibyście wielki magazyn ze wszystkimi produktami które dopiero stamtąd wykładane są na półki, zobaczylibyście jakiś system zarządzania asortymentem, papiery związane z prowadzeniem firmy - wszystko to co nie widzicie na pierwszy rzut oka a dzieje się gdzieś tam na zapleczu - to jest back-end.
Materiał ten w którym Adam opisuje to wszystko możecie znaleźć pod tym adresem.
Poruszone w tym artykule technologie jak WordPress, WooCommerce, Headless CMS - zostaną na pewno w najbliższym czasie szczegółowo wytłumaczone na moim blogu. Tymczasem mam nadzieję że rozwiałem trochę wątpliwości osobom nie zaznajomionym z branża IT a chcących nawiązać współpracę z programistą/zespołem programistów.
