Despre frontend/web dev, fără ascunzișuri

Interviu din seria ”Între două release-uri”, dedicată discuțiilor cu creatorii și dezvoltatorii digitali din țară.

Specializările digitale vin la pachet și cu o doză de obscur: ce-i acolo și de ce e așa? Am stat la discuții cu specialiști din arii profesionale de nouă generație, pentru a încerca să înțelegem cât mai multe despre meseriile de astăzi, în noua serie de interviuri Între două release-uri .

L-am luat la întrebări pe Dragoș Pop, mentor Digital Nation al programului Programare Frontend, pentru a înțelege mai clar ce implică dezvoltarea web.



La prima vedere, probabil nici nu ai crede că Dragoș e programator. Cu cercei în urechi și cu un zâmbet larg pe buze, e destul de diferit de stereotipul IT-istului încruntat și solitar, pe care media ni l-a băgat ani la rândul pe gât.

Programarea e un domeniu mult mai creativ decât își imaginează cei din exterior.

Originar din Făgăraș, mutat în București și cetățean al internetului cam de când lumea, Dragoș face web dev din 2006, când lucra mai mult în zona de backend. De frontend s-a apucat serios prin 2010, iar pasiunea a venit rapid pentru că domeniul îl provoca.

Inițial voiam sa fac 3d graphics, apoi am vrut rețelistică, apoi am ajuns pe web. Cum? Asta a fost cea mai mare provocare întâlnită și mi-am spus că pot. Web dev-ul l-am descoperit în perioada facultății când am început să lucrez pe proiecte. Programarea, fie că vorbim de frontend sau de backend, e un domeniu mult mai creativ decât își imaginezează cei din exterior, asta m-a atras.



Să încerci să descrii o profesie de generație nouă, cum e cea de dezvoltator frontend nu e treabă ușoară, după cum ne confirmă și Dragoș. Chiar și la orașe, chiar și în rândul celor are lucrează la cele mai înalte niveluri, programarea e deseori văzută ca un domeniu abstract, în care specializările se blenduiesc și confuzează.

În cei mai simpli termeni, să faci frontend înseamnă că ”desenez” ce vezi tu pe ecran – că e pe laptop sau mobil, toate interacțiunile pe care le ai pe ecran sunt rezultatul muncii mele. Butonul acela? I made it. Formularul de contact pe care îl completezi? Still me. Those awesome SVG interactive charts that tell you how the city hall steals your money? Me. Pe web poți să faci o tonă de chestii: de la site-uri de prezentare (meh), la jocuri geniale, la aplicații care automatizează taskuri și cresc productivitatea unei firme, la unelte pentru învățare, you name it. E fain că fiecare proiect poate fi diferit: azi faci ceva să meargă frumos pe dispozitive cu hardware low end, mâine construiești un grafic interactiv plin de animații și tranziții care îți iau ochii, poimâine modifici codul de pe FanCurier ca sa poți chema curierul în afara orelor de program etc.



Parcă nu pare așa greu de înțeles, nu? La o adică, cât de greu digerabil poate să fie conceptul că am programat cadrul digital care îți servește informațiile din online? Problema apare din imixtiudinea care se face între diferitele specializări tehnice, ne lămurește Dragoș.

Conceptul de web include multe și nu ai crede de câte ori, de exemplu, prezentându-mă ca web developer am fost confundat cu un web designer. Web designer != Web developer, fie că vorbim de frontend sau nu.  Eu, de exemplu, nu lucrez în Photoshop sau alte tool-uri de design pentru că nu am talent la grafică, dar ”traduc” conceptele venite de la design în funcționalități (Asta în teorie, pentru că în practică nu am designer, ci folosesc framework-uri de design care îmi oferă componente deja realizate pe care eu le modific după bunul plac; sigur ai auzit de Material Design de la Google). Probabil conceptul de realizat grafică e mai ușor de înțeles ca cel de scris cod, pe undeva se rupe firul. E posibil ca oamenii non-tehnici să creadă că web developer = instalez un WordPress, însă mie îmi place să rezolv probleme complexe de business (prelucrări de date, automatizări etc.) și să mă joc cu interacțiuni (gen, uite ce chart fain am făcut!). Da, de fiecare dată când mă întreabă “șefu’” ce fac eu zic că mă joc.



Dragoș vorbește cu atâta căldură și entuziasm despre domeniul lui, că aproape că îți vine să te apuci de un curs Programming 101 pe loc. Îl presăm să ne zică și de părțile grele, poate nu e chiar atât de roz vrabia de pe gard. Se pare că există și acestea, rătăcite într-un ocean de posibilități cool.

