To nie oszust: walka ze zmęczeniem front-endu
Opublikowany: 2022-03-10Niedawno rozmawiałem ze znajomym programistą back-end o tym, ile godzin spędzam na kodowaniu lub uczeniu się kodu poza pracą. Pokazał mi fragment z książki Wujka Boba „Clean Code”, w którym porównuje godziny, jakie muzycy spędzają ze swoimi instrumentami, przygotowując się do koncertu, z programistami ćwiczącymi kod do wykonania w pracy.
Podoba mi się analogia, ale nie jestem pewien, czy w pełni się pod nią podpisuję; to właśnie ten rodzaj myślenia może przede wszystkim spowodować wypalenie. Myślę, że to wspaniale, jeśli chcesz rozwijać swoje rzemiosło i poszerzać swoje umiejętności, ale robienie tego o każdej porze dnia nie jest zrównoważone.
Zmęczenie front-endu jest bardzo realne. Widziałem wiele postów na temat zmęczenia JavaScriptem, ale myślę, że problem rozciąga się dalej niż ten konkretny język.
Żeby było jasne, to nie jest kolejna tyrada o tym, że wszystko jest złe i wszystko toczy się zbyt szybko — uwielbiam, że technologia rozwija się tak szybko. Równie dobrze mogę docenić, jak to może być przytłaczające i na pewno czasami czułem się wykończony.
Dalsze czytanie na SmashingMag:
- Brudne sztuczki z ciemnych zakątków front-endu
- Oda programisty front-end do specyfikacji
- Jak przygotować się do rozmowy kwalifikacyjnej?
O ile wiem, jest to problem dwutorowy .
Po pierwsze, jako programista front-end uważasz, że powinieneś mieć w swoim arsenale wszystkie następujące elementy:
- HTML (pisanie czystego, semantycznego znacznika)
- CSS (modułowy, skalowalny)
- Metodologie CSS (BEM, SMACSS, OOCSS)
- Preprocesory CSS (coś jak LESS, SCSS, PostCSS)
- Nowoczesny CSS (Flexbox, Grid)
- JS
- Współczesny JS (ES6, maszynopis)
- Frameworki JS (Angular, React, Vue [wstaw najnowsze tutaj]
- Metodologie JS (Programowanie funkcjonalne, OOP)
- Biblioteki JS (Immutable, Ramda, Lodash)
- Responsywne zasady projektowania
- Testowanie (TDD)
- Testowanie frameworków (Jasmine, Karma)
- SVG
- WebGL
- Techniki animacji
- Dostępność
- Użyteczność
- Występ
- Narzędzia do budowania (skrypty Grunt, Gulp, NPM)
- Pakiety zasobów (WebPack, Browserify)
- Ekosystem NPM
- Znajomość różnych dziwactw przeglądarek
- Zwinne metodologie
- Kontrola wersji (zwykle Git)
- Podstawy projektowania wizualnego
- Umiejętności miękkie, zarządzanie czasem
- Podstawowe zrozumienie dowolnego używanego języka zaplecza
A na dodatek albo bawisz się lub patrzysz na takie rzeczy jak:
- Pracownicy usług
- Progresywne aplikacje internetowe (PWA)
- Komponenty internetowe
Po drugie, twoja codzienna praca prawdopodobnie nie obejmuje wszystkiego i nie daje ci czasu na nauczenie się wszystkiego, więc jak masz się upewnić, że masz do dyspozycji wszystkie narzędzia?

Teraz jako konsument możesz:
- Subskrybuj kilka różnych cotygodniowych biuletynów programistycznych
- Przeszukaj swój kanał na Twitterze
- Uczestniczyć w cotygodniowym nadrabianiu zaległości w pracy zespołu Front-end
- Miej kanał na Slacku poza pracą z garstką programistów, z którymi również rozmawiasz w sklepie
- Śledź samouczki online (które, miejmy nadzieję, nie są nieaktualne)
- Skorzystaj z witryny szkoleniowej z kursami wideo, takiej jak Frontend Masters
- Kup książki o programowaniu internetowym (które, miejmy nadzieję, nie są nieaktualne)
- Weź udział w spotkaniach
- Weź udział w konferencjach
- Weź udział w szkoleniach
Jako współtwórca możesz:
- Pisz blogi/artykuły w czasopismach
- Baw się w mowie
- Uruchom podcast
- Wkład w projekty open-source
- Mieć własne projekty poboczne
Ostatnio zauważyłem, że moja uwaga jest podzielona na trzy sposoby, trzecią skupiałem się na pisaniu kodu, ze słuchawkami na półsłuchaniu dyskusji o kodzie podczas rozmowy na Slacku o kodzie. Uznałem, że wystarczy — każdy otwór był zatkany kodem i byłem wyczerpany psychicznie.
Chociaż jest to z pewnością skrajny koniec, jestem pewien, że inni z was doświadczyli czegoś podobnego. Poza tym prawdopodobnie masz pracę na pełen etat, rodzinę, przyjaciół, hobby. Nic dziwnego, że tak wielu z nas czuje się wypalonych i zastanawia się, czy dokonaliśmy właściwego wyboru kariery .
Niektórzy z moich kolegów z front-endu wyrazili zainteresowanie spakowaniem tego wszystkiego i zmianą pracy na taką, w której mogą wyłączyć się o piątej. Ale część mnie uważa, że ta praca przyciąga pewien typ osoby i gdybyśmy mieli to wszystko wyrzucić i zamiast tego zostać agentem nieruchomości, nadal chciałbyś być najlepszym agentem nieruchomości, jakim możesz być. Uczestnictwo w spotkaniach agencji nieruchomości i śledzenie trendów cenowych domów w wolnym czasie. Wiele księżyców temu pracowałem w finansach i nadal studiowałem wieczorami i czytałem, aby zdobyć jak najwięcej umiejętności w wybranej przeze mnie dziedzinie.
Nie jesteśmy sami w tej dyscyplinie, wiele zawodów wymaga solidnego zaangażowania i nauki poza pracą. Może rzecz w rozwoju front-endu polega na tym, że technologia ewoluuje tak szybko , że wydaje się, że ktoś ciągle przesuwa słupki celu. Wygląda na to, że co drugi dzień otrzymuję wiadomość e-mail z informacją, że technologia „XYZ” nie działa. Co z pewnością nie może być prawdą, ponieważ w przeciwnym razie nie mielibyśmy żadnej technologii.
Ekosystem jest w stanie ciągłych zmian i myślę, że to może być dobre. Osobiście uwielbiam być w roli, w której mogę stale się uczyć, rozwijać i naciskać, ale to nie znaczy, że czasami nie czuję się przytłoczony.
Mając to na uwadze, oto kilka rzeczy, o których staram się pamiętać , aby nie eksplodować mojej głowy, a także kilka ogólnych porad, jak uniknąć zmęczenia.
Wszyscy jesteśmy w tym razem
Twórcy, których znam, zarówno w pracy, jak i poza nią, należą do najmądrzejszych ludzi, jakich znam. Ale wszyscy czują się przytłoczeni. Większość ma jakąś listę życzeń dotyczących technologii, których próbuje się nauczyć. Może istnieć garstka ludzi, którzy wszystko wiedzą i są na szczycie wszystkiego, ale większość z nas znajduje się dokładnie w tej samej sytuacji.

Wszyscy nadal polegamy na Google i Stack Overflow, które pomagają nam przetrwać dzień, i mamy zbyt wiele otwartych kart wypełnionych odpowiedziami na pytania dotyczące sieci. Nie jesteś sam!
Ciesz się wiedząc, że nie jesteś złym programistą tylko dlatego, że nie próbowałeś jeszcze tego, czego używają fajne dzieciaki.
Tak, nawet „osoby internetowe” są w tym samym miejscu…
Nie ma mowy, abyś wiedział wszystko, a twórcy rocka, których śledzisz na Twitterze, są naprawdę dobrzy w kilku obszarach. Zauważysz, że są to te same obszary, z których słyną. Znowu będą wyjątki, ale to po prostu ludzie tacy jak my. :)
Syndrom oszusta jest prawdziwy i wszyscy go mamy
Znam kilku świetnych programistów front-end, którzy nie będą ubiegać się o stanowiska, ponieważ czuliby się jak oszust, nie znając wszystkich wymagań dotyczących opisu stanowiska. Cytując jeden z nich:
„90% JD-ów, które widzę, sprawia, że myślę „Argh, jestem tak w tyle!” W rzeczywistości tak bardzo mi to przeszkadza, że zastanawiam się nad pozostaniem na mojej obecnej roli i po prostu staram się wycisnąć więcej pieniędzy po prostu dlatego, że czuję, że „uszło mi na sucho”.
Faktem jest, że większość tych specyfikacji pracy to farsa. Mój przyjaciel Bard zebrał ten wspaniały obraz, który pokazuje różnicę między tym, co mówią specyfikacje front-endowe, a tym, co mają na myśli.

