Dlaczego nie da się nadgonić frontendu

Światek JavaScriptu, frontendu to jedno wielkie FOMO. Nie uważasz przez chwilę, to się okazuje, że już są kolejne frameworki do nauczenia, biblioteki do obczajenia, wzorce do zrozumienia. Zeszłoroczne dobre praktyki okazują się już przestarzałe i teraz już należy robić inaczej.

Można mieć na to wyjebane i robić swoje. I jest to podejście spokojnego programisty, który gdzieś tam klepie po firmach i ma fokus na dostarczanie tasków na produkcję, a nie na naukę frameworków dla frameworków. I to jest dobre podejście. Do czasu zmiany pracy. Bo wtedy się okazuje, że musisz się praktycznie od nowa uczyć masy rzeczy, frontend już jest inny, nie chcą cię już na rozmowach, bo nie znasz jakiejś tam nowej opcji w libce, która weszła akurat wtedy, jak byłeś zajęty pracą.

Więc co robić?

Można się uczyć na bieżąco nowości.

Skąd jednak wiedzieć, czego się uczyć? Cóż, najświeższa wiedza jest na Twitterze (no dobra, czasem świeższa wiedza jest na Githubie, Discordach itp. no ale na Twitterze ta wiedza jest najbardziej medialna). Wystarczy zasubskrybować popularnych tech influencerów i można mieć wiadomości z pierwszej ręki. Chcesz być na czasie z frontendem? Twitter jest twoim przyjacielem. Tam najbardziej wpływowi programiści JSa dyskutują o tym, co będzie modne w następnym sezonie. Oni już wiedzą, jakie biblioteki, wzorce, rozwiązania będą modne, a co będzie obciachem.

I w tym jest cały problem, niestety. Jakbym miał to określić jednym zdaniem, to określiłbym to w ten sposób, że na Twitterze odbywa się kółeczko wzajemnej adoracji, jeśli chodzi o influencerów związanych z JS i frontendem. Twórcy frameworków debatują w swoim gronie o tym, jak powinien wyglądać frontend.

I pewnie byłoby to trafne, jednak trochę złośliwe i przemykające się po powierzchni zjawiska.

Myślę, że problem jest bardziej złożony. Przede wszystkim wróćmy do ciebie. Jesteś sobie programistą z Polski, działasz na polskim rynku. Obserwujesz konta ludzi z FAANGów i modnych wielomilionowych startupów. To już jest problem. Naczytasz się o czymś nowoczesnym z Ameryki, myślisz, że ci coś da, a pójdziesz pracować do firmy w Polsce i okazuje się, że nie wszystko wygląda tak nowocześnie jak to wygląda na Twitterze.

Tu też trzeba wspomnieć o tym, że na Twitterze dużo rozmów technologicznych jest o tym, co jeszcze nie weszło, czego jeszcze nie ma, co może być, co ktoś by sobie życzył, żeby zaistniało. Śledzenie technologicznego Twittera to trochę jakby mieć info na rok do przodu względem tego, co jest faktycznie wymagane i używane na rynku. Trzeba brać na to poprawkę

Wracając do frontendowo-JSowych influencerów. Myślę, że ważne jest zrozumienie, kim oni są naprawdę i na czym zarabiają.

  • mogą być to ludzie, którym pracodawca płaci za robienie open source (np. twórcy Reacta, którzy pracują w byłym Facebooku, a obecnie Meta). Czyli naturalnie mają więcej czasu na zajmowanie się wszystkimi szczegółami technicznymi, każdą nowinką.

    Jeśli tobie nikt nie płaci za rozwijanie w godzinach pracy Reacta czy innej biblioteki open source, to normalne, że nie masz czasu na głębsze ich poznanie i gonienie, bo zajmujesz się czymś innym, pisaniem swojego spaghetti, jak każdy inny programista.

  • jeśli pracodawca im nie płaci, to i tak czynnik finansowy może być ważny. Dla ciebie to biblioteka open source, a dla gościa z Twittera część jego startupu, na którym zarabia. Dochodzi czynnik autopromocji (i promocji swojego rozwiązania). Twórcy takich startupów open source to po prostu sprzedawcy, którzy chcą, żeby każdy używał ich rozwiązania, bo później część z nich kupi płatną opcję. Dlatego sprzedają ci wizję, że coś jest super ważne, podczas gdy biorąc pod uwagę rynek pracy (szczególnie polski), niekoniecznie.
  • Dodajmy do tego osoby, które zajmują się robieniem kursów z JSa/frontendu. Ci to już w ogóle muszą gadać o bibliotekach, żeby zachęcić ludzi do zapisywania się na takie kursy. Bo jak ktoś ma się zapisać na kurs biblioteki X, jeśli nie zna tej biblioteki? Więc trzeba ją rozpromować. No i w ten sposób frontend idzie naprzód, a z roku na rok coraz inne biblioteki stają się modne, bo tak zadecydowali twórcy kursów.
  • Ludzie, którzy nie mają korzyści finansowych, ale chcą się promować dla własnej satysfakcji, bo zrobili bibliotekę open source i chcą, żeby stała się popularna.