Sunt și părți mai dificile, desigur, dar cred că variază de la om la om și de la stil la stil. Personal, partea de planning, de realizat la începutul unui proiect a estimărilor de timp alocate pe etape, acolo aș putea spune că e mai tricky.  Chiar și când faci planning-ul impecabil, pot să-ți mai apară în implementare niște chichițe care trebuie evaluate individual, poți avea extra optimizări de făcut. Dar, dincolo de astea, programarea e un domeniu atât de ofertant, atât de antrenant, constantly updating, că e greu să vorbești de greu în context. Și cred că se potrivește acelora cărora le place să fie autonomi, să dețină controlul. Mie unul îmi place să dețin controlul și simt că fiecare tastă pe care am apăsat-o am făcut-o cu un scop. Asta încerc să le transmit și celor pe care îi mentorez, trebuie să fii comfortabil cu codul cu care lucrezi, că e al tău sau al altuia, otherwise you’re gonna have a bad time.

Programarea se potrivește totodată de minune celor preocupați activ de self-actualization, e poate domeniul care își face refresh cel mai des și trebuie să vrei să ții pasul cu el. Ca să-ți dau doar câteva exemple: lansarea React, de exemplu, a produs o schimbare majoră, frontendul a explodat direct atunci. Dintr-o dată totul a devenit mai simplu, scrii mai puțin cod, totul este mai manageable, mai readable. Sau lansările Google – odată la 6 săptămâni primim noutăți de la echipa lor. Nu vorbesc de bug fixes, ci de noutăți, fresh stuff. De exemplu, de la finalul anului trecut, avem suport pentru I18N Internationalization (suport out of the box pentru diferite scrieri). Tot recent, Google a scos Flutter, acum poți scrie aplicații mobile, poți compila direct pe Android și ios. Cum să fie greu când e atâta wow?



Începem să ne simțim ca în Narnia deja așa că îl promptăm să ne uităm puțin și la piața din România, poate flavour-ul local are un impact și în programare. Ce se întâmplă în România, ce ar putea fi mai bine?  Dragoș se declară mulțumit de direcția pieței și de motivația pe care o resimte în rândul majorității colegilor de breaslă.

Românii sunt într-o mare măsură autodictați, mulți freelancer, skill-uri dezvoltate individual. Da, mai întâlnești și unii care sunt reticenți la schimbare, care l-au luat pe ”Atât am învățat, atât fac” în brațe, dar sunt excepții. Și adevărul e că partea cea mai grea e probabil fix la început, pe partea de educație, aici să zic că am mai putea crește. De multe ori, e greu ca junior să-ți dai seama ce să înveți, de unde să începi. Te duci către ce te împinge angajatorul, unii se aruncă head-first în ce e trendy, căutat, gen React, dar neavând background de Javascript, neavând o înțelegere de cum funcționează web-ul, e mult trial and error, apar optimizări slabe. Dar piața la nivel de țară crește și asta nu poate decât să mă bucure. Avem chiar un framework românesc de succes, Quasar Framework, construit pe Vue. Mi-aș dori și lucruri diferite? Oricând e loc de mai bine (râde). Să zicem că aș vrea să văd mai multă documentație scrisă pentru codul produs în România, asta ar fi un punct de dezvoltat.



Vrem să știm de la Dragoș ce fel de oameni sunt atrași de frontend development. Curiozitate și putere de muncă/ de concentrare ar fi principalele ingrediente, dar domeniul îi atrage și pe unii cu motivații nu chiar potrivite, din ce ne spune.

”Am auzit că se câștigă bine!” Nici nu mai știu de câte ori am auzit-o. Ce nu înțeleg unii e că rezultatele încep să apară, dar doar după ce investești muncă intensă în asta. You should kiss your life goodbye for at least a few months, maybe years while you struggle to get to a decent level [in terms of what you can perform, programming-wise]. Pe de altă parte, înțeleg motivația asta financiară, într-adevăr poți începe sa faci bani repede în web dacă îți dorești cu adevărat și îți place domeniul. După câteva luni de învățat intens poți fi băgat în producție, pentru că web developerii sunt totuși la mare căutare în România.


E WOW când, după câțiva ani, te întâlnești pe stradă cu cineva care îți spune “Mersi pentru tot, cursul tău efectiv mi-a schimbat viața”. That. Is. Priceless.

Că tot a venit vorba de dezvoltare a competențelor la nivel de individ, ne interesează să știm cum se întâmplă această maturizare profesională, când știi că ai ajuns la ”majorat”. Pentru Dragoș, un important moment de ”Uite cât am crescut”” a fost atunci când a început să le predea și altora web dev. Să fii în stare să transmiți mai departe juniorilor din experiența ta, să poți mentora și să îi vezi pe alții cum cresc sub îndrumarea ta, e un punct de reper în viața oricărui expert tech, indiferent de specializarea urmată.

