Burnout sau boreout in frontend development - semi-rant

Salut,

Lucrez ca frontend developer de prin 2015, acum ma aflu intr-o pozitie ciudata unde nu mi-e clar daca am ajuns la burnout sau boreout, dupa cum spune si subiectul postarii. Simt ca am capatat ceva experienta si mi-e mai usor sa fac schimbari de cariera, dar a devenit un pic obositor sa tin pasul cu toate tehnologiile si metodologiile care apar peste noapte. M-as reorienta catre o alta ramura de software development si am inceput sa explorez alte limbaje.

In mod ciudat, simt ca acum cativa ani puteam gasi mult mai usor ce aveam nevoie pentru a creste. Acum, dupa un anumit prag, sa il numim mid/senior-ish, nu prea mai gasesc cine stie ce informatii, articole sau cursuri mai in-depth.

Ca sa nu ma mai lungesc, sunt curios daca v-ati lovit de ceva similar si cum ati reusit sa treceti mai departe? Ce ati invatat nou, ce v-a redat entuziasmul pt programare?

Eu am simtit asa plafonare cand munca mea de developer devenea destul de repetitva in cadrul proiectelor la care lucram si am realizat/descoperit ca imi trebuie o directie noua, iar acea directie s-a dovedit a fi DevOps/SRE si acum simt ca am renascut si mi-am recapatat entuziasmul.

Asta ti-as recomanda si tie, sa incerci o alta ramura, poate Data Engineering, poate ML Engineer in combinatie cu Python…

Informatiile/articolele sunt acolo, mai mult ca niciodata, trebuie doar sa stii ce te intereseaza.

Ce trebuie sa constientizezi e ca, In dependenta de ramura pe care o targetezi, sa zicem Data Engineer / ML Engineer / DevOps automat atragi un anumit tip de proiecte, mai mari, mai interesante…

3 Likes

Recomand la fel devops skills, poate fi extrem de util sa știi de pipeline-uri si kubernetes.

De învățat mereu va trebui să înveți, vezi sa nu fie burnout combinat cu depresie.

1 Like

Când ești la început - cum presupun că erai acum câțiva ani - ai puțină experiență iar orice informație este nouă. Dar, pe măsură ce avansezi, capeți experiență, capeți know-how și e din ce în ce mai greu să găsești informație cu adevărat nouă, de care nu te-ai lovit.

Eu încerc să combat treaba asta citind articole despre orice dev-related, indiferent dacă folosesc sau nu în mod direct.

Pe lângă multe abonamente la newslettere, am și asta: https://app.daily.dev/

2 Likes

Cred că este normală faza prin care treci. Cum a zis și iamntz, la început totul e nou, faci progrese mari zici de zi, însă ritmul încetinește pe măsură ce devii tot mai avansat. E normal.

Un reset te-ar putea ajuta cu asta, de exemplu un limbaj nou de programare, un framework nou, sau un nou domeniu (devops, ml). Ce ar trebui să știi dacă treci pe un limbaj nou de programare, sau un framework nou, e că s-ar putea să te lovești de lipsa de chef de învățat, că știi deja cum să faci ce vrei în limbajul/framework-ul pe care-l știi deja și să mai înveți un nou mod de a face lucrurile să pară inutil.

O altă metodă să te simți stimulat ca dev e să te apuci să rezolvi probleme de care te-ai lovit în munca ta. Trimite bugfixuri la framework-uri, optimizări, etc. Sau petrece timp prin issue queue-urile de la proiectele open source pe care le folosești și încearcă să vezi dacă poți ajuta, sau vezi cum folosesc alții proiectul respectiv (poți învăța abordări noi).

Si eu simt la fel. Ideea e ca frontend a devenit o harcea parcea de tehnologii si skilluri. Acum nu mai e de ajuns sa stii nitel HTML, CSS si jQuery.

Trebuie sa stii si cel mai nou si shiny framework de React de exemplu. M-am apucat sa invat Next.js 13 si pana sa ajung la partea cu app router si server components a aparut 14… Sa nu mai zic de Angular care e complet diferit intre v1, v2 si versiunile ulterioare. Adica e o alta librarie cu totul. Nu mai e de ajuns sa stii client side React, trebuie sa stii si server side rendering. Trebuie sa stii si putin Node.js, iar daca nimeresti vreun proiect sau feature unde ai nevoie de charturi, trebuie sa cunosti si un charting library. Din nou, daca se nimereste un proiect unde ai nevoie de date in timp real, trebuie sa stii si o librarie sau mai multe pentru data streaming. Acum mai nou nu mai e de ajuns sa stii REST, trebuie sa stii si GraphQL.

