Wywiady

Fullstack — mit czy hit? Czy każdy może i powinien zostać fullstackiem?

programowanie

Czy każdy może zostać fullstackiem? Jaką wartość wnosi fullstack do firmy? I czy istnieją jakieś powody, dla których nie warto zostać fullstackiem? Rozmawiamy o tym z Patrykiem Podolskim, Senior Software Engineerem w SmartBear.

Jak zostałeś fullstackiem? Od czego zaczynałeś: frontend czy backend?

Moja profesjonalna przygoda z programowaniem zaczęła się od frontendu. Nie odkryję Ameryki, gdy stwierdzę, że jak każdy programista uwielbiam zdobywać nową wiedzę i poszerzać swoje horyzonty. Jestem samoukiem i w prosty sposób byłem w stanie zdobywać wiedzę na temat wszystkich technicznych aspektów aplikacji, nad którymi pracowałem w danym momencie.

Niestety, przez to, że moim oficjalnym stanowiskiem był frontend, to byłem często szufladkowany, wręcz pamiętam wypowiedzi typu „dzięki za sugestie, ale jesteś tylko frontedowcem i zostaw backendowcom to rozwiązanie”.  To dało mi tylko dodatkowego kopa 😉 

Skąd decyzja o pójściu w kierunku fullstacka? Co Cię do tego zmotywowało: większe możliwości na rynku pracy, zarobki, a może jeszcze coś innego?

Pewnie każdy chciałby usłyszeć z moich ust: „Zrobiłem to dla kasy! I dzięki temu zostałem legendarnym programistą 30k…” – na potwierdzenie tego, że fullstack to złoty środek na zarabianie dużych pieniędzy 😉  Tymczasem zrobiłem to ze zgoła odmiennego powodu.

Chciałem po prostu lepiej łączyć przysłowiowe kropki i implementując swoje rozwiązanie, trafniej dostosowywać się do wszystkich elementów aplikacji. Wielokrotnie byłem świadkiem takich sytuacji, że podczas tworzenia frontendu nie spotykaliśmy się w tym samym momencie z backendem. Dodatkowo frustrowało mnie, że nie byłem w stanie przewidzieć efektów niektórych moich rozwiązań.

Nie jest też prawdą, że byłem fronendowcem, nagle „ciach” i stałem się fullstackiem. Już w trakcie samej nauki programowania wiele lat wcześniej musiałem wykorzystywać elementy fullstackowe. Przy moich „pet” projektach musiałem stworzyć sobie przykładową bazę danych, end-pointy, czyli te elementy, które pozwolą mi na komunikacje frontend-backend-baza danych. Także ten fullstackowy temat zawsze mi gdzieś towarzyszył.

Co daje bycie fullstackiem dla developera, a co dla firmy?

Bycie fullstackiem pozwala na lepsze podejmowanie decyzji, a co za tym idzie — większą świadomość ich skutków, dzięki czemu można darzyć swoje rozwiązania większym zaufaniem. Takim programistom dużo łatwiej przychodzi trafne postawienie priorytetów.

Dodatkowo bardzo istotnym aspektem jest posiadanie całościowej wiedzy na temat elementów składowych naszego projektu. Dzięki temu rozwiązywanie trudniejszych zadań łączących kilka płaszczyzny pozwala na odpowiednie łączenie kropek i dostarczanie lepszego rozwiązania. Posiadając taką wiedzę, jesteśmy w stanie lepiej szacować nasze zadania oraz dostarczać „proof of concept” jakiegoś pomysłu dużo szybciej.

Fullstackowie są zazwyczaj bardzo elastyczni i w sposób płynny są w stanie wykonać nowy formularz logowania, wystawić REST API czy odpowiednio zaimportować dane z nowego źródła danych do bazy danych.

