Front-end vs Back-end - nauka i późniejsza kariera

0

Jeśli napisałem w złym dziale, to przepraszam.

Od kilku dni uczę się programować - znam "podstawy podstaw" C++ i teraz uczę się Javy. Jako, że w przyszłości chcę znaleźć zatrudnienie jako programista, chciałbym dowiedzieć się kilku rzeczy w tej kwestii. Wobec tego mam następujące pytania (mogą wydawać się śmieszne lub głupie dla osób, dla których jest to chleb powszedni, ale od czegoś trzeba zacząć):

  1. Czy prawdą jest, że Front-End rzeczywiście jest prostszy w nauce? Słyszałem i czytałem, że do Back-Endu bardziej przydaje się/wymagana jest znajomość matematyki, rozwiązywania złożonych problemów logicznych. Jeśli to prawda, albo nie - mógłby ktoś przedstawić różnice w "profilu" osoby zajmującej się Front-Endem i Back-Endem? Tzn. np. Backend, to bardziej matematyk, a Frontend to (wydaje mi się) grafik, choć również musi umieć myśleć logicznie i znać się na kodowaniu.
  2. Czas nauki Frontendu i Backendu. Zdaję sobie sprawę, że programowanie jako nauka i zawód wymaga ciągłego rozwoju i poznawania nowych technologii. Minie kilka lat zanim żółtodziób zdobędzie doświadczenie. Konkretnie - czy krócej trwa nauka Frontendu czy Backendu? Wpływ na to zapewne ma ilość technologii/środowisk, które programista danej dziedziny musi umieć.
  3. Czy łatwiej przejść (znając już jedno) z Frontendu na Backend, czy odwrotnie? Czy w pracy, mając do czynienia z zespołami tworzącymi jakiś projekt - bardziej przydają się pracownicy Frontendu czy Backendu?
  4. Sytuacja na polskim rynku pracy. Czy łatwiej jest znaleźć pracę jako Frontend czy Backend? W której dziedzinie poszukiwanych jest więcej osób? Czytałem też, że Back-Endowcy lepiej zarabiają.

Mam też pytania dotyczące technologii mobilnych - pisania aplikacji choćby na Androida. Słyszałem/czytałem, że to głównie Java. Czy to kwalifikuje się do Backendu czy jest traktowane jako odrębna dziedzina informatyki? I tak w skrócie: jak z trudnością nauki pisania aplikacji mobilnych do front/backendu? A potem, jak z rynkiem pracy Apki Mobilne vs Front/Backend?

Z góry bardzo dziękuję za rzetelne odpowiedzi.

0

czytam pierwszy punkt, ze do backendu wymagana jest matematyka, co jest bzdura (na ogol)

reszty mi sie nie chce czytac

temat poruszany na forum wielokrotnie. Poszukaj i poczytaj...

0

Szukałem i nie znalazłem konkretnych odpowiedzi. Fajnie by było taki temat podpiąć, bo zawarte w nim informacje mogłyby naprowadzać osoby zaczynające przygodę z programowaniem na to, czy wolą działać Frontendowo, czy Backendowo.

Odświeżam.

3
  1. Czy prawdą jest, że Front-End rzeczywiście jest prostszy w nauce? Słyszałem i czytałem, że do Back-Endu bardziej przydaje się/wymagana jest znajomość matematyki, rozwiązywania złożonych problemów logicznych. Jeśli to prawda, albo nie - mógłby ktoś przedstawić różnice w "profilu" osoby zajmującej się Front-Endem i Back-Endem? Tzn. np. Backend, to bardziej matematyk, a Frontend to (wydaje mi się) grafik, choć również musi umieć myśleć logicznie i znać się na kodowaniu.

Nie. Jedno z drugim nie ma nic wspólnego. Różnica najwyżej taka że frontendowcy muszą się lepiej znać na tym jak coś fajnie wyświetlić, a backendowcy jak coś efektywnie pobrać z bazy danych.

  1. Czas nauki Frontendu i Backendu. Zdaję sobie sprawę, że programowanie jako nauka i zawód wymaga ciągłego rozwoju i poznawania nowych technologii. Minie kilka lat zanim żółtodziób zdobędzie doświadczenie. Konkretnie - czy krócej trwa nauka Frontendu czy Backendu? Wpływ na to zapewne ma ilość technologii/środowisk, które programista danej dziedziny musi umieć.

