Od Fullstacka do frontendowca specjalisty.

Od Fullstacka do frontendowca specjalisty.
Prędki_Lopez
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 13 godzin
  • Postów:253
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.
edytowany 1x, ostatnio: cerrato
RS
  • Rejestracja:ponad 22 lata
  • Ostatnio:7 miesięcy
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.

edytowany 1x, ostatnio: roSzi
Silv
galopują ze zmianami i maja sporo BC – co to BC?
RS
skróciłem breaking change do BC, ale częściej stosuje się chyba BC break - wtedy za skrótem kryje się backward compatibility
Prędki_Lopez
" gdzie można sobie porozważać mądrości Wujka Boba i logować czas, spędzony nad tym etc." mnie właśnie te rozkminy czasami męczyć zaczynają nad bzdetami. Czy użyć do pojo z 3ema polami konstruktora czy buildera i wielka dywagacja nad tym.
Prędki_Lopez
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 13 godzin
  • Postów:253
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.

edytowany 1x, ostatnio: Prędki_Lopez
danek
  • Rejestracja:ponad 10 lat
  • Ostatnio:6 miesięcy
  • Lokalizacja:Poznań
  • Postów:797
0

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


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.
TD
Masz jakieś dane na ten temat? Moje byłe korpo to był outsourcing, duży klient, duży projekt, sporo ludzi. Java aktualizowana była na bieżąco, rxjava też była. Takie problemy może ma jakiś UBS, ale bez przesady.
danek
trochę zależy z czego się korzysta. Niestety dużo bibliotek często jest w tyle z wersjami i to opóźnia
TD
No tak, ale taki problem można spotkać wszędzie, nie tylko w korpo.
Prędki_Lopez
  • Rejestracja:ponad 9 lat
  • Ostatnio:około 13 godzin
  • Postów:253
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.

edytowany 6x, ostatnio: Prędki_Lopez
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)