Firma natomiast dostaje wysoce wykwalifikowanych specjalistów, którzy są w stanie szybko przygotować wspomniany „proof of concept” aplikacji/feature’a. Istnieje mniejsze ryzyko niedomówień, ponieważ programiści fullstack w sposób całościowy są w stanie przedstawić dany problem/rozwiązanie. Firma zyskuje tym samym większą przejrzystość w tym, co dzieje się w projekcie. Dodatkowo dzięki posiadaniu holistycznego spojrzenia na aplikację jest mniejsze prawdopodobieństwo występowania problemów wynikających z komunikacji pomiędzy poszczególnymi jej elementami.

Co trzeba umieć w minimalnym choćby stopniu, aby być fullstackiem?

W minimalnym stopniu trzeba mieć masę chęci i trochę czasu 🙂 A tak na poważnie to niesłychanie istotną rzeczą jest zrozumienie tego, jak poniżej wymienione elementy komunikują się ze sobą. Ja wymieniłbym takie elementy na początek:

  • Frontend — Javascript + jakiś framework (React, Angular, Vue)
  • Backend — jakaś technologia backendowa (Node.js/ C#, Java itp) + 
  • Data Base — wiedza o tym, jak wygląda baza danych relacyjna/noSQL (podstawowe zapytania SQL)
  • DevOps — podstawowe zagadnienia związane z CI/CD (.yaml, pipeline’y) 
  • Cloud/server — jakie serwisy hostują poszczególne elementy naszej aplikacji ( AWS, Azure, Google itp.)

Dla kogo fullstack to dobry kierunek w ścieżce kariery?

Zdecydowanie chciałbym potwierdzić, że dla wszystkich! Jednak postaram się jednak zachować nutkę obiektywizmu. Fullstack będzie na pewno dobrym rozwiązaniem dla osób, które źle czują się ze swoją obecną rolą i szukają jakiegoś powiewu świeżości. Osoby, którym podobnie jak mi, nie wystarcza zamykanie się na mały wycinek większej całości, świetnie odnajdą się w tej roli. 

A może są jakieś powody, dla których nie warto zostać fullstackiem? Dla kogo to nie będzie dobra ścieżka kariery?

Szczerze uważam, że bycie fullstackiem ma tylko plusy i każdy powinien zahaczyć o ten aspekt przynajmniej raz w swojej karierze. Jednak jeżeli ktoś całe życie robił tylko te „landing pejdże” albo wystawiał miliard CRUD-ów, to warto chociaż zobaczyć, jak wygląda druga strona mocy. Trochę poeksperymentować, spojrzeć na dany problem z innej perspektywy i wtedy dopiero podjąć decyzję, w którym kierunku iść ze swoim rozwojem. Zawsze można być frontendowcem profesjonalnie, a w wolnym czasie być fullstackiem i tworzyć fajne appki. 

Jest jednak także druga strona medalu. Wydaje mi się, że istnieje dość wysoki próg wejścia, aby prawdziwie wejść w buty fullstacka. Trzeba napisać kilka aplikacji i poeksperymentować trochę z rozwiązaniami i oczywiście posiadać wiedzę w wielu aspektach. Może to być bardzo trudne dla osób dopiero rozpoczynających swoją przygodę z komercyjnym programowaniem, ale na pewno nie można się zniechęcać i z każdą nową aplikacją warto poszerzać swoją wiedzę 🙂 

Jak uważasz, czy wysoka specjalizacja jest lepsza od rozproszenia umiejętności?

Niestety odpowiem tutaj politycznie — to zależy 🙂  Od developera, od projektu. 

Jeżeli programista nudzi się na frontendzie, bo „zmienia tylko te kolorki”, to lepiej będzie, gdy spróbuje rozszerzyć swoją wiedzę o inne elementy aplikacji i odzyska radość w programowaniu. Z kolei, gdy ktoś jest wirtuozem styli i potrafi wyczarować z CSS’a, HTML’a i JS’a nietuzinkowe rzeczy oraz uwielbia, jak użytkownik ma przyjemność z poruszania się po aplikacji, a z backendem ma negatywne skojarzenia, to lepiej będzie, gdy pozostanie przy frontendzie. 

Czy bycie fullstackiem jest coraz trudniejsze?

Tak, ponieważ trudniejsze staje się bycie programistą jakiejkolwiek technologii. Ilość frameworków, które wyrastają jak grzyby po deszczu, nowe wersje istniejących frameworków są fajne tylko pozornie. Dzieje się tak, ponieważ każdy musi umieć to wszystko, co było do tej pory i co chwilę dodawać do tej kupki kolejne nowe narzędzia czy technologie.

W dłuższym rozrachunku sprowadza się do tego, że developerzy dążą do większej specjalizacji, zamiast do poszerzania swojej wiedzy odnośnie innych elementów aplikacji/systemu i tym samym bycie fullstackiem w komercyjnej pracy nie jest takie interesujące. 

Jaka przyszłość po fullstackowaniu?

To łączenie kropek, o czym wspomniałem wcześniej i szczegółowa znajomość potencjalnych elementów jakiejś aplikacji w bardzo dobry sposób przygotowuje nas do roli swego rodzaju architekta systemowego/aplikacyjnego. Daleki jednak jestem od tego, aby stwierdzić, że jest to jedyna albo najlepsza droga.

Rozpoczęcie swojej kariery jako fullstack może równie dobrze być początkiem uświadamiania sobie, który element tej pracy jest dla nas jako programistów najlepszy. Ktoś może ugruntować się w stwierdzeniu, że chce rozwijać się tylko jako frontendowiec albo właśnie stwierdzić, że zamiast robić „wszystko” jako fullstack, lepiej będzie zająć się tylko backendem.

A jak widzisz swoją przyszłość w branży IT?

Widzę siebie, jak wchodzę na scenę sali konferencyjnej, gdzie na widowni zgromadziła się masa ludzi z branży IT. Podnoszę ręce w górę, wszyscy widzą moje spocone pachy i zaczynam klaskać, krzycząc „developers, developers, developers…” – a nie, moment, tak już zrobił Steve Balmer 😉

Zawsze naturalnie przychodziła mi rola lidera, w której czuję się bardzo dobrze, dlatego chciałbym kiedyś zostać CEO i nie mam tu na myśli prowadzenia jednoosobowej działalności 😉 Oczywiście to cel ambitny i nie na teraz. Obecnie staram się skoncentrować na rozwijaniu się w roli fullstacka, aby płynnie przejść do roli architekta. Dalej wiem, że to się już dobrze potoczy 🙂


Patryk Podolski. Senior Software Engineer w SmartBear, odpowiedzialny za całą aplikację osadzoną w chmurze AWS. Pasjonat programowania, ambasador czystego kodu i programowania funkcyjnego. Zawsze szuka okazji do rozwoju, zarówno tego technicznego, jak i bardziej miękkiego związanego z zarządzaniem projektem i kontaktem z biznesem. 

Pasjonat biegów długodystansowych, w 2015 roku przebiegł maraton w Bostonie. Obywatel świata spełniający się w podróżowaniu i poznawaniu nowych kultur. W tym roku planuje odwiedzić Kubę oraz Wietnam, a w dalekich planach pozostaje przemierzenie Patagonii. Miłośnik Rieslingów z Moraw, Barolo z Piemontu oraz szczepu Montepulciano d’Abruzzo.

Zdjęcie główne pochodzi z Unsplash.com.

Od ponad ośmiu lat pracuje jako redaktorka, dziennikarka i copywriterka, a od niedawna dba o treści oraz rozwój portalu poświęconego branży IT. Autorka wywiadów, tekstów eksperckich, newsów.

Podobne artykuły

[wpdevart_facebook_comment curent_url="https://geek.justjoin.it/fullstack-mit-czy-hit/" order_type="social" width="100%" count_of_comments="8" ]