Oba trwają długo.

  1. Czy łatwiej przejść (znając już jedno) z Frontendu na Backend, czy odwrotnie? Czy w pracy, mając do czynienia z zespołami tworzącymi jakiś projekt - bardziej przydają się pracownicy Frontendu czy Backendu?

Ani jedno ani drugie - jest równie trudno/równie łatwo. To zależy od projektu. Jak piszesz system który wykonuje kupę obliczeń a na koniec wyświetla "true" lub "false" to frontendowców zbyt wielu nie trzeba. A jak piszesz prostego CRUDa to backend można napisać w 1 dzień, a może potem chcesz to ładnie prezentować i będziesz miał cały zespół ludzi od frontu.

  1. Sytuacja na polskim rynku pracy. Czy łatwiej jest znaleźć pracę jako Frontend czy Backend? W której dziedzinie poszukiwanych jest więcej osób?

Myślę że bez różnicy

Czytałem też, że Back-Endowcy lepiej zarabiają.

A ja czytałem o smokach i czarodzejach. Ma to tyle samo wspólnego z rzeczywistością ;]

0

Co do ostatniego, to akurat się zgodzę, bo do backendu trzeba znać cięższe technologie i frameworki, bazy danych, itp., rzeczy do których nie każdy ma głowę, i są też mniej satysfakcjonujące, bo nie dają od razu efektu kilkugodzinnej pracy.
A HTML i CSS to się może każdy nauczyć, a efekt pracy zazwyczaj widać od razu.

0

A HTML i CSS to się może każdy nauczyć,

Backendu tak samo. Każdy kto chce i poswieci odpowiednią ilość czasu. I ma jakiekolwiek predyspozycje do tego.

a efekt pracy zazwyczaj widać od razu.

Teoretycznie. Praktycznie to praca frontendowca polega na ciągłym kombinowaniu/majstrowaniu. To nie jest tak, że napiszesz i coś widać, tylko czasem trzeba kombinować/tweakować style CSS w edytorze albo w DevToolsach, i ciągle coś nie wygląda tak jak trzeba. To bywa strasznie frustrujące.

A jak programujesz (w czymkolwiek, nawet po stronie frontendu w JS) to może efektu nie widać, ale jednak jest to coś twórczego, rozwiązujesz jakieś twórcze problemy (natomiast nie powiedziałbym np. że twórczym problemem jest decydowanie czy wstawić display: block, czy display: inline-block czy float: left. Owszem, na pewno przy większych rzeczach można się popisać trochę jeśli chodzi o nazewnictwo, mixiny w SCSS/SASS, reużywalność komponentów/szablonów etc. ale na takim podstawowym poziomie "ty i przeglądarka" jest to raczej monotonna robota).

Plus jest to trudne w testowaniu. Backendowiec sobie łatwo napisze unit testy i będzie je odpalał za każdym razem po zmianie kodu, a frontendowiec ma ciężej. Pół biedy jak jest to moduł w JS, ale jak np. przetestować wygląd strony i czy style CSS się prawidłowo nakładają, i czy nic się nie rozjeżdża? Na pewno można to zautomatyzować (Selenium itp.), ale też nie do końca.

Co do ostatniego, to akurat się zgodzę, bo do backendu trzeba znać cięższe technologie i frameworki,

do frontendu trzeba znać "lżejsze" technologie, ale jest ich chyba więcej. Ogarnij na dzień dobry HTML, CSS, JavaScript, jQuery, Angular, SASS, Bootstrap, Grunt, Jasmine, Mocha, NodeJS, Backbone, SVG i wiele innych (a wymieniłem tylko te bardziej popularne technologie...).

Jak tak patrzę na świat backendu to aż zazdroszczę trochę. Bo wydaje mi się, że jednak jest mniej do nauczenia się. Jakiś język, jakiś framework, SQL, kwestie bezpieczeństwa i ruszasz w świat (oczywiście zdaję sobie sprawę, że to bagatelizacja ;)

Frontend to (wydaje mi się) grafik,

No nie. Grafik to grafik, frontend to frontend. Grafik = Photoshop. Frontend = HTML/CSS/JavaScript. Tak w dużym uproszczeniu.
Jeszcze są rzeczy typu cięcie szablonów, które są gdzieś na zbiegu grafiki i frontendu... ;)

0

@somekind czy ja wiem? Może z 10 lat temu faktycznie tak było że frontend webowy to był sam html i css i ewentualnie trochę javascriptu. Ale dziś mamy spory wzrost zainteresowania frameworkami typu angular, backbone czy jquery. Na dobrą sprawę historia zatacza koło bo znów wracamy do "ciężkich klientów" tylko że tym razem są to klienci webowi.

