Eugene Cozac despre devenirea unui dezvoltator de nivel superior

Publicat: 2022-10-26

TechBullion: Cum ai intrat în programare?

Eugene Cozac: Crescând mi-am descoperit interesul pentru matematică și științe STEM. Am început să codez pe cont propriu și, bineînțeles, când am terminat liceul, eram 100% sigur că vreau să lucrez în IT. Așadar, am obținut o diplomă în Inginerie Informatică de la cea mai bună universitate din Moldova. Înainte de a intra în programare, am asamblat mai mult de 300 de computere, deoarece prima mea diplomă era în Inginerie Calculatoare.

TechBullion: Care a fost unul dintre cele mai provocatoare proiecte pentru tine la început?

Eugene Cozac: Ei bine, nu pot spune că am avut niște greutăți la început. Dar a fost unul în al treilea an de carieră când am devenit dezvoltator front-end pentru Samsung Pay. Deoarece eram principalul dezvoltator de interfață de utilizare Samsung Pay Promotions, eram responsabil de tot. Samsung Pay avea peste 15 milioane de utilizatori atunci și orice problemă sau bug le-ar putea influența experiența. Dacă ceva a mers prost la un moment dat, toți utilizatorii au putut vedea asta. Așa că am fost foarte atent și am încercat să ofer cea mai înaltă calitate posibilă.

TechBullion: De obicei, oamenii se specializează într-o gamă restrânsă de limbaje de programare. Cum ai ajuns să fii atât de bine rotunjit în ceea ce privește limbajele de programare?

Eugene Cozac : De obicei, cariera unui dezvoltator este practic o promovare de la nivelul Junior la nivelul Senior în timp, cu îmbunătățirea setului de abilități. Dar acest lucru nu este suficient. Cei mai mulți dintre dezvoltatori ar lucra probabil la aceeași companie și la același proiect timp de câțiva ani, dar nu acesta este modul în care puteți deveni primii 1% dintre dezvoltatori. De asemenea, oamenii nu sunt neapărat capabili să schimbe proiecte foarte repede, iar dacă doresc să se mute la o altă companie, acest lucru poate deveni o provocare. Așa că vreau să spun, este că mulți dezvoltatori sunt în zona lor de confort, ceea ce este, de asemenea, bine. În același timp, chiar și dezvoltatorii seniori nu ar fi întotdeauna dispuși să-și asume responsabilitatea de a fi șefii proiectului, ei doar își fac sarcinile. Probabil, are de-a face cu o personalitate% majoritatea oamenilor pur și simplu nu doresc să participe la hackathon-uri, să facă parte din știință sau să construiască ceva care rezolvă o problemă în programare. Sunt cam lenesi si stau bine in zona lor de confort. Am fost întotdeauna curioasă, iar capacitatea mea de a învăța mai multe limbi provine din disponibilitatea mea de a rezolva problema în cel mai bun mod posibil, față de faptul că pot să codific într-o altă limbă.

TechBullion: Ați participat la niște hackathon-uri sau sprinturi de programare?

Eugene Cozac: Nu chiar. Știu că mulți dezvoltatori își pot încerca abilitățile pe hackathon-uri, dar cred că cel mai important lucru este să încerci să construiești cât mai multe proiecte și să lucrezi în medii diferite. Adevărat, dezvoltatorii doresc adesea să demonstreze altora sau lor înșiși cât de cool sunt prin hackathon-uri, dar, în ceea ce mă privește, o altă modalitate de a-ți demonstra abilitățile este să-ți construiești propriul cadru pe JS/CSS și să-l faci public sau să-ți implementezi. cadru într-o companie în care lucrați. Și acolo pentru a demonstra de ce această companie ar trebui să folosească propriul cadru, dar nu React sau Bootstrap sau Material UI. Oricum, doar 1% dintre dezvoltatori câștigă hackathon-uri, crearea propriului cadru poate construi niște platforme care vor fi reutilizabile pentru milioane de utilizatori.

Eugen Cozac

TechBullion: Care a fost cel mai rapid produs al tău de construcție? Cum ați interacționat cu echipa în timpul procesului?

