Stop _learning_ frameworks

Si daca @tacheshun zicea ca si topicurile sunt offtopic, un topic mai pe topicul forumului :smiley:

Si comentariile la articol mi se par ca merita citite.

O alta discutie, oarecum in tema

3 Likes

(n-am citit) dar ce faci cînd angajatorii vor experiență în utilizarea framework-urilor? ReactJS, Angular, Ruby on Rails, etc, șamd

2 Likes

Cred ca poate fi un posibil raspuns

Sau, daca ai ceva skill-uri mai aporfundate intr-unul din ele, vezi daca le poti refolosi. O cunsostinta a lucrat pe Angular, cei drept avea ceva experienta si a trecut pe React. Mi-a spus ca au ajutat-o cunsostintele din Angular.

Pentru mai multe detalii, predau legatura colegilor mai experimentati de pe forum :smiley:

Uneori vad tot felul de tehnologii trantite aiurea prin anunt inca am impresia ca nici recrutorii nu stiu ce vor :slight_smile:

Asta pare din filmul “ce articol sa fac impotriva curentului ca sa dea clic lumea”.
Pot sa mai dau idei: “viata fara paine”, “programare din mouse”, “12 metode sa devii destept fraiere”

5 Likes

De multe ori e o prostie ce cer.

Chiar am vrut sa deschid un subiect pe tema asta, in urma postarii unui job care cerea x si y si z, dar am renuntat deocamdata.

Am ajuns la concluzia asta de multa vreme. Acum invat ceva daca am nevoie de acel ceva. Sau daca imi trezeste interesul, dar trebuie sa fie ceva mai mult decat newandfancynamedjabascriptframework sau bullshit.net.

Amuzant articol scris asa condescending, ma indoiesc ca conversatia aia chiar a avut loc, inveti ce trebuie, 90% din ce inveti e nefolositor dar nu stii care 10% e folositor, cand o sa iti bage 2 intrebari la interview despre react sau angular, spring, si nu iei jobul, mai citesti odata articolul sa te consolezi.

2 Likes

Am citit doar „conversația”, restul în diagonală. Mi-a sărit în ochi asta:

Mentor: “Technology come and go, but it has a lot in common. Set priorities right. Invest 80% of your learning time in fundamentals. Leave 20% for frameworks, libraries and tools.”

Am impresia că articolul se adresează celor care intră într-o categorie tot mai … aglomerată în ultima vreme. E.g.

  • Sunt WordPress developer (sau Laravel, Cake, Zend, ce-naiba-e-la-modă). Dar nu știu PHP.
  • Sunt React/Vue/Angular developer. Dar nu știu JS.
  • Sunt Rails developer. Dar nu știu Ruby.
8 Likes

@iamntz Cunosc pe cineva care le un moment dat stia jQuery dar nu stia Javascript. :slight_smile:

3 Likes

Este plin net-ul de asemeena persoane :slight_smile:
si eu am mai vazut si ajutat lume care stia jquery dar nu prea lea avea cu js :slight_smile:

Pana la urma, cred ca ideea articolului nu este de a nu invata un framework ci despre a invata ceva ce poate fi transferabil

Eu lucrez cu Spring la munca, un framework plin de magie, uneori prea multa. Am vazut ca nu pot sa ma arunc in el pana nu stiu ceva java, sql, care ceva de design patterns si altele.

Nici nu stiu ce sa zic. In principiu sunt de acord cam 80% cu autorul, doar ca sunt multe chestii de clarificat si nuantat.

Sunt de acord cu ce zice el daca faci software “de la 0”…sa zicem. Daca lucrezi la o companie de produs care vor sa investeasca nitel si in “engineering” si/sau best/practices…si sunt mai degraba orientati pe termen mediu si lung.

Daca in schimb ai un proiect de 6 luni(nu conteaza daca esti freelancer sau lucrezi pentru o companie de servicii/outsourcing/consultanta etc), care la deadline trebuie livrat proiectul mort-copt clientului…atunci foaia se schimba si cam ai nevoie sa stii tool-uri specifice. Si nu e nimic rau in asta. Poti sa ai o cariera foarte misto si sa castigi o gramada bani.