1
LukeJL napisał(a):

Backendu tak samo. Każdy kto chce i poswieci odpowiednią ilość czasu. I ma jakiekolwiek predyspozycje do tego.

W backendzie jest jednak dużo więcej programowania, którego duża część ludzi nie rozumie. I szybciej nauczysz się jak zrobić coś bajeranckiego, coś co docenią zwykli ludzie we frontendzie niż w jakimś ciężkim backendowym frameworku.

Teoretycznie. Praktycznie to praca frontendowca polega na ciągłym kombinowaniu/majstrowaniu. To nie jest tak, że napiszesz i coś widać, tylko czasem trzeba kombinować/tweakować style CSS w edytorze albo w DevToolsach, i ciągle coś nie wygląda tak jak trzeba. To bywa strasznie frustrujące.

Wiem na czym polega ta praca, i uwierz mi, że w porównaniu z backendem, efekty są natychmiastowe. Sam zresztą piszesz o devtoolsach - widzisz zmianę jeszcze zanim zmienisz ją we właściwym kodzie. W backendzie tak się w zasadzie nie da, a kompilacja, redeploy aplikacji z bazą, itd., trwają, nie wspominając już o tym, że backend często w ogóle nie ma widocznej części.
Debugowanie we frontendzie też jest znacznie prostsze.

do frontendu trzeba znać "lżejsze" technologie, ale jest ich chyba więcej. Ogarnij na dzień dobry HTML, CSS, JavaScript, jQuery, Angular, SASS, Bootstrap, Grunt, Jasmine, Mocha, NodeJS, Backbone, SVG i wiele innych (a wymieniłem tylko te bardziej popularne technologie...).

Owszem, backend jest bardziej stabilny, nie pojawia się tyle nowych bibliotek i frameworków, co we frontendzie.

Shalom napisał(a):

@somekind czy ja wiem? Może z 10 lat temu faktycznie tak było że frontend webowy to był sam html i css i ewentualnie trochę javascriptu. Ale dziś mamy spory wzrost zainteresowania frameworkami typu angular, backbone czy jquery. Na dobrą sprawę historia zatacza koło bo znów wracamy do "ciężkich klientów" tylko że tym razem są to klienci webowi.

Ale nadal we frontendzie nie trzeba się zajmować serwerami, wielowątkowością, wydajnością zapytań SQL, wyciekami pamięci, itd.

0

Dziękuję za dotychczasowe odpowiedzi.
Jeśli programiści Frontendu cieszą się podobnym zapotrzebowaniem co Backendu, to dlaczego teraz jest taki boom na Javę, która to głównie używana jest w Backendzie?
Chciałbym po prostu dowiedzieć się, dla kogo lepszy jest Frontend, a dla kogo Backend. Jeśli backend to mechanika aplikacji, serwera, bazy danych; zaś frontend to tylko (albo "aż") wygląd strony i dopieszczanie detali - to czy w uproszczeniu można przyjąć, że Backend jest dla osób lepiej radzących sobie z rozwiązywaniem problemów logicznych, cechujących się lepsza analizą problemu i jego rozwiązaniem? Natomiast do Frontendu potrzeba poczucia estetyki, cierpliwości, częstszego "update'u" odnośnie nowinek w tej dziedzinie? Może infantylne to porównanie, ale chciałbym poznać taki "profil" programisty frontendu i backendu, żeby dowiedzieć się (w moim przypadku) "w którą stronę pójść". Bo jeśli sytuacja na rynku pracy jest podobna i w obu przypadkach trzeba umieć programować, ale ten efekt końcowy, tudzież podejście do tych dwóch "typów" programowania jest inne - to fajnie byłoby wybrać to, co jest dla kogoś przyjemniejsze, w czym będzie lepiej sobie radził i dzięki temu będzie wykonywał swoją pracę bardziej profesjonalnie.

1

Jako programista będziesz musiał szukać nowinek o Twojej dziedzinie do końca życia (ew. emerytury) bez względu na to w którą stronę pójdziesz. Taki nasz los.