Și este o modalitate EXCELENTĂ să îți cimentezi propriile cunoștințe. În momentul în care trebuie să explici cuiva o problemă sau o soluție it also starts to make a whole lot more sense to you too. Informațiile efectiv se așează mai bine când explici. Also, e WOW când, după câțiva ani, te întâlnești pe stradă cu cineva care iți spune “Mersi pentru tot, cursul tău efectiv mi-a schimbat viața”. That. Is. Priceless.

Mentorul Digital Nation punctează însă și pe modul în care predarea se face și pe accountability-ul pe care trainerul și-l asumă.  La nivel de țară, Dragoș și-ar dori să vadă mai multă disciplină și mai multă organizare în rândul formatorilor.

Mă bucură mult când văd inițiative noi de predare, de training, de ajutat pe cei mici să crească dincolo de ce a fost generația noastră în stare. Pentru unii dintre noi să predai e o chemare, e o onoare, e ceva intrinsec rewarding. Am cunoscut și impostori aici, oameni care au ajuns să predea pentru că nu știau să facă altceva, dar sunt în minoritate.

Ne intersează să aflăm cum se lucrează cu Clientul în programare, cum e această dinamică la români. Observații majore se pare că nu există, deși se poate întămpla să lucrezi cu clienți care înțeleg mai greu domeniul și astfel mai apar desincronizări. L-am rugat să ne dea exemple de astfel de situații și, în categoria Ce să nu îi spui unui programator cu care lucrezi, includem:

Cum să coste atât? Păi daca mă apuc eu să învăț îl fac imediat.
Ce poate fi așa greu? Toate aplicațiile au optiunea asta, tu de ce nu ai pus-o?
Da, știu ca ne-ai întrebat și am zis că nu, dar credeam că e de bun simț să faci, totuși.
Da, știu, dar ce vrei să fac dacă am uitat de acest aspect foarte important care schimbă tot? Nu, nu vreau să plătesc în plus.

La final de discuție, l-am rugat pe Dragoș să arunce un ochi și spre viitor, curioși fiind ce așteptări are pentru domeniu în 2019. Am aflat cu ocazia asta că domeniul a ajuns la o stabilitate care îi bucură pe programatori, dar că mai sunt periodic lansate și new features care le simplifică munca și le dau noi puteri.

Everything is kinda cool. Dacă e să încerc o previziune, aș zice că OOP is gonna die, functional programming FTW. Apropo de asta, aș ridica statuie Facebook-ului pentru React, nu pentru că e neaparat cel mai bun, dar pentru că a popularizat reactivity și functional programming (sorry Angular; “your UI is a function of you data”, I love that quote, it’s mind openening). Pentru 2019 pot să zic că aștept Vue 3, dar nu e ca și cum ar fi o chestie revoluționară. 2019 pare… banal, pentru că web-ul s-a maturizat foarte mult în ultimii ani. Dar “banalul” ăsta înseamna ceva nou la fiecare 6 săptămâni (thankx, Chrome team!). Also, you never know when the next great tool is gonna just pop outta nowhere.

Dragoș este mentor în cadrul programului Frontend al Digital Nation.

Pe Dragoș îl poți urmări și pe Linkedin și Instagram.

One Comment

  1. Dragos

    OMG, mi-am adus aminte ca prin clasa a 6-a am vazut la o taraba o carte: “Crearea jocurilor pe calculator in Turbo C++”. M-am rugat de maica-mea sa mi-o cumpere. Avea si discheta! Pana am ajuns in liceu si am inceput sa invat programare am pierdut discheta, insa cartea nu. Fix in primul capitol ma invata cum sa fac butoane cu efecte 3d si cum sa interactionez cu mouse-ul. Asta in DOS! La scoala faceam algoritmi si era cam boring. Eu deja stiam ca am o resursa care ma invata sa fac butoane 3d, asa ca am construit un calculator stiintific pentru atestatul in informatica (clasa a 12-a; a stat cartea aia ceva timp, haha). Over 1000 lines of procedural code, but damn it felt oh so good to build something like that from scratch! Profa care venise la corectat (de la alt liceu) era tare suspicioasa si ma intreba ce face functia “lineto”. Doamna profesoara, eu am interactionat direct cu registrii aici pt mouse si d-voastra ma intrebati de lineto??? Anyway, am luat 10, la fel cum a luat si un coleg care cumparase un atestat care avea un calculator (da, n-am avut o idee originala). Era printre cei mai slabi elevi din clasa si campion la chiulit. Acum e viceprimar in oras. So yeah, always follow your dreams, kids!

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>