De exemplu, eu acum lucrez la o companie de produs si ne-am dat seama ca pentru anumite echipe nu mai e nevoie sa cerem Java cu Spring. E de ajuns 1 limbaj OOP ca viitorul coleg sa se descurce pe proiect.

Acum 6-7 ani lucram la o companie de servicii livrand site-uri ecommerce pe Magento. Nu aveai cum sa te descurci daca nu investeai cateva luni bune din viata ta invatand acel framework/cms. Banii sunt foarte frumosi in nisa asta si puteam avea linistit o cariera destul de lunga facand magento.

Am observat ca multi bagatelizeaza toolurile de tip Wordpress/Drupal/Magento. Adevarul e ca tool-urile astea pun o paine frumoasa pe masa si sunt mai accesibile incepatorilor care ulterior pot migra catre alte zone mai “ingineresti” sa zic asa. Sau nu… de lucru oricum vor avea. Cel putin deocamdata.

Conteaza design patterns din framework-uri.
De exemplu Angular are dependency injection, cine n-a lucrat cu DI o sa ii fie frustrant Angular cu providers la teste si toate cele. (e cel mai java-like framework de front-end)
Dupa ai reactive programming cu pub/sub in angular, adica rxJS, daca n-ai folosit rxJS inainte o sa iti creasca cateva fire de par alb chiar daca il poti intelege dupa un anumit timp.

In Spring Boot de exemplu ai anotari peste tot, e un alt mod de gandire, poti sa scrii cod fara sa scrii logica pentru majoritatea lucrurilor doar utilizand anotari. (e.g validare, endpoint-uri, teste, mock-uri, query-uri, filtrare, autorizare, logging, sortare…), poti sa scrii direct logica, dar framework-ul face din anotari aproape orice iti poti imagina.

Sunt framework-uri care de exemplu lucreaza cu generatoare sau cu functii pure si compozitie, daca nu le intelegi degeaba stii din limbaj ce face un generator sau ce este un closure daca nu stii cum sa compui o intreaga solutie cu ele.

Framework-ul conteaza cel mai mult la testare, e util sa cunosti un framework, doua pentru testare ca sa poti sa iti scrii propriul framework. (pentru unit, integration, performance sau e2e)
Nu e ca si cum te apuci si iti scrii tu propriul framework, n-are nici un sens.

3 Likes

nu, nu, nu asa :joy: Eu nu m-as fi apucat vreodata sa invat Angular, daca nu exista TypeScript. Cat timp am invatat programare din pasiune, m-am ferit de JS, nu mi-a placut si nici n-am fost capabil sa-l invat. TS/Angular e mult mai clean, mai apropiat de arhitecturile de backend, mai usor de invatat. De cand sunt angajat, mi-am mai schimbat gandirea, am inceput sa cochetez mai mult cu JS’ul, intelegandu-l ceva mai bine. De curiozitate, am inceput un curs de React unde mi se pare ca e JS pur (fara integrare ts). Mai sunt inscris la un curs de frontend la o companie destul de mare unde vad ca implementeaza concepte de backend, eu unul nu m-as fi gandit ca Angular poate ajute atat de departe. Cum spune si @isti37, design patterns’urile sunt importante pentru frameworkurile de front. Acum sa zic … e cerinta obligatorie sa am ceva cunostinte de JS, ar trebui sa excelez in TS/Angular, dar totusi sunt departe. Din ce imi dau seama acum, ajuta foarte mult sa participi la cursuri, meetinguri ale unor oameni diferiti, din companii diferite, sa afli tehnici noi, alte tipuri de rezolvari ale aceleiasi probleme, etc. Dar repet, eu nu m-as fi apucat de Angular, daca era scris in JS. Am avut noroc, ca atunci cand am inceput sa lucrez ca angajat, AngularJs era tras pe dreapta si aparuse deja v2+. Probabil faptul ca n-am inceput cu JS m-a tras in jos putin, ca exemplu … am auzit de “spread operator” abia cand am testat cursul de React, acum sa vad ca este foarte folosit si in Angular, mai ales cu NgRx.

