Czy warto iść w FullStacka będąc w backendzie

0

Cześć,

zwracam się do was z pytaniem o rade co do kariery/rozwoju. Piszę kod prawie rok w Javie(+Spring boot, webflux, cloud) i wchodzę w nowy projekt tworzony od zera, oparty o mikroserwisy w którym główna funkcjonalność (w sumie prawie cała) będzie oparta o systemy kolejkowe RabbitMQ i Kafka (głównie kafka). I zostałem postawiony przed moźlwością przejęcia roli FullStack Developera: Java + prawdopodobnie Angular i pytanie - czy myślicie że warto przycisnąć i w taką kombinację iść? Z Javą sobie radze na tyle żę ogarniam taski bez większej spiny ale np. wiem żę przydałoby się podciągnąć wiedzę Devopsową... natomiast zastanawiam się czy to już nie jest branie zbyt dużo na siebie tym bardziej jak ktoś planuje być przyzwoitym w tym zawodzie. Co myślicie?

ps. Z drugiej strony kombinacja backend + frontend niewątpliwie otwiera nowe ścieżki :/ Może ktoś miał podobne dylematy albo rezygnował/wchodził na podobną drogę.

33

Bycie przyzwoitym i posiadanie kompetencji w różnych zakresach się kompletnie nie wyklucza. Więc imo warto.

4

7 lat expa w Javie mam i stałem kiedyś przed podobna decyzja do Twojej.

Świadomie zawsze wyfixowywałem się ze świata front-endu na rzecz DevOps i nie żałuję. Więc zostałem takim Java Developerem z dość mocnym backgroundem Devopsowym, robię rzeczy w Cloud Formation, Terraform, zdałem niedawno CKA z Kubernetesa, mam 4x certa z AWSa, tak samo sporo robiłem rzeczy z networkingu przy okazji stawiania infry. Zdarzało mi się wspierać DevOpsow w pracy.

Jak chodzę na rekrutacje na Java Developera to z Devopsowych rzeczy wiem nieraz więcej niż goście co mnie rekrutują co jest mi na rękę.

Angulara i FrontEndu nie tykam. Z takim backgroundem co mam aktualnie mogę przejść na Devopsa lub Java Developera co jest mi bardziej korzystne jeżeli chodzi o pieniądze a także Cloud/DevOps bardziej współgra moim zdaniem ze światem Javy.

1

Dzięki za odpowiedzi...
@oliver_: no i właśnie.. cały system jaki bedziemy stawiac, bedzie posiadal mocno rozbudowaną infrastrukturę opartą o kubernetesa a głównie Openshift'a (nie znam sie na tyle aby nakreślić różnice , być może Openshift to kubernetes tyle że z nakładką redhata).

I jakbym się wymigał od frontu to bym mógł się "wmigać" w devopsowanie co mi się wydaje dużo fajniejsze i ciekawsze :P

2

Byłem full-stackiem przez długi czas, od jakiegoś czasu zdecydowałem, że działam tylko na backendzie i bazach danych. Fajnie mieć pełny skillset - przydaje się, ale mam wrażenie, że jako full-stack masz o więcej obowiązków, a niekoniecznie proporcjonalnie większą kasę :)

3

Ja bym do backendowca dolaczyl tematy szeroko-pojetego SRE/Devopsa i frontu nie dotykal ale to moje osobiste preferencje.
Uzupelnia sie to fajnie i latwiej to polaczyc tymbardziej ze w wielu firmach troche sie laczy te kompetencje.

3

Mając doświadczenie na froncie łatwiej rozumieć co ktoś od ciebie oczekuje jak przygotowujesz mu API, poza tym czasami łatwiej sie fiksuje rzeczy jak możesz coś dotknąć od dwóch stron i skraca ping-pong'a czyja wina.

0

Być full stackiem to może nie ma sensu ale zawsze warto mieć jakieś praktyczne pojęcie o tym co się dzieje po drugiej stronie i móc zrobić coś niezbyt wymagającego jeśli jest potrzeba

2

Moim zdaniem, źle postawiłeś pytanie bo zarówno ścieżka devops jak i frontend dają duże możliwości rozwoju. Zadaj sobie pytanie co lubisz robić i zacznij to robić. Ja mam w swoim życiorysie przygodę jako full stack (.NET + Angular) i bardzo szybko się przekonałem że frontend to nie jest to mnie kręci. Owszem zabawa Angularem a potem Reduxem była fajna dla backendowca takiego jak ja, ale od zawsze nie po drodze mi było z HTML i CSS, przez co porzuciłem temat frontendu i skupiłem się w całości na backendzie (.NET) i chmurze (Azure i AWS) dlatego, że sprawia mi to najwięcej przyjemności i nie mam odruchu wymiotnego na myśl, że muszę ogarnąć jakiś bug w layoucie bo przy mniejszej rozdzielczości jest rozjazd o 2px.