Przy czym - zarabianie jest okej! Zarabianie jest fajne. Niezależnie, czy ktoś to robi na etat, ma startup, prosi o datki, czy robi kursy (sam myślę o robieniu kursów). Chodzi po prostu o to, żeby umieć spojrzeć krytycznie na takich sprzedawców z internetu. Nikt raczej nie zakłada konta na Twitterze, żeby sobie po prostu pogadać o technologii. Od tego jest Github, kanały na Discord, Hacker News, Reddit... A Twitter to głównie narzędzie autopromocji.

Jednak przez to i fakt, że każdy chce zarabiać na tym open source, to we frontendzie będą zawsze nowe frameworki, które nie muszą nawet niczego nowego wnosić, poza tym, że ktoś robi startup albo chce zaistnieć. Więc sorry, ale nie będziesz na czasie. Najlepsze co możesz zrobić, to samemu założyć bibliotekę open source i rozkminić sposób jej monetyzacji. Np. możesz zrobić bibliotekę specjalnie tak skomplikowaną, żeby móc zarabiać na kursach do niej.

Tylko, że zrobić i rozpromować bibliotekę open source to trudne zajęcie. Pewnie i tak ci się nie uda.

To co robić?

  • Częściowe/selektywne nadganianie - nie musisz wszystkiego znać, wybierz sobie rzeczy, w które wejdziesz mocniej i rzeczy, które będziesz ignorował. Ja np. ignoruję to, co się dzieje w świecie Angulara. Szczególnie, że tam niewiele się dzieje. Ostatnio czytałem, że angularowcy odkryli sygnały, coś, co było już od dawna dostępne choćby w Mobx czy w setkach innych bibliotek (różnie się to określa - atom, observable, signal).
  • Powierzchowne poznanie - no bo jest jakaś nowa biblioteka w JS, która staje się popularna i już ciężko ją ignorować. Czy to znaczy, że masz teraz poświęcić kilka tygodni na jej dogłębną naukę? Niekoniecznie. Często wystarczy poczytanie dokumentacji i zrobienie HelloWorlda w danej bibliotece. A to możesz zrobić w godzinę. Zaoszczędziłeś kilka tygodni nauki, a jesteś na czasie. No a czasem nawet nie trzeba robić HelloWorlda - możesz sobie włączyć na Youtube jakiś filmik o danej technologii - i w 15 minut się zorientujesz, po co jest dana technologia, jak działa i kiedy może się przydać.
  • Przeczekanie - niektóre technologie są jak przelotny deszcz. Teraz wszyscy o niej mówią, ale poczekaj pół roku i nikt nie będzie o niej pamiętał. No dobra, czasem rok, czasem dwa. A czasem biblioteka będzie dalej używana, ale w zasadzie okaże się, że jest to jakieś niszowe rozwiązanie, które i tak się nie przyjęło masowo. Możesz olać.

    Oczywiście, jakby się okazało, że coś jednak nie znika, a staje się popularne, to wtedy możesz zawsze się czegoś douczyć

Możesz również skupić się na tym, żeby mieć głębszą wiedzę, która tak łatwo się nie ulotni. Czyli umiejętność programowania ogólnego, projektowania architektury, zdrowy rozsądek programistyczny. Jak również zdolność szybkiej nauki czy wyszukiwania informacji. Ogólnie takie miękkie umiejętności techniczne - tj. związane z technologią, programowaniem, ale nie na zasadzie "znam framework", tylko na zasadzie "umiem programować software i jestem w stanie poznać nowy framework, jak będzie potrzeba". Wtedy masz większą możliwość manewru i jesteś w stanie szybko się dostosować do zmieniających się technologii.