Chiar nu mai am rabdare nici eu la fiecare 3 luni sa invat cate o librarie noua. Si problema nu e neaparat ca sunt cine stie ce librarii greu de invatat. Problema e ca evolueaza prea rapid si se publica o multime de breaking changes de la o versiune la alta fara niciun fel de remuscari sau simt de raspundere. Si sunt efectiv prea multe. Si multe sunt adoptate masiv nu neaparat pentru ca ar fi foarte utile ci pentru ca majoritatea din sfera asta din frontend zici ca sufera de shiny object syndrome sau au ceva afectiuni mentale netratate.

E prea multa nebunie. Sunt la limita rabdarii si eu. Ma gandesc sa trec pe backend, dar Node in niciun caz. Probabil ceva matur si stabil cum e C#/Java sau PHP.

1 Like

Nu chiar, React e dezvoltat in principal pentru Facebook. Nevoile lor interne au dus la anumite feature-uri. Mai există și cerere din partea shopify de exemplu. (Streaming components)

Partea de server side e din cauza faptului că autorii React vor să se îmbogățească de pe urma cărților și serviciilor vândute. E.g. Cloudflare, Vercel.

Signals la Angular e super, au rescris și documentația și e mult mai bună ca înainte.

E greu front-end-ul, dar are farmec. Multe utilitare si pattern-uri noi sunt pentru optimizare la proiecte mari.

Cu react poți crea jocuri 3d, dar nu îți va cere nimeni asta. Majoritatea librăriilor de bază rezistă 2-3 ani cu mici schimbări și după apar major changes. De multe ori pentru a reduce din bug-uri sau ca să nu te lase să te împuști în picior.

Eu nu am burnout de la făcut ceva cu ceva nou. (It’s fun) Dar rapid am probleme cu concentrarea când trebuie să refac feature-uri existente în total alt stil, reparat/rescris teste s.a.m.d.

1 Like

Salut!

Multumesc tuturor pt raspunsuri, ma ajuta sa imi fac o idee in ce directii as putea sa merg.

@GarryOne Trebuie sa recunosc ca e prima data cand aflu de conceptul de Data Engineer si suna interesant, o sa caut mai multe pe subiectul asta.

Nu am o problema cu invatatul, imi place enorm sa fac asta. Cred ca cea mai mare problema acum la mine e ca la job fac lucruri care nu prea ma mai stimuleaza, dar am si un fear of missing out cand e vorba de invatat. Am senzatia ca nu stiu destul de mult, ca iarasi apare ceva nou si trebuie sa invat si nu stiu daca e ceva ce ramane in picioare mai mult timp sau dispare dupa 1 an. Cred ca in frontend la fiecare luna vine cineva si spune ca framework-ul/libraria X/Y/Z o sa fie React/Vue etc. killer.

Mersi de sugestie! Nu am mai intrat pe Daily.dev de ft mult timp, mi-am facut din nou cont azi. Mai intram pe dev.to, dar acolo ma lovesc de problema pe care ai mentionat-o si anume ca nu prea mai gasesc informatie cu adevarat noua.

Da, fix de asta m-am lovit recent. Am inceput sa invat Elixir, am zis sa ma duc un pic mai departe de JS si React, m-am gandit ca poate daca e o alta paradigma o sa ma tina mai interesat. Am reusit o vreme, dar nu prea am gasit unde as putea aplica ce invat si am lasat-o mai moale.

Ai descris mult mai bine decat mine cam care e si senzatia mea. Si mi se pare ca lucrurile accelereaza din ce in ce mai tare. Poate am eu o parere gresita, dar pare ca pe backend lucrurile sunt mult mai stabile, facut cu mai mult simt de raspundere.

Mie imi pare toata problema asta o combinatie din un caz de “the grass is greener on the other side” si faptul ca web development-ul (in special frontend) e intrinsic dificil.

Lucrand cu cateva din aceste tehnologii as vrea sa adaug cate ceva:

Angular de la v1 la v2 a fost o schimbare imensa dar, lucrand cu ambele, era clar ca v1 nu se scala deloc la proiecte mijlocii/mari si, long-term a fost o alegere foarte buna sa schimbe foaia complet. De la v2 abia am observat schimbari in modul de lucru. Avem un proiect inceput in Angular 7 de acum 4 ani si, in toti acesti ani, nu a trebuit sa rescriu nimic strict legat de framework (schimbarile majore pentru noi fiind Typed Reactive forms care inca au backwards compatibility si, la update, le porta frumos pe cele existente si utilitarul toPromise din rxjs care e deprecated dar functioneaza). Proiectul fiind acum pe Angular 16 (si nici schimbarile de signals nu par a fi breaking).

