Cum trebuie să fie software developerul viitorului
Una dintre concluziile DevTalks este că industria IT este într-o continuă dezvoltare, dar și că Internetul este departe de a-și fi atins potențialul maxim. Important este cât de capabili suntem noi să ținem pasul cu el.
Deși, din punct de vedere al tehnologiei, lumea de astăzi este total diferită de lumea care exista în urmă cu 10, 20 de ani, surprizele nu s-au terminat. Dimpotrivă! Trebuie să ne însușim schimbările actuale, dar și pe cele viitoare. Nu doar noi, ci și specialiștii IT, care trebuie să-și dezvolte o serie de calități care să-i ajute să facă față provocărilor ce vor veni.
Citește și Se caută profesioniști. Te numeri printre ei?
Dar care sunt aceste calități? La această întrebare au răspuns pentru revista CARIERE Lucian Ghindă, Co-founder Devacademy și Ghinda.com, Paul Ardeleanu, Software Engineer la YUZA, United Kingdom, Andrei Rugină, Software Architect la Home’Bank ING Bank, Daniel Bădoi, Software Engineer Consultant la Accenture, Dan Vîrtopeanu, Managing Partner Breeze Mobile, și Andrei Olaru, Software Development Engineer Deutsche Bank.
Lucian Ghindă, Co-founder Devacademy și Ghinda.com: Curiozitatea face diferența dintre un programator de nivel mediu și unul foarte bun
Lucian Ghindă, Co-founder Devacademy și Ghinda.com, a mărturisit că întrebarea legătă de calitățile pe care este de dorit să le aibă sofware developerii viitorului este una care îl frământă și pe el și că o calitate ține de gândirea abstractă, care cuprinde ceea ce ar trebui să știe un software developer: „Dar e foarte greu de definit. Nu există o materie care să cuprindă gândirea abstractă și tu să te duci s-o înveți”.
„Cu siguranță trebuie să știi ceva matematică și logică. Asta e o bază de care este greu să scapi pentru că o parte din ceea ce faci, ca programator, are legătură cu seturi, mulțimi, ordonări, spații vectoriale, multe lucruri pe care, atunci când eram în școala generală, în liceu sau în facultate, nu știam la ce ne ajută. Pur și simplu învățam niște chestii. Dar ele ne ajută. Bineînteles, este foarte importantă și logica booleană, inclusiv algebra, după care mai ai teoria sistemelor. Pe de o altă parte, ai modul în care vezi un sistem și modul în care îl înțelegi pentru că are niște inputuri, are niște outputuri, se întâmplă ceva în el. Asta ar trebui să știi înainte să te apuci de programare”, a explicat Lucian Ghindă.
Citește și 71 de joburi de programator disponibile în țară
În opinia Co-fondatorului Devacademy și Ghinda.com, curiozitatea este cea care face diferența dintre un programator de nivel mediu și unul foarte bun: „Dar cum ajungi să crești foarte mult? Cred că trebuie să acorzi atenție detaliilor. Asta te ajută să analizezi un întreg. Și mai ai nevoie de răbdare și de curiozitate. Răbdare pentru că o să ai buguri, o să ai probleme și trebuie să faci debug la cod. Și, dacă n-ai răbdare, s-ar putea să ți se pară o activitate neplăcută și să-ți scadă motivația. Iar curiozitatea este cea care face diferența dintre un programator de nivel mediu și unul foarte bun. Cel foarte bun își pune întrebări și vrea să afle mai multe despre modul în care funcționează ceva”.
Paul Ardeleanu, Software Engineer la YUZA: Depinde ce fel de dezvoltator ești: unul care vrea să-și plătească taxele sau unul pasionat?
Paul Ardeleanu, Software Engineer la YUZA, United Kingdom, a atras atenția că a fi la curent cu noile tendințe este o calitate importantă a unui dezvoltator. „Cel mai important este să fie la curent cu ce e nou și să folosească lucrurile cele mai noi pentru că ele sunt cele mai folosite de către dezvoltatorii din afară. În România se face foarte mult outsourcing. În momentul în care cineva vine din afară și caută o firmă de outsourcing, o să caute, de fapt, skillurile de care are nevoie. Și toate se duc către acele tehnologii noi”.
Citește și Tinerii români vor să fie programatori şi… manageri
Potrivit lui Paul Ardeleanu, există o mare diferență între dezvoltatorii care vor doar să-și plătească taxele și cei care fac programare din pasiune. „Depinde ce dezvoltator ești. Dacă ești dezvoltator doar de la 9:00 la 17:00, ca să-ți plătești taxele, sau ești cu adevărat pasionat de software. Dacă ești din ultima categorie, trebuie să faci parte din comunitate, să participi la user groups, să participi la conferințe, să vorbești în cadrul acestor conferințe și să îți îmbunătățești tehnica de a ține un discurs. În general, software developerii trebuie să fie deschiși și curioși. Software development nu înseamnă nepărat că înveți anumite lucruri, ci că încerci să le împingi mai departe, să inventezi lucruri noi, până la urmă”, a declarat Paul Ardeleanu.
Andrei Rugină, Software Architect la Home’Bank ING Bank: Networkingul este foarte important ca să te menții la curent
Andrei Rugină, Software Architect la Home’Bank ING Bank, a ținut să precizeze că se vorbește mult despre „full stack developer”, un developer care poate să acopere și cerințele de back-end și cerințele de front-end. În opinia lui, este destul de dificil să fii „full stack developer” pentru că ai nevoie de o viziune mai largă ca să înțelegi toate implicațiile.
Citește și Două echipe din România, câștigătoare la o competiție globală
„În mod normal, ca să fii un dezvoltator, trebuie să te menții tot timpul la curent. Trebuie să ai niște interese foarte clar formulate și trebuie să-ți cultivi aceste interese, ar trebui să citești bloguri, cărți. Asta este cel mai important: să ai niște interese pe care să ți le cultivi. Dar cel mai important este să fii în relație cu alți developeri. Trebuie să împărtășești experiențe, să beneficiezi de experiențele altora. Genul acesta de networking este foarte important ca să te menții la curent”, a adăugat Andrei Rugină.
Daniel Bădoi, Software Engineer Consultant la Accenture – Trebuie să se pună mereu la curent cu ce e nou
Și Daniel Bădoi Software, Engineer Consultant la Accenture, crede că un software developer trebuie să fie la curent cu noutățile din domeniu: „Trebuie să se pună la punct cu tehnologia. Tot apar noi metode de dezvoltare, noi metodologii și trebuie să se pună mereu la punct cu ce e nou, fie că programează pe Java sau pe Microsoft sau iOS. Mereu apar inovații de la producătorii de software din domeniu. Prin urmare, trebuie să fie mereu la punct cu tehnologia pentru că e ceva viu și evoluează la nivel lunar sau bianual. Contează să știe să lucreze în echipă, să adopte metodele de programare Agile. Contează foarte mult și comunicarea pentru că, mai nou, și ăsta e trendul, echipele sunt distribuite pe mai multe țări, pe mai multe continente, și atunci comunicarea interumană este importantă”.
Dan Vîrtopeanu, Managing Partner Breeze Mobile: Mă interesează atitudinea și potențialul
Pentru Dan Vîrtopeanu, Managing Partner Breeze Mobile, atitudinea și potențialul sunt cele mai importante calități ale unui programator: „Skillurile tehnice pot fi verificate prin niște teste. E un prim nivel. Ce nu poți să verifici prin teste e partea de organizare, disciplina și dorința de a evalua. Ajungem la teste de altă natură, psihologică și așa mai departe. Asta dacă vrem să facem o evaluare. Dacă am nevoie de un programator bun, mă interesează în primul rând atitudinea și pontențialul. Dacă are atitudine și pontențial, celelalte calități tehnice și le va îmbunătăți în mod cert”.
Andrei Olaru, Software Development Engineer Deutsche Bank: Adaptabilitatea, cea mai importantă calitate a unui programator
Andrei Olaru, Software Development Engineer Deutsche Bank, este convins că adaptabilitatea este cea mai importantă calitate a unui programator pentru că, în ziua de azi, el trebuie să se adapteze în funcție de fiecare situație în parte.
Citește și Protejează smartphone-urile românilor: Tânărul de 29 de ani care a pariat pe un business online
„Adaptabilitatea este cea mai importantă calitate a unui programator. Fostul meu manager mi-a zis așa: «Nu limbajul de programare îl face pe programator, programatorul face limbajul de programare». Adică trebuie să fie capabil să se adapteze fiecărei situații căreia trebuie să-i facă față. Având în vedere că majoritatea echipelor de development lucrează Agile, sunt destul de multe ședinte, există o mare interacțiune cu celelalte echipe și capacitatea de a comunica eficient ar trebui să fie o altă calitate. Și aceea de a rezolva conflicte”, a declarat Andrei Olaru.