În cadrul evenimentului de lansare a numărului 124 al revistei Today Software Magazine, am discutat cu invitații noștri despre ce înseamnă să fi programator în 2022. I-am avut alături de noi pe:
Alexandra Damaschin - Technology Consultant @ AboutYou Tech,
Darius Matiesi - Data Engineer @ Accesa,
Ovidiu Mățan: Vă invit să spuneți câteva cuvinte despre voi și proiectele în care sunteți implicați
Gelu Vac: Sunt CTO și partener într-o firmă germană de anul acesta. Sunt programator de meserie și sunt absolvent de informatică. Am făcut și economie. Am vrut să înțeleg cum pot valorifica pasiunea mea pentru informatică. În ultimii ani am făcut consultanță. Sunt cunoscut drept accelerator de produs. Am o serie de criterii de arhitectură pe care le aplic pur și simplu pentru a accelera produse. Ultimul proiect la care am lucrat este un produs care a fost construit în patru ani și pe care eu l-am restructurat în patru luni.
Alexandra Damaschin: Eu am terminat facultatea în Sibiu și lucrez din Sibiu. Lucrez pe Flutter. Inițial am lucrat pe aplicații native, pe Android. Colaborez și cu start-upuri.
Darius Matiesi: În afară de Big Data, am început și eu un master în economie. E un domeniu care mă pasionează și în care încă mă perfecționez. În proiectele la care lucrez în IT interacționez cu Scala, cu Terraform. Am terminat UTCN și am și un internship în AI la activ.
Cum e Flutter raportat la Android? Există limitări?
Alexandra Damaschin: Și Android e ok cu ceea ce a adus nou. Există diferențe. Cu Android rămâi doar acolo.
Ce părere ai despre frameworkurile web, despre vue, React? Să folosim frameworkuri sau să creăm de la zero?
Gelu Vac: Trebuie să existe un mix. Este o linie foarte fină legată de cât de mult mergi într-o direcție sau alta. A existat o schimbare în piață acum câțiva ani când au apărut frameworkuri de dezvoltare de produse full stack. Apăruse node.js, multe frameworkuri plurifuncționale. Ne-am trezit cu multe abordări full stack. Îmi aduc mereu aminte de principiul Entity. Mulți spun că sunt dinozaur că îl aduc în discuție. Mai nou i se spune "separation of concerns". E același lucru. Trebuie să decizi până unde te întinzi. Ce vrei să faci? Să faci streaming de date, să persiști date. Te ocupi de prelucrări, de fluxuri de business. Trebuie să identifici corect acest "separation of concerns", ulterior să îl păstrezi, să îl subliniezi. La proiectele foarte mari e foarte greu. Ai nevoie de arhitecții inițiali, de cei care au avut viziunea inițială. Când accelerez produse, trebuie să am o strategie clară care să definească unde vreau să ajung și în cât timp cu un anumit proiect. Arhitectura este o mare filosofie aplicată. Aveam o discuție cu un prieten despre limbajul pe care copiii ar trebui să îl învețe când încep programare. I-am spus că e nevoie de un domain specific language (DSL) potrivit nivelului lor. De exemplu, în Visual Studio sunt multe modele, multe template-uri care îți pot da un start bun.
Cât de mult este Data Engineering legat de programare și cât de mult de sortarea datelor pentru a fi apoi ronțăite de AI?
Darius Matiesi: Aș spune 40% pentru sortare, dar depinde foarte mult de tipul de date. Dacă datele sunt foarte variate, vei sta mai mult să despici firul în patru, dar va fi mai puțin cod de scris pentru use case-uri mai mici.
Recent au apărut multe template-uri bazate pe AI care să ne ajute să scriem cod mai rapid. Le-ați folosit? Care este experiența cu ele?
Alexandra Damaschin: Pentru mine a fost folositor la nivel de scris comentarii. Nu mi s-a părut extrem de folositor, dar este o idee interesantă care ar mai putea fi îmbunătățită.
Cum vedeți programarea obiectuală, design pattern? Le mai folosiți? Mai citiți cărți?
Alexandra Damaschin: Nu citesc cărți, dar sunt conectată la lumea articolelor și la lumea video care a explodat. Lucrurile sunt foarte bine explicate în tutoriale. Programarea orientată spre obiect este o bază bună pentru orice programator. E nevoie de aceste concepte.
Darius Matiesi: Consider că universitatea a reușit să pună bazele foarte bine cu câteva cursuri specifice de Java. Fără ele mi-ar fi fost mult mai greu să intru în IT. Chiar și programarea funcțională să o învăț de la zero fără a avea principiile de bază ar fi fost ceva foarte greu. Îmi place mult mai mult să învăț din imagini, din obiecte, mai puțin din cărți. Îmi plac mai mult articolele scurte, concrete și tutorialele de acest fel care îți permit să te specializezi.
Când ai o problemă te uiți pe StackOverflow sau consulți documentația limbajului?
Darius Matiesi: Prima dată îmi întreb seniorul din echipă, apoi merg la StackOverflow și doar apoi la documentație.
Ce părere ai despre AI?
Gelu Vac: Am săpat puțin în acest domeniu, dar ca viziune de piață și perspective, momentan, în industria globală, cred că suntem foarte la început. Foarte mulți ani, au lipsit eșantioanele de date. Fără date bune nu poți genera ceva de calitate. Acum suntem într-o etapă de storming profund. Deși nu sunt specialist, folosesc identificare de patternuri, de template-uri. Am anumite rigori pe care le folosesc curent.
Cu ce se ocupă start-upul cu care colaborezi? Ce tehnologii folosiți?
Gelu Vac: Start-upul din Germania cu care colaborez face asistență video remote. Există o mare contracție a forței de muncă. De exemplu, există puțini evaluatori de daune și ca să se economisească timp și să se folosească resursa potrivită este nevoie de un sistem care să permită asistența specialistului de la distanță. În sesiunile remote, folosim realitatea augmentată. Folosim foarte mult tehnologii. Folosim Visual Studio ca platformă de dezvoltare. Folosim C#, .ASP, .NET, TypeScript, un engine propriu.
Oamenii din Germania scriu comentarii în germană sau în engleză?
Gelu Vac: E un chin teribil. Folosesc doar germană. Sunt amabili și vorbesc în engleză dacă îi rogi, dar preferă germana. Și la francezi este la fel. Cel mai trist este cu Țările de Jos.
Când eram mai tânăr și lucram, noi nu aveam conceptul acesta că e seara, că e weekend, că e târziu și trebuie să mergem acasă. Totul era Waterfall. Pe toată lumea interesa data de lansare, deoarece așa se dictau bonusurile și avantajele. În perioada pre-release se stătea poate chiar toată noaptea la lucru. Voi, ca tânără generație, mai pățiți așa ceva?
Alexandra Damaschin: Aș spune că DA, mai ales cu schimbarea aceasta pe remote. Dacă ceva trebuie să se întâmple, atunci depunem efort pentru asta. Când avem Black Friday lucrăm 24/24.
Darius Matiesi: Noi nu avem Black Friday, dar avem și noi deadline-uri și uneori e greu. Eu fiind junior, trebuie să acumulez experiență, iar dacă e ceva training în mijlocul zilei trebuie să recuperez.
Ce tendințe vezi în zona de Big Data? Ce părere ai de virtualizare?
Darius Matiesi: Scala, DataBricks, Spark sunt în tendințe de ceva vreme. Virtualizarea, containerizarea sunt și ele de viitor. Inclusiv pe subiectul AI, consider că nu se acordă suficient timp unui proiect bun de AI. Clienții vor ca în trei săptămâni să le dai un proiect bun de AI cu setul de date existent. De multe ori nu este posibil, deoarece AI înseamnă matematică, iar pentru a înțelege matematica aceea e nevoie de mult timp pentru rezultate personalizate.
Cum vezi evoluția Flutter și a aplicațiilor UI, client-web?
Alexandra Damaschin: Cu Flutter sunt destul de stabili pe mobile, deci vor investi mai mult în web și desktop, dar tot cei de la Google au inventat Kotlin Multi-platform unde modelele și view-urile le scrii în cod Kotlin, iar apoi butonul îl scrii în Kotlin sau SwiftUI.
Cum vezi evoluția arhitecturii, a paradigmei de programare?
Gelu Vac: Paradigmele de programare sunt fixe. Mixul dintre ele diferă. Acolo apar discuțiile. De exemplu, pe un proiect am făcut printre altele o migrare de bază de date din Mongo în SQL. Nu se preta de la început. Când lucrezi cu Mongo ai nevoie de niște layere suplimentare de date. În proiectul acesta, eu am fost chemat inițial să fac audit, pentru că nimeni nu mai știa ce este acolo. S-a decis să ducem totul în SQL ca să nu stea proiectul pe loc. Revenind la tendințe, noi în România suntem consumatori de tehnologie second hand, la nivel de implementare software. Noi având outsourcing undeva la 95%, noi primim proiecte de multe ori abandonate de alții. Când folosești un limbaj de programare, este nevoie de decență. În lumea vestică, când se face release la un framework, acesta se folosește exact pentru scopul cu care a fost creat. Când acel framework ajunge în Europa de Est sau India noi vedem dacă putem să îl folosim și pentru alte scopuri. Eu fac foarte mulți bani pe seama acestui comportament și a acestor greșeli. M-aș aștepta ca în viitor să existe niște engine-uri care să îți semnaleze că un framework este folosit în scopuri pentru care nu a fost menit. Totuși, nu cred că asta se va întâmpla. Frameworkurile se creează în vest, iar noi, cei din est le consumăm. Ce trebuie să facem? Este să devenim decenți în utilizarea tehnologiei.
Dacă mâine ar fi să faci un start-up, ce ai face?
Alexandra Damaschin: Cred că aș face ceva în domeniul organizării de evenimente.
Darius Matiesi : Eu sunt pasionat de board games și aș face un site care să dea indicații în funcție de experiența jucătorului.
Gelu Vac : O idee fără implementare este zero. O implementare fără vânzare este sub zero, înseamnă că intri pe datorie. Eu mă implic în orice start-up care știe să vândă.
de Ovidiu Mățan
de Ovidiu Mățan