Zauważ że każdy w tym temacie wypowiedział się po trochu na oba tematy, mimo że specjalizują się w jednym. Bo to nie jest tak że wybierasz sobie backend i zapominasz czym właściwie jest ten html. Dlatego moja propozycja jest prosta. Wybierz sobie jakąś technologię i napisz jakąś małą aplikację. Jak już to zrobisz to odpowiesz sobie czy bardziej podobało Ci się tworzenie strony wizualnej, czy raczej obmyślaniem tego co jest pod spodem. Bo nawet jeżeli programiści X zarabiają więcej od Y, to lepiej cieszyć się z pracy w Y i pokazywać klasę niż robić na odwal się w X.

@Edit

Jeśli programiści Frontendu cieszą się podobnym zapotrzebowaniem co Backendu, to dlaczego teraz jest taki boom na Javę, która to głównie używana jest w Backendzie?

Ja bym powiedział że jednak popyt na backendowców jest większy. Ale mimo to, zauważ że rzadko jest tak ze stosunek backendowców do frontendowców jest 1:1. Strony-wizytówki muszą być ładne i przyciągać klienta, ale jakiejś mega logiki nie wykonują więc starczy tylko frontendowiec. Z drugiej strony masz aplikacje bankowe które nie są widoczne dla klientów i nie muszą mieć pięknego gui, a wystarczy że wszystko jest czytelne. A pod tymi prostymi przyciskami siedzi cała masa kodu który muszą napisać backendowcy.

0

Wiem, że najlepiej sprawdzić sobie każdą technologie i wtedy okaże sie, czy to się podoba, czy nie. Uczę się tej Javy i nie wiem czy to mi się podoba. Bo przykładowo, taki programista Javy (czy ogólnie backendu) dostaje polecenie wykonania aplikacji, która ma mieć jakieś określone funkcje, w jakiś sposób działać. To ten backendowiec musi teraz te potrzeby przełożyć na kod, czyli zastanowić się w jaki sposób te funkcje zaprogramować - jakich metod użyć, ile zrobić klas, co po czym dziedziczy, jak to połączyć ze sobą aby działało. Zaś frontendowiec (tak mi się wydaje), ma już wytyczne co gdzie ma być umieszczone, jaki rozmiar/kolor, jakie efekty graficzne mają być i tak też piszę kod. Mam rację?

[edit]
Czy Frontend używany jest w aplikacjach mobilnych, czy ogranicza się on tylko do stron WWW?

0

Czy Frontend używany jest w aplikacjach mobilnych, czy ogranicza się on tylko do stron WWW?

Można stworzyć aplikacje na androida używając html/css/js

Bo przykładowo, taki programista Javy (czy ogólnie backendu) dostaje polecenie wykonania aplikacji, która ma mieć jakieś określone funkcje, w jakiś sposób działać. To ten backendowiec musi teraz te potrzeby przełożyć na kod, czyli zastanowić się w jaki sposób te funkcje zaprogramować - jakich metod użyć, ile zrobić klas, co po czym dziedziczy, jak to połączyć ze sobą aby działało

Frontend to też JS więc to też wymaga od Ciebie umiejętności programowania i logicznego myślenia

0

Zaś frontendowiec (tak mi się wydaje), ma już wytyczne co gdzie ma być umieszczone, jaki rozmiar/kolor, jakie efekty graficzne mają być i tak też piszę kod. Mam rację?

@Shalom pisał właśnie o tym, że frontend teraz to nie tylko graficzne bajery, tylko dużo frameworków na których możesz budować aplikacje używające backendu tylko jako serwisu do wysyłania danych, autentykacji itd. (np. REST), wszystko możesz renderować, rozdzielać urle po stronie klienta.

0

Czy obecnie we frontendzie używa się/pisze się/tworzy się algorytmy tak jak w backendzie? Czy jednak we froncie jest pod tym względem prościej i nie ma tak wiele "logiki" do napisania, ale jest dużo więcej budowania i korzystania z różnych szablonów?

0

Frontend opiera się głównie na JavaScript, więc trudno tu oczekiwać logiki i sensu.

A tak na serio, to jest to i to - frameworków coraz więcej, więc coraz więcej logiki i obliczeń wpycha się do klienta.

0

Czy Frontend używany jest w aplikacjach mobilnych, czy ogranicza się on tylko do stron WWW?

Rozdzielenie programu na frontend(interfejs, wygląd) i backend(bebechy) to wzorzec projektowy, więc pytanie tak postawione jest trochę od czapy. Aplikacje mobilne też mają swój frontend(wygląd), ale niekoniecznie pisany w JavaScript/HTML/CSS (chociaż czasem też się używa).