Eugene Cozac: De obicei, dezvoltatorii lucrează într-un mediu Agile și au un număr de sarcini pe sprint (2 săptămâni). Ce să faci dacă aceste sarcini sunt împărțite la 2 săptămâni, dar poți face totul în 3 zile? Nu toate companiile sunt etice să ceară mai multe sarcini pentru că suntem egali, eu și managerii de proiect plănuiesc multă muncă pentru toți dezvoltatorii. Dar am avut o situație în care eram antreprenor pentru o companie în care eram un singur dezvoltator și de aceea aleg acea companie. Pentru mine nu a fost atât de interesant să lucrez la un număr mic de sarcini, am vrut să construiesc singur o aplicație web pentru o companie, de exemplu în loc de 5 dezvoltatori. În 11 luni am creat un sistem CRM de la zero până la sfârșit, a existat lucru API, UI și UX. Acest proiect a fost realizat foarte rapid, cu o mulțime de funcționalități precum gestionarea proiectelor, urmărirea inventarului, generarea de facturi, crearea și gestionarea cotațiilor, precum și urmărirea inventarului folosind GPS. Nu am informații la zi, dar acest CRM va fi vândut ca abonament datorită nișei mici a afacerilor: acustica în construcții.

TechBullion: Ce este nevoie pentru a fi un dezvoltator de top?

Eugene Cozac: Mulți dezvoltatori vă pot răspunde că experiența este cel mai important lucru dacă doriți să fiți un dezvoltator de top, dar acest lucru nu este neapărat adevărat. Cunosc mulți dezvoltatori care au o experiență de peste 10 ani, dar multe proiecte sau diferite sarcini complexe pot fi provocatoare pentru ei. Acest lucru poate explica de ce pentru cineva este nevoie de 7 – 8 ani pentru a deveni dezvoltator senior, în timp ce pentru alții durează doar 4 ani. Deci, cea mai bună abordare este să vă dezvoltați abilitățile excepționale și modul corect de rezolvare a sarcinilor și apoi experiența. In acelasi timp este bine sa fac interviuri in dezvoltare pentru angajare: am facut peste 100 de interviuri pentru diversi clienti. După cum am spus, a-ți demonstra abilitățile și abilitățile excepționale în programare înseamnă să implementezi un proiect în propriul cadru în compania pentru care lucrezi. Aceasta înseamnă că nu numai că cunoașteți limbaje de programare și cum să utilizați cadrele, dar vă puteți construi propriul cadru și puteți demonstra companiei că îl folosește. Deci, pe baza propriului cadru, veți construi un produs care va folosi milioane de utilizatori. Cred că acest lucru poate face doar 1% dintre dezvoltatori. De exemplu, îmi construiesc propriul cadru UI care poate fi folosit în combinație cu React, numele este Krypton. Încă nu este terminat, dar pentru unul dintre clienții mei actuali, folosesc părți din Krypton pentru a construi un nou proiect. Deci, clientul actual nu folosește cadrul meu în întregime, ci parțial, dar sper că până când vom termina proiectul pentru acest client Krypton-ul meu va fi realizat și mai mult de 60% din proiect va fi construit pe Krypton. De asemenea, un sfat bun pentru a fi un dezvoltator de top este să scrii publicații științifice în reviste profesionale, am peste 25 dintre ele. De asemenea, am făcut peste 100 de recenzii de articole de la colegi, pentru că, în calitate de dezvoltator, trebuie să fii nu numai parte din programare, ci și din știință.

TechBullion: Care sunt cele mai puternice abilități ale tale?

Eugene Cozac: Aș spune, capacitatea de a te alătura oricărui proiect în orice interval de timp. Am fost în situații diferite față de când am început proiectul de la zero sau m-am alăturat când proiectul era în derulare. Multe companii vă oferă timp în jur de 2 – 3 săptămâni pentru a înțelege, de obicei pentru mine durează 2 zile. Dezvoltatorii cu abilități excepționale sunt capabili să înțeleagă orice proiect și să înceapă să rezolve probleme sau să facă sarcini în zile, nu în săptămâni. De asemenea, pot lucra la 4 proiecte în același timp. Presupun că doar 1% dintre dezvoltatori pot face asta, mă refer la tot felul de dezvoltatori de la Junior la Tech Leads. Am avut experiența de a lucra la 2, 3 și 4 proiecte în același timp, oferind rezultate foarte bune, în plus, la toate, sunt cel puțin Senior sau lider de echipă pentru aproximativ 4 dezvoltatori. De asemenea, la acest nivel, trebuie să fii capabil să mentori alți dezvoltatori de la Junior la Senior. De asemenea, să lucreze foarte repede nu numai în proiecte de zi cu zi, ci și să construiască ceva de genul unui cadru open-source, să scrie publicații științifice și așa mai departe. Calitate. Viteză. Diversificarea.

TechBullion: Ce limbă a fost cea mai provocatoare pentru tine?

Eugene Cozac: Nu cred că orice cadru sau limbaj este foarte provocator, odată ce cunoașteți un limbaj de programare, alții sunt cam la fel, trebuie doar să aveți câteva alte reguli, sau un cadru poate avea mai puține sau mai multe caracteristici. Pentru un dezvoltator cu abilități excepționale, nu există niciun limbaj de programare provocator.