Iar pentru cineva care abia se apuca de programare … daca isi face un cont pe linkedin mai intai, si vede cerintele joburilor, unde se vrea .Net Core, Spring Boot, Angular, React sau Vue, si nu C#, Java, Javascript/Typescript, e prins in capcana asta si va incepe direct cu tutoriale pentru frameworkuri.

Ca limbaj de baza, eu incepusem sa invat php, de la prima linie scrisa de mine (procedural). Dupa o perioada am incercat un framework (oop/ Yii) si m-am innecat. Inainte de primul job, urmarisem un tutorial de .Net Core/Angular si asa mi-am facut lucrarea de licenta, direct cu framework, fara sa am bazele C# sau Typescript. La job mi-a fost mai usor pentru ca aveam deja cateva idei despre aceste frameworkuri. Lucrurile de baza le-am invatat din mers, dupa. La mine cred ca a fost o doza de noroc, haos si vointa :)))

Mai sunt unii care se lauda ca fac programare in Notepad. Dar de ce nu in binar, rezolvi totul din tastele de la mouse.

Frameworkul aduce pattern-uri, reuzabilitate, best-practice, mententanta, programare in echipa, testare si multe altele. E o prostie maxima sa nu le folosesti si sa crezi ca esti mai destept decat comunitatea. In cazuri speciale nu se folosesc, dar astea sunt exceptii de la regula.

Insa, nu ai vreo scuza sa folosesti framework fara sa stii limbajul, baza. Totul ti se va parea voodoo.

#stop_listening_idiots

si n-ai idee cati am vazut care nu stiu cum sa faca o concatenare de stringuri in laravel.

n-am citit ce zice omu, da-mi imaginez ca zice ce s-a mai discutat pe aici. invata principii. daca ai baza frameworkurile-s usor de stapanit.

Cum să nu?

:money_mouth_face:

Rămâne problema „dacă învăț asta, câștig mai bine”, dar este dilema dintre „câștig acum x$ sau tocesc și peste Z ani poate ajung la 5x$?”.

M-am băgat acum ceva timp într-o discuție pe reddit, despre cum nu poți crește prea mult în IT (în general) dacă nu ai nici un fel de pasiune în direcția asta. Cred că ăștia sunt genul ăla de programatori: minimum amount of work/learning.

Cred ca trebuie sa definim conceptul de framework atunci. Daca se foloseste WP din mouse ca sa se configureze un site, nu se poate numi “programare in framework” si de fapt nu se poate numi programare. Cred ca doar in VB poti programa fara a programa, adica sa tragi cu mouse-ul niste butoane ca sa faci un “Hello world” executabil. Acum ma intreb daca limbajul VB se poate numi “framework” :slight_smile:

Cunosc oameni angajați pe Laravel, Zend sau Symfony care la momentul angajării habar n-aveau de PHP dincolo de baze procedurare (deci zero OOP, nu mai vorbim despre design patterns).

Și nu angajați pe post de juniori, cum ai putea crede ci în zona mid/senior (cu salarii corespunzătoare).

Nu subestima zona de confort…

Nu mai e asa misto daca proiectul mort-copt ajunge tot la tine pentru mentenanta :pensive:

Real programmers use butterflies.

2 Likes

Daca am inteles eu bine articolul zice ceva de genul:
“dedica-ti un procent mai mare din timp sa inveti bazele si mai putin framework-urile”.

Ceea ce-i mai mult sa mai putin corect:

  1. invatatul bazelor iti ia mai putin decat invatatul a X framework-uri
  2. invatatul bazelor te ajuta sa inveti mai rapid framework-ul de care ai nevoie

Multe comentarii din articolul original cauta nod in papura.

1 Like