Totodata, backend-ul pentru proiect e in NodeJS, folosind Express si TSED. Fac update la frameworks cam o data la 6 luni. Uneori pateam sa se schimbe 1-2 functii la update, dar niciodata nu mi-am pierdut mai mult de jumate de zi pentru update-ul lor. Granted, dpdv al performantei nu mai recomand un backend in Node.

Ca si limbaj PHP nu pare deloc matur si nici stabil. Limbajul vine cu breaking changes de la o versiune la alta (multe librarii facute pentru 8.0, 8.1, 8.2 nu sunt compatibile daca le rulezi pe versiunea gresita de 8.x). De obicei ai un trade-off intre performanta, ease-of-use si legibilitate a codului… dar in PHP experienta mea personala a fost ca le pierzi pe toate.

Si C# a avut o perioada mai ciudata pe vremea .NET 3.5 cand faceau tranzitia la .NET Core. Totusi, nu am lucrat destul sa cunosc asa bine.

Si de retinut ca si Java are multe versiuni care se schimba de la an la an (programe scrise pentru Java 17 nu merg pe Java 11 sau 8, no backwards compatibility din nou). Pe cat imi place limbajul, Java are cel mai prost package manager conceput vreodata: Gradle (package manager-ul din Java) e un mare black box si niciodata nu stie ce si de ce nu face ce trebuie pentru ca ascunde foarte multa functionalitate sub niste instructiuni simple dar constant deprecated. Si acum, facand deploy la aplicatii PWA pentru Android ma zbat uneori cu el.

Concluzia e ca tehnologiile (in general) se schimba. Si se schimba des. Noi, ca programatori trebuie sa ne adaptam constant deoarece, la cum arata domeniul de AI, schimbarile vor accelera in viitorul apropiat.

Eu cred ca sunt mici sanse sa lucrezi vreme indelugata in JavaScript si volum serios de cod fara sa dai in depresie. Pe mine ma inteapa numai cand vad surse JS si nu pot sa il suport de cand scriam primele linii pe vremea lui Internet Explorer 5. Noroc ca nu mi-a fost niciodata limbaj principal sau de volume mari de cod. Cand s-a trecut de la AngularJS la Angular am zis ca mie imi ajunge.

Ceva e putred pentru mine in tot ecosistemul asta JS. Nu pot sa il iau in serios cand:

  1. exista un pachet node de 12 linii de cod care face left-pad/left-trim
  2. pachet descarcat de 2,5 de milioane de ori pe luna si folosit de nenumarate alte pachete
  3. a fost dat jos intr-o zi de autor si au picat buildurile pentru un sfert de internet

Fiecare punct de mai sus luat individual e o gluma proasta. Apai toate la un loc?

Dar se poate mai rau:

There’s a package called isArray that has 880,000 downloads a day, and 18 million downloads in February of 2016. It has 72 dependent NPM packages. Here’s its entire 1 line of code:

return toString.call(arr) == '[object Array]';

Si autorul se intreaba Have We Forgotten How To Program? Eu suspectez ca lumea JS e plina de oameni care nu au stiut niciodata sa programeze, ca numai asa se pot naste monstruozitățile astea.

Nu putea sa inventeze un scenarist povestea asta. Cum minune sa iei in serios bullshitul asta de JavaScript-world?

Pentru mine e o placere sa scriu sau sa citesc Python. Mai repede as renunt la cafea decat la Python.

3 Likes

Aici ai zis foarte bine.

Nu e vorba ca putem scapa de schimbare, dar ar fi bine sa nu fie in fiecare vara si se poate face mai cu raspundere. Python au intins pe multi ani trecerea de la 2 la 3, aveai in 2 from __future__ import si alte unelte ca sa iti pregatesti codul de trecerea la 3

Eu cand am trecut de la PHP la Python am simtit ca sunt in lumea oamenilor mari (asta in conditiile in care programam deja de vreo 10 ani full time, am facut algoritmica serios inca de copil si trecusem deja prin cateva limbaje).

Acum sunt lucruri fumate si se regasesc in toate limbajele si framework-urile, dar prin ~2010 m-a fascinat abordarea pur si simplu profi:

  • virtual environment
  • ORM construit frumos din reflection pe DB sau invers (de pe cod)
  • admin generat automat
  • ideea de background workere si scalarea lor multi-masina

Si multe alte idei care mi-au zis: you’re doing things wrong.

Un ecosistem al unui limbaj e ca in viata: esti media oamenilor cu care te insotesti.

2 Likes

