Od Fullstacka do frontendowca specjalisty.

0

Cześć.
Około pół roku temu zakładałem temat z wątpliwością czy dalej iść w kierunku FullStacka ( Java/Spring + Angular) czy wybrać backend. Postanowiłem jednak dać sobie czas i zaobserwować dokładniej czego bym chciał w pracy a czego wolałbym unikać. Zawsze lubiłem tworzyć rysunki graficzne i mam spoko zmysł graficzny, a co najważniejsze z moich obserwacji wynika, że jednak lepiej radzę sobie we frontendzie i dużo lepiej się czuję, nie męczy mnie tak jak logika backendowa. W związku z tym chcę spróbować specjalizacji we froncie.
Mam ograniczone doświadczenie pod względem stricte graficznym UX/UI/CSS więc i tego musiałbym się douczyć. Stąd też wynika moja niepewność co do tego czy moje oczekiwania są zgodne rzeczywistością na pewno. Jak myślicie czy praca stricte na froncie tak wygląda czy w bardziej zaawansowanych projektach frontend potrafi być bardziej upierdliwy?

Czego szukam:

  1. Chciałbym być bardziej niezależnym developerem. Praca w zespole bardziej powinna oznaczać to, że nawzajem sobie pomagamy w bardziej technicznych taskach, a nie to, że ciągle jesteśmy zależni od siebie przez logikę biznesową, która powoduje, że implementacja jest taka powiązana.
  2. Praca powinna być bardziej technicznym aspektem( czyt. jak coś zrobić, a nie jak tą logikę napisać) Myślę, że graficzny aspekt, wysokopoziomowy aspekt tj. interakcja z użytkownikiem, logika po stronie klienta jest dla mnie dużo łatwiejsza w zapamiętaniu i planowaniu.
  3. Lubie usiąść i "grzebać swoje"
  4. Ogólnie logika biznesowa na backendzie zaczęła mnie nudzić, męczyć, kompletnie nie mam motywacji do rozkmin i zapamiętywania co gdzie jest i co robi. Dużo łatwiej przychodzi mi zapamiętanie tego co się robi na froncie.
  5. Chciałbym bardziej skupić się na tworzeniu czegoś niż na działaniu wokół: czyli pisanie testów, rozkmina logiki biznesowej, która jest nudna, czy grzebanie po bazie ( obecny projekt jesli chodzi o bazę, zabija mnie ). Wiem też, że testy na froncie się pisze, ale z poprzednich projektów wynika, że bardzo mało było, no chyba, że większa logika się pojawiała.
  6. Chciałbym specjalizować się w czymś co da mi więcej szans na pracę zdalną, na większą niezależność. Również oferty zza granicy.
  7. Chciałbym siadać do zadania i w większym stopniu wiedzieć już przy nim co jest do zrobienia, tak jak mieć mockup, czy przynajmniej zarys jak klient chce żeby to wyglądało. Przy backendzie zawsze czuję, żę siadam przed próżnią.
  8. Chyba potrzebowałbym czegoś nieco bardziej co można się nauczyć i wykorzystywać, a nie kminić w locie. Zaobserwowałem u siebie średniawe zdolności zapamiętywania logiki, architektury i operowania nią.
  9. Chciałbym nie być odpowiedzialny za buildy całej aplikacji itd itp.

Co mnie wkurza obecnie i czego chciałbym przynajmniej w jakimś stopniu unikać:

  1. Zmiana co chwila pomysłu na logikę i sposób wykonania, potrzeba bardzo dużej podzielności uwagi między swoje zadanie a to co w danym momencie ustalają, co chwila rozmowy, to mnie rozprasza i męczy.
  2. Tworzenie dokumentacji technicznej
  3. Toporność Javy
  4. Nie chce mi się siedzieć na spotkaniach z rozkminami o logice biznesowej to mnie nuży strasznie i ciężko jest mi wszystko spamiętać. Dużo łatwiej mi się zapamiętuje graficzne rzeczy.
2

IMO sam sobie dosyć trafnie odpowiedziałeś.

Minusy frontu, z którymi backendowiec nie ma tak często do czynienia:

  • bardzo krótkie cykle życia technologii/wersji bibliotek, ciągła nauka, niekończące się dyskusje o wyższości x nad y,
  • nawet topowe biblioteki bardzo często galopują ze zmianami i maja sporo BC - puszczasz npm update i pot wstępuje na czoło ;),
  • walką z różnicami implementacyjnymi w przeglądarkach - na desktopie już jest naprawdę znośnie, ale mobile może dać w kość,
  • Angular narzuca konkretny porządek w projekcie, ale inne biblioteki to będzie wolna amerykanka - wpadnięcie w projekt na późniejszej fazie nie zawsze będzie przyjemne.

Mam podobnie jak Ty - tzn. jestem bardziej produktywny na froncie i sprawia mi więcej frajdy. Jednak po dłuższej zabawie np. w react i powiązanych bibliotekach (state, UI, testy etc.), to taka wspomniana przez Ciebie "toporność" Javy wydaje się sympatyczną, stabilną przystanią, gdzie wszystko jest takie wyraźne, wręcz rozwleczone, gdzie można sobie porozważać mądrości Wujka Boba i logować czas, spędzony nad tym etc. ;).

Front to specyficzny kawałek chleba, trzeba naprawdę "kochać Internet" (broda, tatuaże i czapka z daszkiem mile widziane ;)). Po tym co napisałeś myślę jednak, że masz ku temu odpowiednie zadatki.

0

Bakcend również na początku rozważałem, niestety spoko projekt backendowy znaleźć to głównie w korporacjach czego raczej chciałbym unikać, do tego dochodzi, że nie jara mnie logika backendowa jak myślałem, że będzie. Obecnie Spring i technologie javove coraz szybciej się zmieniają, co chwila nowa java, też jest rxjava, fluxy, lambdy, aws'y i inne biblioteki ( fakt na backendzie to jest bardziej kompatybilne wstecznie) i różne twory więc upodabnia się to do frontu.

0

Zanim w korpo zaczną używać nowych wersji javy, rxjavy, fluxów to trochę czasu minie ;)

2

Zanim w korpo zaczną używać nowych wersji javy, rxjavy, fluxów to trochę czasu minie ;)

Tak bo do tego jest mało firm, które używają faktycznie czegoś nowego i tak czy siak jak chce sie byc na topie, to trzeba siedzieć w domu, na froncie dużo częściej uświadczałem świeżych technologii w projektach.

Angular narzuca konkretny porządek w projekcie, ale inne biblioteki to będzie wolna amerykanka - wpadnięcie w projekt na późniejszej fazie nie zawsze będzie przyjemne.

Często wchodzenie w istniejący duży projekt jest ciężkie. Na backendzie do tego trzeba wejść w istniejący już biznes, który bywa napisany w bardzo pokićkany sposób i za każdym razem jest inny.

Ogólnie nie uważam, żeby jedno było trudniejsze od drugiego. To po prostu preferencja programisty, do czego bardziej się nadaje, co mniej go wkurza w kontekście minusów i bardziej satysfakcjonuje w kontekście plusów.

1 użytkowników online, w tym zalogowanych: 0, gości: 1