Astăzi discutăm cu Sava Vîrtosu, care în prezent activează în domeniul Software Development și care are în spate experiența programării în producție începând de la Mobile Apps, până la platforme web.
#1. Cum și după ce principii își aleg studenții limbajul de programare, sistemul de operare și mediul de dezvoltare?
Deseori alegerea tehnologiei este influențată de mediul academic: profesori, colegi de facultate. De asemenea, un rol important este prima experiență de lucru în producție cu o oarecare tehnologie. Se întâmplă ca limbajul în care ai programat la practică (internship) sa devină instrumentul tău pe o perioada îndelungată.
Dat fiind faptul că unele limbaje/tehnologii sunt proprietare, nu tot timpul există libertatea de a alege mediul de dezvoltare dorit, dar oricând se pot găsi soluții open source care să-ți satisfacă dorința.
#2. În ce limbaje de programare e mai bine să te specializezi?
Sunt mai multe aspecte pe care ar trebui să le iei în calcul, de la domeniul în care vrei sa activezi până la ce colegi ai vrea sa ai.
Per general nu este important tehnologia aleasă, ci atitudinea ta față de programare. Dacă e să fac o analogie, șofer este și omul care conduce un autocar și cel care conduce un taxi.
Unii iși aleg limbajul de programare în dependență de locul unde ar vrea pe viitor să lucreze. Este o opțiune destul de bună, pentru că având un scop final, ești mult mai motivat să înveți.
#3. În care dintre mediile de progaramare/sistemele de operare e mai comod/productiv să dezvolți software?
În dependență de tehnologia pe care dorești să o utilizezi. Dacă vorbim despre Sisteme de Operare, eu totuși aș recomanda Linux: este gratis, sunt multe variații de distribuții pe placul fiecăruia, practic majoritatea instrumentelor pentru programatori sunt dezvoltate pe Linux, iar dacă unele nu sunt, se pot găsi cu ușurință alternative open source. Cred ca este unul din cele mai populare sisteme de operare între programatori.
Însuși mediul de dezvoltare deja depinde de limbajul/tehnologia utilizata și preferințele fiecărei persoane în particular. A programa se poate și pe hârtie, de fapt, de la aceasta totul a și început, iar instrumentele disponibile acum programatorilorsunt doar pentru a le face viata mai ușoară.
#4. Ce e mai bine: să alegi o specializare îngustă într-un domeniu, sau să cunoști câte puțin din diferite tehnologii?
Aș spune ca e bine să le combini. Sunt prețuiți (și bine plătiți) „experții”, adică oamenii care știu foarte bine un domeniu îngust. Dar pentru a deveni un astfel de expert, ești nevoit sa înveți mai mult decât tehnologia aleasă, pentru a fi flexibil și apt de a gândi „out of the box”.
Să fac o paralelă cu o trupa muzicală. E bine să cânți foarte bine la chitară, dar e și mai bine să știi măcar superficial ce face toboșarul sau vocalul, pentru că muzica rezultă doar în urma colaborării voastre.
#5. Vorbind despre sistemul de operare Android, ce părere ai despre el, din perspectiva unui programator? Care sunt avantajele și dezavantajele utilizării Android? Care sunt avantajele și dezavantajele dezvoltării aplicațiilor pe Android?
Android este un sistem de operare modern pentru smartphone-uri și tablete (în viitorul apropiat posibil pe automobile și alte dispozitive precum ceasuri de mană). Are la baza kernelul de Linux și e Open Source.
Google (compania deținătoare de licență) a investit mult timp, ca să facă cât mai simplă și accesibilă dezvoltarea applicațiilor pe Android. Suplimentar la mulțimea de tutoriale și exemple online (foarte bine documentate), Google oferă developerilor un mediu de dezvoltare gratuit, pe baza IntelliJ IDEA (acum câteva luni Android Development Tool avea la baza eclipse, un alt mediu de dezvoltare open source pentru programtori în Java).
Avantajele Android-ului din perspectiva unui dezvoltator constau în faptul că e foarte accesibil. Pentru a dezvolta aplicații pe Android ai nevoie de cunoștințe de bază a limbajului Java și dorința de a face ceva frumos.
Dezavantajul mare este că e prea generic. Android rulează pe o gama mult prea largă de dispozitive și e destul de complicat să testezi aplicațiile scrise pe toate dispozitivele posibile (caracteristicile tehnice diferă de la device la device). Ba chiar e imposibil. Drept urmare, unele aplicații pot să ruleze greșit pe dispozitive ne testate de developer.
Cum arată o masă de testare a unui Android developer:
http://tctechcrunch2011.files.wordpress.com/2012/05/animoca-android1.jpg
#6. Cât de des se fac schimbări în Android și ce implică aceste schimbări?
Se schimbă experiența utilizatorului de zi cu zi. Dacă până acum o persoană avea nevoie de telefon doar pentru a vorbi, astăzi ea are nevoie de telefon pentru a naviga pe internet din transport public, pentru a asculta muzică, pentru a avea chat-uri comune în grupurile din facebook.
Mâine (posibil) toți vor utiliza telefonul pentru a urmări starea personală a sănătății.
Este clar că va fi necesar de construit altfel și aplicațiile, deci și instrumentele se vor schimba, librăriile de baza se vor schimba, interfețele de comunicare cu dispozitivele noi… totul se schimbă continuu.
Cat de des ? Cam odata la jumatate de an – 1 an.
#7. Cât de utilizat este sistemul de operare Android printre consumatorii obișnuiți și specialiști?
Aici puteți găsi o prezentare foarte bună despre trend-urile tehnologice ale anului 2014 http://www.slideshare.net/kleinerperkins/internet-trends-2014-05-28-14-pdf
În ultima perioada tot mai multi oameni utilizează smartphone-urile pentru a naviga pe internet. Global oamenii utilizează mai mult smartphone-ul decât calculatorul. Cauza fiind evidentă – prețul accesibil. Iar cota deținută pe piață de Android astăzi constituie 80% global. Sau altfel spus 4 din 5 smartphone-uri vândute acum în lume au instalat pe el sistemul de operare Android. Este o cifră colosal de mare, ținând cont de faptul că Android a apărut în 2008 (doar 6 ani în urmă).
#8. Cât de solicitați sunt pe piata IT specialiștii în Android, cum îi abordează companiile specializate pe dezvoltarea aplicatiilor mobile?
Practic orice produs care acum se produce pe piata, are nevoie de o versiune pe mobil. Chiar dacă funcționalitățile pe mobil vor fi reduse, chiar dacă posibil nu va fi populară aplicația, ea se face pentru că „toți fac”. Este un trend care îi face pe programatorii de aplicații mobile să fie întrebați și căutati în orice companie.
Alegând drumul unui „mobile developer” astăzi ești cu siguranță asigurat cu un job, ba chiar o să ai oportunitatea să-ți alegi compania în care vrei să lucrezi (fie start-up, big corporate sau poate chiar freelance).
#9. Cât e de ușor să pui o aplicație creată în Android pe Google Play?
Cu părere de rău, dezvoltatorii din Republica Moldova au posibilități limitate de publicare în magazinul Android. Ei pot publica doar aplicații gratuite. Deci dacă dorești să publici o aplicație gratuită pe Google Play, sau dacă ai un alt model de monetizare decât acel de vânzare directă (poate vrei să adaugi banere cu reclamă în aplicație). Tot de ce ai nevoie este un cont bancar cu 25$ pe el. Este o taxă percepută de către Google în schimbul dreptului tău de a publica aplicații Google Play.
#10. Sfat pentru studenti: ce limbaj de programare ar fi mai bine să învețe la inceput?
Oricare. Fiecare limbaj are specificul său, plusurile și minusurile sale, și dacă vrei să devii un bun programator oricum vei fi nevoit să înveți câteva, pentru a le compara, pentru a înțelege mai bine ce înseamnă în general programare.
La universitațile din Moldova se predă primul limbaj – C sau C++. În Europa în universități în ultimul timp se predă tot mai mult și mai mult ca primul limbaj Java și Python.
Python chiar constituie astazi cel mai popular limbaj introductiv pe care îl învață în universitățile top din SUA.
#11. Cât e de importantă implicarea profesorilor și facultății pentru un viitor specialist IT?
Aici cred ca ar fi de menționat că depinde și de facultate și de profesori. Din cauza dinamicii industriei nu toți profesorii universitari reușesc sa fie în pas cu ultimele tendințe, iar ceea ce predau ei nu se mai aplică în practică. Cu părere de bine, aceasta este mai mult o excepție decât o regulă, iar unele obiecte care la prima vedere par a fi inutile la universitate, în practica sunt utile.
Studenții astăzi au acces la o gamă vastă de cărți, tutoriale, cursuri online. Iată de ce, în opinia mea, este important ca studenții sa înțeleagă că în perioada universitară ei trebuie sa învețe, fie la ore, fie după ore utilizând alte materiale pe internet. Perioada universității este perioada formării. Toți vor găsi un serviciu în IT (e criză de oameni), dar nu toți vor evolua rapid și deja aici depinde de ce bază ți-ai pus la facultate.
#12. Ce le-ai recomanda viitorilor și actualilor studenți la IT?
Să-și creeze încă de la universitate obiceiul de a învăța facultativ, de a se interesa de ultimele știri, trenduri în IT. De a experimenta cu instrumentele și limbajele noi apărute. De a citi cărțile care apar în domeniu. De a fi implicat în diferite proiecte, poate chiar open source, de a fi proactivi.
Dacă alegi să devii un programator, trebuie să accepți că vei fi nevoit permanent să înveți și să te dedici profesiei tale.
Industria este prea dinamică pentru a sta pe loc. Ea are nevoie de persoane entuziasmate, care au inițiativa de a aduce schimbări și progrese.
Materialul face parte din cadrul Campaniei de promovare a Carierei IT, realizată de Asociația Națională a Companiilor Private din Domeniul TIC cu suportul Ministerului Tineretului și Sportului prin intermediul Programului de Granturi pentru anul 2014, Proiectului USAID CEED II, Agenţiei Austriece pentru Dezvoltare (ADA), din fondurile Cooperării Austriece pentru Dezvoltare, sub patronajul Ministerului Educației al Republicii Moldova.