Tylko pamiętaj, będzie dobrze . Na początku każdej pracy, którą wykonywałem, czułem się nieswojo, ale w końcu przyzwyczajasz się do ich narzędzi i przepływu pracy, uczysz się i stajesz się lepszym programistą.
Nie bój się uczyć w pracy, najlepszym sposobem na zdobycie nowych umiejętności jest używanie ich na co dzień.
Jeśli masz syndrom oszusta, prawdopodobnie jesteś przyzwoitym programistą, ponieważ w przeciwnym razie nie byłbyś wystarczająco świadomy, by to sobie uświadomić.
Zablokuj swoje podstawy
Łatwo jest rozpraszać się błyszczącym i nowym, ale jeśli twoje fundamenty nie są solidne, szanse na to, że budujesz, nie przetrwają próby czasu.
Jak powiedział mi kiedyś mój dobry przyjaciel:
„Skupienie się na podstawach zawsze było moją mantrą. Jeśli potrafisz budować dobre gówno i rozwiązywać problemy, to tylko to się liczy, to jak je rozwiązujesz (narzędzia) zawsze się zmienia”.
Na przykład, gdy React zdobył sławę, zawsze wydawał się być powiązany z ES6, a ja skupiłem się na tych zmianach lub dodatkach do języka, a nie na niuansach samego frameworka. Gdy React zniknie, wiedza, którą zdobyłem dzięki najnowszemu waniliowemu JavaScriptowi, będzie nadal funkcjonować. Wiele funkcji, z którymi możesz się bawić natywnie w Chrome, nie musisz ciągnąć Babel i ugrzęznąć w piekle zależności, aby się z nim bawić.
Nie musisz się wszystkiego uczyć
To jest naprawdę kluczowe. Nie sądzę, że to nowe frameworki, biblioteki i moduły nas zabijają, to nasze własne przekonanie, że musimy się ich wszystkich nauczyć.
W nauce uważam, że najlepiej jest się skoncentrować — w tej chwili zagłębiam się w funkcjonalne programowanie JavaScript w ES6.
Na mojej liście jest mnóstwo innych rzeczy, których chciałbym się nauczyć, ale staram się nie rozpraszać. Na przykład chciałbym odświeżyć swoją wiedzę o dostępności, pobawić się Polymerem i zagłębić się w najnowsze techniki CSS, takie jak Grid, ale jeśli zacznę czytać o zbyt wielu różnych obszarach jednocześnie, nie zachowam wszystkich informacji. Te inne rzeczy nigdzie nie idą, dotrę do nich, kiedy do nich dotrę.
Unikaj pośpiechu, aby spróbować skonsumować wszystko na dany temat. Nie spiesz się i upewnij się, że dokładnie to rozumiesz.
Jeśli jesteś podobny do mnie, będziesz miał stale rosnącą listę, ale nie bój się usuwać z niej przedmiotów. Nie we wszystko warto inwestować czas i należy spróbować rozpoznać, czego warto się nauczyć, a co prawdopodobnie zniknie za kilka lat. Poświęcenie czasu na nauczenie się programowania wzorców projektowych i technik architektonicznych zawsze będzie bardziej korzystne na dłuższą metę, zamiast przeskakiwania do obecnej popularności w krainie ramowej. Skończysz dopiero po krótkim czasie, aby ponownie zagrać w modne bingo.
Większość firm nie korzysta z technologii Bleeding Edge
Pojawia się wiele nowych rzeczy, sieć rozwija się w zawrotnym tempie, ale zazwyczaj minie dużo czasu, zanim firmy zaczną wdrażać te nowe technologie. Większość firm poczeka chwilę, aż technologia dojrzeje i zobaczy, jak sprawdzi się w praktyce.
Angular powstał sześć lat temu i po raz pierwszy zacząłem pracować w startupie, który trzy lata temu zdecydował, że to dla nich framework. Reactjs istnieje od nieco ponad trzech lat, a moja obecna firma zaczęła go używać tuż przed świętami Bożego Narodzenia. Jestem pewien, że w tym czasie pojawiło się i zniknęło wiele innych frameworków. Gdybym skoczył na nich wszystkich, zwariowałbym.
W świecie CSS Flexbox jest dostępny od 2010 roku — sześć lat temu! Obsługa przeglądarek jest nadal ograniczona. Zaczęliśmy używać go w produkcji na początku tego roku, ale nie widzę, by był używany w innych miejscach na wolności.
Chodzi mi o to, że nie ma pośpiechu, aby nauczyć się wszystkich rzeczy, podczas gdy technologia może działać szybko, Twoi potencjalni pracodawcy działają w znacznie wolniejszym tempie. Nie musisz wyprzedzać zakrętu, tylko upewnij się, że masz oko na jego trajektorię.
Im więcej się dowiesz, tym więcej odkrywasz, że nie wiesz, i to jest w porządku
To jest całkowicie normalne. Kiedy zaczynasz, nie wiesz, czego nie wiesz. Potem uczysz się kilku rzeczy i decydujesz, że jesteś geniuszem. Potem stopniowo ta fantazja się rozwija i zaczynasz rozumieć, jak wiele jest tam, czego nie wiesz.
Zasadniczo, im więcej zdobędziesz doświadczenia, tym głębiej wejdziesz w pustkę. Musisz się z tym pogodzić, inaczej cię pochłonie. Jeśli już, to uczucie powinno dać ci pewność, że zmierzasz we właściwym kierunku. Szanse są takie, że w naszym wybranym zawodzie nigdy nie będziesz mógł wygodnie zasiąść na tronie zbudowanym z całej wiedzy front-endowej.
Nie spędzaj całego wolnego czasu na nauce
Łatwo jest poczuć, że jesteś tak daleko w tyle, że musisz programować i uczyć się każdej minuty. To bilet w jedną stronę do wypalenia. Poświęć trochę czasu na rozwijanie swoich umiejętności, sprawdź, czy możesz wynegocjować trochę czasu ze swoim szefem, aby było to zaplanowane, a resztę czasu spędź na robieniu tego, co kochasz.
Miałem kilka objawień związanych z kodowaniem na siłowni. Ćwiczenia są niezwykle ważne zarówno dla Twojego umysłu, jak i ciała. Staraj się robić co najmniej 20–30 minut dziennie, aby zachować trzeźwość umysłu i zapobiec wypaleniu.
Znajdź czas dla rodziny i przyjaciół — staraj się nie rozmawiać z nimi na zakupy!
To rynek deweloperski
Nie martw się o znalezienie pracy już teraz. W tej chwili jesteśmy w bardzo szczęśliwej sytuacji, gdzie jest więcej ról niż programistów do ich wypełnienia. Nie wiem, jak długo to potrwa, ale wykorzystaj to teraz!
Możesz znaleźć pracę, nie wiedząc o wszystkim. Odkryłem, że w wywiadach, które przeprowadziłem, 99% ludzi całkowicie to przeklina.
W najgorszym przypadku pamiętaj, że w starszym kodzie jest złoto. Jeśli jesteś programistą, który kocha stare sposoby, zawsze znajdą się firmy, które utkną w starszych technologiach, które potrzebują programistów do pracy nad ich oprogramowaniem.
Wniosek
Mam nadzieję, że niektóre z tych wskazówek pomogły złagodzić niektóre z frustracji, które możesz odczuwać. Najgorszą rzeczą, jaką możesz zrobić, jest dotarcie do krawędzi i całkowite wypalenie, ponieważ kiedy już jesteś, bardzo trudno jest odzyskać pasję, którą miałeś do tego, co robisz i dlaczego zacząłeś to robić w pierwszej kolejności.
Udanego kodowania!