Czy obecnie we frontendzie używa się/pisze się/tworzy się algorytmy tak jak w backendzie? Czy jednak we froncie jest pod tym względem prościej i nie ma tak wiele "logiki" do napisania, ale jest dużo więcej budowania i korzystania z różnych szablonów?

To zależy od organizacji pracy. Nie ma tu nic wspólnego z technologią. Technologia pozwala na wszystko.

Natomiast to czy jako frontendowiec będziesz pisał logikę i algorytmy, czy może też budował szablony, a może nawet ciął rzeczy z Photoshopa, to już zależy od tego w której firmie się zatrudnisz, w jakim zespole, jakie będą obecne zapotrzebowania.

Tylko, że wiesz. Wbrew pozorom specjalizacja wcale nie jest aż tak pożądana w informatyce. Potrzeba osób wszechstronnych. Logiki może nie będziesz musiał pisać cały czas, ale warto żebyś to umiał. Bo inaczej będziesz zawsze juniorem, któremu trzeba pokazywać jak się coś robi, albo robić za niego trudniejsze kawałki kodu.

0

@Krzycho92 Zacznij cokolwiek z czasem poczujesz czy to to czy nie. Zobacz mineły 2 miesiące a Ty nadal stoisz w punkcie wejścia.

Przestań się bać że sobie nie poradzisz i zacznij kodzić.

Musi Ci frajdę sprawiać co robisz lub przynajmniej ciekawić.

Skoro tak się boisz tego backendu, to napisz CRUD-a . Jak skończysz sam orzekniesz czy to jest dla Ciebie czy nie. Na początku wszystko jest trudne potem coraz łatwiejsze.

Pamiętaj też że mamy pewną plastyczność mózgu i jeśli się przyłożysz za pare lat możesz być świetnym specem od kodu,od algorytmów. Zależy to głównie od nakładu pracy. Jesteś w stanie zostać średnim, czy nawet średnim+ backendowcem. Czemu pisze o backendzie? bo mam wrażenie że się go boisz.

Naprawdę można rozwinąć swoje umiejętności w pisaniu kodu, potrzebny jest tylko czas a no i chęci...

0

@lightinside Nie stoję w punkcie wejścia. Na początku marca jak spojrzałem na jakikolwiek kod (javy czy c++) to były to dla mnie hieroglify od początku do końca. Teraz już umiem coś prostego w javie napisać. Jednak ze względu na to, że na studiach nie można sobie pisać w jednym "środowisku", tylko poznaje się trochę strony webowej, trochę programowania i baz danych (co jest dobre, bo człowiek otrzymuje przekrój tego, co może robić, a potem jeśli chce wybiera sobie drogę i w niej się rozwija). Z drugiej strony, jak ktoś zaczyna od podstaw, to nie za bardzo może iść w jedno, bo nie starczy mu czasu na drugie i trzecie (mam na myśli nauczenie się tych mniej interesujących kogoś języków w stopniu pozwalającym na zaliczenie przedmiotu), a poza tym nie od razu wie co mu się podoba.
Na moim przykładzie, wiem że algorytmy jako takie nie są dla mnie (patrz: sortowanie, konwersje danych). Gdy widzę mnogość możliwości w takiej javie ... tablice jeszcze ok, ale: wskaźniki i referencje, listy, kolekcje, przeróżne wykorzystanie pętli, wypisanie funkcji która odwołuje się do obiektu + jakaś inna funkcja/obiekt/zmienna i to wszystko opakowane w kropki i nawiasy - to ja już się gubię. Nawet jeśli wygoogluje co to jest, to gdybym sam miał to napisać, to bym tego nie zrobił. W skrócie za dużo rzeczy (zmiennych, funkcji i obiektów) od czegoś zależy, do czegoś się odnosi; są pętle, trzeba to wszystko ogarniać. Nie każdy w tym się dobrze czuje. Ewentualnie, jest to kwestia przyzwyczajenia się.

Kolega od kilku lat robi we frontendzie i też mówi, że nie lubi pisać programów jako takich i myśleć nad algorytmami do nich. Dlatego mam nadzieję frontend, że to coś dla mnie, bo HTML i CSS z tego co się orientowałem są przyjemne (choć wiem, że potem dochodzi dużo frameworków i możliwości, a przez to i nauki tego wszystkiego) - nie wiem jeszcze jak do końca z JavaScriptem w porównaniu do Javy (tak, wiem że to całkiem odmienne języki, ale w obu są funkcje, zmienne, obiekty itd.), ale czytałem że jest przyjemniejszy w przyswajaniu.

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