0

mialem okolo 1,5 roku pisania jednoczesnie w javie i angularze, gdzie w angularze bylem czyms w rodzaju glownego kodera.
Problem pojawil sie gdy bylismy blisko i na produkcji.
Jak trzeba bylo robic fixy to robilem i na backendzie i na froncie. Efekt byl taki ze napisalem najgorszy kod w zyciu. Dzialal poprawnie ale z braku czasu jakosc i tu i tu byla slaba. Duzy wplyw ma to mial fakt ze nie jestem 'expertem' frontowym i czasami robilem rzeczy dluzej niz by robil to ktos ogarniety we froncie i potem czasami troche brakowalo czasu na backend.

1

Ja tylko dodam, że dobrze mieć pojęcie o wszystkim, żeby później jako backendowiec/ktokolwiek inny, dogadywać się z pozostałymi programistami, nie tylko z twojej działki:) Trochę zrozumienia innych obszarów nie zaszkodzi. Ale in the end, lepiej się wyspecjalizować:)

1

Nie wypowiem się jak wygląda to na backendzie i frontendzie bo nie mam pojęcia ale w aplikacjach mobilnych bycie jednocześnie gościem od androida i od iosa nie jest wcale opłacalne, kasy większej z tego nie ma a obowiązków masz więcej no bo przecież możesz zasuwać na dwie platformy i nigdy się nie będziesz nudził ;) Nie spotkałem jeszcze osoby która byłaby dobra tu i tu, jak jest osoba która piszę na dwie platformy to jej kod często jest nie za dobry. Także for fun można się bawić, zawodowo odradzam

2

Nie znam się na webowych technologiach, ale taka ogólną radę Ci mogę dać, że jak jesteś świeży i masz okazję wejść w projekt, który startuje od zera to korzystaj. Nie jest to częsta sytuacja a dużo się nauczysz.

2

Jak chcesz pracowac za 2, to tak

1

Moim zdaniem w ogóle nie warto robić niczego co cię nie interesuje chyba że kasa aż tak jest dla ciebie ważna. Ja na przykład lubię wizualne efekty mojej pracy, a nie tylko response serwera w postmanie, ale jednocześnie wolę inne języki niż javascript / typescript a już zwłaszcza css i nie lubię robić za UX / UI designera a często tego ode mnie wymagają. Ale fullstack odnosi się chyba nie tylko do web developerki ale też do mobilnych aplikacji i desktopów (tu już w ogóle się nie polecam zaczepiać bo to będzie straszne legacy albo javascript w wersji na desktopa).

Tak więc - nie, nie warto bo praca we froncie to straszny syf, trzeba ogarniać mnóstwo konfiguracji klienta, ogarniać dynamiczne zmiany we frameworkach i możliwościach przeglądarek (jeśli mowa o web), nauczyć się animowania, dziwnych zachowań, wytycznych i norm layoutu, mieć na względzie dużo zagadnień z zakresu bezpieczeństwa - ogólnie nauki prawdopodobnie znacznie więcej niż backend + devops, znacznie szybciej się starzejącej, a korzyści prawie żadne - wizualny efekt pracy, poczucie że jesteś samowystarczalny i łatwiejsze znalezienie pracy (choć z tym i tak nie jest trudno). Więc jeśli byś chciał to już byś w tym siedział a jak nie chcesz to nie warto, kasy z tego większej z tego co wiem nie ma.

Piszę to jako fullstack który fullstackiem chce pozostać ale zawsze z małym przechyleniem w stronę backendu

0

U mnie w projekcie mamy stricte frontend developera i to on jest odpowiedzialny za cssy + html (jak jest coś skomplikowanego) + angular - fullstack jest odpowiedzialny za backend + frontend od strony angulara/reacta (a jeśli ktoś lubi css+html i się zadeklaruje że chce to robić to w tym również wspomaga zespół).
Jednak backend to również rzeczy cloud typu AWS/Azure itp i warto to również potrafić, chociaż podstawy jak Cię to tak nie jara.

Z doświadczenia wiem że jak ktoś jest leadem i ma przypiętą w firmie łatkę oragniętego to praktycznie takie rzeczy jak przykładowo java albo c# do tego angular albo react + AWS albo/i Azure - potrafi bardzo dobrze.

1

Zgadzam się z przedmówcami i moim zdaniem lepiej pouczyć się rzeczy devopsowych (docker, kubernetes i inne przyległości zawsze się przydadzą). Natomiast jeśli lubisz frontend, ciekawi Cię to- to wtedy warto. Mnie np. ciekawi pisanie apek (iOS, Android) i tego się uczę, ale nie żeby zmieniać stanowisko (java dev) tylko ot tak, dla siebie. Przyda się to ok, nie to nie, uczę się z czystej ciekawości i dla przyjemności.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.