ah, vremurile alea cand te intrebai cat de important mai e sa faci layoutul citibil si pe rezolutii de 800x600 sau sa il optimizezi doar pentru 1024x768 :slight_smile:

1 Like

Sunt de acord cu ce spui tu, darrrrr nu sunt foarte sigur că e o problemă să ai un pachet de 12 linii. Unde tragi linie[1] și decizi că extragi într-un pachet sau nu? 20 linii? 100? 84? Sau extragi într-un pachet doar dacă-i complex? Dar cum măsori complexitatea? :smiley:

Eu folosesc common sense. Dacă e un pachet ce pare destul de simpluț, îl includ direct în codul meu (e.g. în /utils/vendor). Dar nu e ceva previzibil, e greu de zis cum aleg ce este inclus așa și ce este în node_modules :person_shrugging:. Posibil ca la un proiect să fie într-un loc dar la alt proiect să fie tras din NPM.


  1. no pun intended. ↩︎

La fiecare 6 luni trec printr-o criza de genu asta, dupa care se intampla cate ceva si imi schimb brusc parerea cand vad cum se fac de fapt banii in realitate. Am ajutat acum cateva zile pe cineva cu un proiectel mic in care avea un blocaj, niste chestii cum zic multi plictisitoare si neinteresante, 1000 de euro pe ziua de munca face baiatu cu niste mizerii de librarii de harti in js/ts si niste pluginuri de wordpress in php.

Realitatea e complexa si s-ar putea sa alergi degeaba dupa ultimele tehnologii cand tu nici nu le folosesti la maxim pe cele pe care deja le cunosti.

1 Like

si ce te opreste sa faci si tu? :slight_smile:

Poti sa folosesti maven in loc de gradle.
Java pe Android este mai special decat ala pe web :grin:

Le: Asta daca nu este pe Android.

1 Like

Gradle e foarte fainut, am facut chestii SF cu el, l-am folosit inclusiv pentru build la un proiect de JS(TS) + Kotlin in monorepo fiindca face cache intermediar la build si dependinde pentru pipeline-uri. (era o solutie mai buna ca si cache intr-o imagine docker)

Problema e ca e destul de complex, ai limbajul groovy si poti sa faci cam orice vrei cu el. Cealalalta problema e ca poti face acelasi lucru in 10-20 de moduri.

Iti recomand datacamp.com, cred ca sunt cei mai buni, sau te ajuta cel mai mult ca sa faci tranzitia spre o pozitie de Data Analyst/Engineer.

Se discuta intens despre AGI. Banuiesc ca nu mai dureaza mult. Daca AI va inlocui in oarecare masura fontendu’, eu as vrea sa stiu cat mai multe despre cum as putea sa folosesc AI.
APIs, APIs, APIs. Cu OpenAI lucrez zi de zi. Anthropic nu par sa fie departe, llama au si ei ceva performante cu ultimu’ 70b model, Musk are intentii serioase cu Groku’.

Cine tine un pariu ca in maxim 2 ani cel putin 50% din developeri va fi jobless?

Deja e de cateva luni hype-ul cu AI si inca nu a aparut nimic concret care sa inlocuiasca front-end developerii. Poate ca le-a oferit tot lor anumite tool-uri extra e altceva.

Faptul ca acum poti genera niste template-uri random folosind ceva AI prompt nu e cu mult diferit de a cumpara ceva tema de pe themeforest.
Acelasi lucru si pentru librariile de UI, erau deja la liber pe internet de multa vreme.
Tot ceea ce acum poti “genera” ca sa iti dea un boost de performanta si eficienta, exista deja trebuia doar cautat.
Iar acum frontend developerii au oricum atributiuni mult mai vaste decat sa converteasca ceva design in html/css. Pe ce pariezi tu defapt e o evolutie a frontend developmentului sau poate o schimbare a metodologiei de lucru si nu sfarsitul propriu-zis.
In momentul de fata exista companii de indieni care genereaza template-uri mai rapid decat AI-ul, de ei de ce nu se teme nimeni?

In cazul in care va aparea ceva revolutionar pe piata care sa schimbe cu totul datele problemei, foarte bine. Cei buni se vor adapta in continuare, domeniul e foarte vast. Pentru ceilalti, pana la urma nu e o rusine sa lucrezi in alt sector de activitate.

Asta nu din cauza AI-ului, ci pentru ca s-au infiltrat niste persoane care nu aveau ce sa caute in domeniu din start. In ultimii ani oricine a terminat un curs de o luna a devenit front-end developer cu pretentii salariale astronomice ( dar cei buni vor ramane in continuare ).
Cat timp aduci +valoare nu te va da nimeni afara, la asta se rezuma totul.

5 Likes