Komentarze

  1. Głos rozsądku W tym kurwidolku samoliżących się po jajach ytuberow frontendowcow/fullstackowcow.

    OdpowiedzUsuń
    Odpowiedzi
    1. Nie nazwałbym tego aż tak dosadnie XD po prostu kółeczko adoracji ludzi, którzy pracują w modnych firmach albo robią modne biblioteki albo są aktywni w społeczności programistów itp. Robią ciekawy content i niektórzy mają nawet całkiem spoko, krytyczne podejście, ale jednak należą do kółeczka wzajemnej adoracji i można odnieść wrażenie, że to tacy celebryci wszyscy i że we frontendzie liczy się tylko to, co oni powiedzą, podczas gdy to po prostu najbardziej medialna twarz frontendu.

      Usuń
    2. Powiedziałbym, że wpis się źle zestarzał, gdyby nie fakt, że został napisany w 2023. Boom na nowy framework każdego dnia był gdzieś w 2018. Teraz jest spokojnie.

      Usuń
    3. Nie wiem, czy tak spokojnie. W samym ekosystemie React powstało już kilka frameworków webowych (choćby Next.js czy Remix) oraz ciągle się zmieniają mody np. na zarządzanie stanem, obsługę formularzy czy frameworki do CSSa (np. teraz Tailwind jest modny, ale ile to potrwa?) albo całe biblioteki do pobierania danych z serwera. Nie wiem, jak to wygląda w świecie Vue i Angulara, ale w ekosystemie React ciągle się coś zmienia.

      Usuń
  2. Dlatego osobiście frontasi traktujuę nieco z góry. Klepanie templatek w jsf wyewoluowało w stronętych wszystkich fancy javascriptowych frameworków ale jak przyjdzie co do czego, ja kzaczniesz z przeciętnym frontasiem gadać o skalowaniu, security, architekturze itp to nagle się okazuje, że nie masz o czym gadać bo większość problemów, przez ich aplikacje działające w przeglądarce użytkownika, nie istnieje.

    Może się wywyższam jako backend mający z tyłu głowy, że jak spierdolisz projekt api to będziesz za to płacił cenę bardzo długo ale takie mam odczucie.
    Jeśli chodzi o typowy backend nie dostrzegłem (jeszcze?) takiego zjawiska pseudo tech influencerów próbujących wyznaczać trendy. Może dlatego, że piszę w okropnej javie która stoi korporacjami i mój osąd jest mało miarodajny.

    OdpowiedzUsuń
    Odpowiedzi
    1. Może spróbuję to podsumować inaczej: niech sobie będzie że typowy frontend to programowanie ale często gęsto nie ma w tym krzty inżynierskiego feelingu ;)

      Usuń
    2. No ale frontend dzisiaj wymaga również wiedzy o wydajności, optymalizacjach, a jak masz dużą apkę, to również ważna jest architektura, żeby apka była utrzymywalna.

      Tylko, że faktycznie na frontendzie dużo osób nie wie, co robi. Trochę to kwestia wymagań pracodawców, którzy wymagają przede wszystkim znajomości frameworków/bibliotek. Więc ludzie się uczą tych bibliotek, ale mają niewielkie skille programistyczne. Więc efekt jest taki, że są apki używające modnych technologii, które są jednak słabo zrobione, zabugowane, niewydajne, ciężkie w utrzymaniu (no ale to argument za tym, że frontend jest jednak trudny, skoro przerasta wielu frontendowców).

      Tylko że na backendzie też masz dużo ludzi, którzy umieją głównie obsługiwać frameworki i nawet nie muszą robić niczego bardziej zaawansowanego. A jak już się biorą za zaawansowane koncepcje typu DDD, to później wychodzi cargo cult, bo nie rozumieją zasad tego, z czego korzystają.

      Usuń

Prześlij komentarz

Popularne posty z tego bloga

Absurdy Rekrutacji 2023

Przygody juniora (1)