Co wiedzieć powinien
przyszły Full Stack Developer cz. 1

15-10-2021

„Full Stack Developer poszukiwany”. To jeden z tych tematów, który podczas dyskusji w świecie obecnych, ale przede wszystkim przyszłych programistów, szybko swojego zakończenia nie znajdzie. Dzisiaj o tym na czym polega i z czym się wiąże rola Full Stack Developera.

Rozgrzana lista płac

Wyobraźnię aspirujących do roli Full Stack Developera rozpalają licytacje na zarobki w internetowych portalach z ofertami pracy w branży IT. Marzenia pracodawców zaś, skupiają się wokół ograniczania kosztów i pozyskiwania programistów, których cechowałaby informatyczna omnipotencja. Znaleźliśmy się w samym centrum tej dyskusji, dlatego wracamy do tematu by pewne mity obalić, a prawdy podkreślić.

Full Stack Developer
Full Stack Developer to „człowiek orkiestra”

Spełniający marzenia Full Stack Developer

Full Stack Developer to krótko mówiąc „człowiek orkiestra”. Potrafi spełnić marzenie swojego zleceniodawcy o działającej zgodnie z jego oczekiwaniami, aplikacji webowej. Maestro efektywnie pracuje zarówno z frontendem, jak i backendem aplikacji internetowej.

Od frontu…

W świecie „mniej idealnym” oba te obszary – mimo, że ostatecznie się oczywiście łączą – funkcjonują rozdzielnie. Frontend Developerzy łamią sobie głowy i palce wgryzając się we wszystko co skierowane jest do bezpośredniego użytkownika – interfejs, nawigację, wizualizację. W ruch idą HTML, CSS, JavaScript by efektami swojej oczarować użytkownika. To artyści, trochę psychologowie, storytellerzy i praktycy UX – User Experience i UI – User Interface.

I od zaplecza

pisanie kodu
„Fullstackowiec” zaprojektuje interfejsy i napisze kod

Backend Developerzy z kolei to ludzie zaplecza, czarnej, mało widowiskowej na pierwszy rzut oka pracy (bo cóż widowiskowego może być w ciągach zapisanego kodu), ale decydującej o ostatecznym sukcesie projektu. To oni piszą kod aplikacji, przetwarzają dane, tworzą ich bazy i interfejsy API, bez których nie byłyby możliwe interakcje pomiędzy aplikacjami i realizacja zaprojektowanych funkcji. Tutaj trzeba już być prawdziwym informatycznym „poliglotą”. Bez znajomości takich języków programowania jak JavaScript, Java, Python, PHP czy C# nie ma mowy o końcowym sukcesie. Praca z bazami danych oznacza konieczność posiadania wiedzy w zakresie komunikacji z nimi i znajomości SQL-a – języka zapytań (i oczywiście takich relacyjnych baz danych jak PostgreSQL, MySQL czy Oracle.

„Wszechmocny” nie tylko technicznie

W takim oto krajobrazie, programiści Full Stack przypominają trochę bohatera filmu „Bruce Almighty”. Z tą różnicą, że dar „wszechmocności” muszą sobie wypracować sami… A obejmuje on tworzenie aplikacji webowych w obu wspomnianych obszarach, z gruntowną umiejętności wszystkich języków kodowania, relacyjnych baz danych, machine learningu itd., itp…
Owa „wszechmocność” Full Stack Developera obejmuje nie tylko umiejętności techniczne. Musi on zwinnie poruszać się między frontendem a backendem i aranżować sprawną, efektywną komunikację między tymi obszarami oraz ich integrację. Kreuje rozwiązania po jednej stronie, by zaraz przejść na drugą i zamienić się w analityka i problem solvera.

Nie dla wszystkich

I to właśnie różnica w zdefiniowaniu wiedzy, doświadczenia i posiadanych cech osobowościowych kandydatów na Full Stack Developerów rozpala gorące dyskusje. Jestem daleki od twierdzenia, że „jak ktoś umie wszystko, to nie umie niczego”, ale skala odpowiedzialności za realizację powierzonego projektu jaka spada na „Wszechmocnego” jest ogromna. To zadanie dla ludzi z pewnością o nieprzeciętnych umiejętnościach informatycznych, organizacyjnych ale i mentalnych.
Tego nie można nauczyć się na bootcampach, półrocznych czy nawet rocznych kursach. Choć Ci, którzy czują się na siłach i uważają, że posiadają odpowiednie kompetencje osobowościowe, mogą wziąć udział w szkoleniach na Full Stack Developerów. Cena? 10000 do 35000 PLN…

Trudna rola Full Stack Developera

  • Z jakimi zadaniami się zmierzymy gdy takie stanowisko już obejmiemy? Do najważniejszych należą:
  • Projektowanie i/lub współpraca z grafikami;
  • Definiowanie interakcji użytkownika w aplikacji webowej;
  • Projektowanie i rozwój oprogramowania;
  • Pisanie kodu dla frontendu i backendu;
  • Testowanie i debugowanie oprogramowania;
  • Przygotowanie serwerów i baz danych dla backendu;
  • Tworzenie interfejsów API;
  • Optymalizacja;
  • Deployment.

Za tydzień o tym ile trzeba zapłacić by dostać potwierdzenie ukończenia kursu Full Stack Developera i ile rzeczywiście można w tej roli zarobić. A można…