În Interviuri

Cum înveți să dezvolți aplicații pentru Android – Interviu cu Mădălin Găgeanu

android development

Sunt mulți cei care vor să învețe să dezvolte aplicații pentru Android, dar nu știu cu ce să înceapă; ce resurse să aleagă, ce să citească, pe cine să întrebe și cât timp le va lua tot procesul. Tocmai de aceea, am stat de vorbă cu Mădălin Găgeanu, pentru a afla cum a învățat el să dezvolte aplicații pentru Android.

Ctrl-D: Cu ce ai început procesul de învățare?

Mădălin Găgeanu: Trebuie să recunosc că nu a fost o alegere personală. Firma la care lucram ca și consultant IT, ITHR Consulting, a dorit să dezvolte o aplicație proof-of-concept pentru Vodafone UK. Era vorba de o simplă simulare a părții de UI pentru un feature de in-application billing. Am început cu aplicația de Hello World și de acolo am continuat în pași mici până când am ajuns la varianta finală.

 

Ctrl-D: Ce resurse ai folosit și care au fost criteriile în funcție de care le-ai ales?

Mădălin Găgeanu: Pentru început am folosit site-ul dedicat care, pe vremea aceea, era destul de rudimentar. Am citit tutoriale step-by-step și cu cât mai multe exemple de cod. Nu am folosit un site anume, pur și simplu am cautat pe Google. Am încercat să găsesc tutoriale cu cât mai multe exemple de cod, unde codul era explicat linie cu linie. Mai târziu, când Google a îmbunătățit site-ul dedicat Android, l-am folosit pe acela.

Acum, baza de documentare sunt developer site-urile de la Google si Stack Overflow. În același timp, urmăresc clipurile de pe canalul Youtube dedicat developerilor și, anual, prezentările de la Google I/O.

 

Ctrl-D: Ce metode de învățare au funcționat cel mai bine?

Mădălin Găgeanu: Pentru început, tutorialele step-by-step și câteva clipuri de pe YouTube unde se poate urmări „in real-time” cum se lucrează. În principiu, cred că e importantă înțelegerea și aprofundarea principiilor de bază ale platformei. Dacă acestea sunt știute, restul sunt doar detalii.

Am încercat mereu să plec de la ceva mic, un „Hello World”, și de acolo, în pași mici, să cresc aplicația și să adaug features. Cred că cel mai bun mod de a învăța este de a te lovi de probleme și a încerca să le rezolvi.

 

Ctrl-D: Ce metode nu au funcționat și de ce?

Mădălin Găgeanu: Cărțile nu prea au funcționat. Inițial am cumpărat o carte de Android, ceva destinat începătorilor. După primele 3 pagini parcă citeam un manual de matematică, m-am plictisit. În plus, marea majoritate a informațiilor erau deja pe site-ul Android. Trebuia să văd un rezultat, ceva funcțional pe telefon, cât mai repede. Așa am abandonat cartea în favoarea unui approach step-by-step. Când mă loveam de un aspect pe care nu-l înțelegeam, căutam în documentație sau Google explicații.

Mai târziu am încercat o altă carte, mult mai axată pe soluții la probleme frecvente decât pe informații de ansamblu. A fost ceva mai utilă, dar tot Google și Stack Overflow au rămas baza.

 

Ctrl-D: Ai avut un program bine organizat sau ai învățat în timpul liber, printre picături?

Mădălin Găgeanu: Nu am avut un program organizat. Inițial, principala ocupație la job nu a fost Android, așa că am învățat din când în când, în măsura timpului liber. Mai târziu, când am căpătat mai multă experiență, am început să mă implic în mai multe proiecte și am început să îmi fac experiență și lucrând într-un cadru organizat.

Ulterior, am lucrat în echipa de prototipuri de la Vodafone, unde am avut șansa să învăț multe despre diverse aspecte ale platformei, având posibilitatea să experimentăm.

 

Ctrl-D: Cât timp ți-a luat?

Mădălin Găgeanu: Sincer, mai puțin decât am crezut. În câteva ore, de la zero aveam deja un app cu câteva ecrane și, după câteva zile, am livrat primul proof-of-concept. Experiența în Java a ajutat.

 

Ctrl-D: Ai avut un mentor sau o persoană care să te ghideze cât de cât? Dacă da, cum a decurs relația dintre voi?

Mădălin Găgeanu: Nu pot spune că am avut o persoană anume care să-mi fie mentor. Am furat de la cei mai experimentați ca mine cât am putut de mult. La început, un coleg de la ITHR Consulting din Londra, David Haines, m-a ajutat cu tips & tricks. La 3Pillar Global am avut șansa să fur experiență de la Cipri Grigor, mai ales pe partea de front-end.

În general, ajută mult să păstrez legatura cu alți profesioniști cu experiență în domeniu și să discutăm despre problemele peste care trecem și soluțiile pe care le găsim.

 

Ctrl-D: Cum te-ai menținut motivat, în momentele mai grele sau mai solicitante?

Mădălin Găgeanu: A depins mult de circumstațe. În majoritatea cazurilor caut ajutorul prietenilor și colegilor din domeniu. Contează mult să simți că cineva încearcă să găsească o soluție împreună cu tine. Uneori, pur și simplu presiunea deadline-ului te ține focalizat chiar dacă e stresant. Alteori devine personal și atunci asta te împinge înainte.

Altă dată e bine, pur și simplu, să iei o pauză, să-ți limpezești mintea și să revii asupra problemei mai târziu.

 

Ctrl-D: Cât de important consideri că este feedbackul, într-un proces de învățare?

Mădălin Găgeanu: Esențial este, aș putea spune, nu neapărat feedback-ul, cât comunicarea. E important, când înveți o tehnologie nouă, să discuți cât mai mult despre ea. La început e inevitabil să nu faci greșeli, să spui prostii.

Dar așa le poți corecta și poți învăța din greșelile tale și, mai important, ale altora. Auzi multe chestii noi, păreri și opinii de la oameni care au experiența în domeniu. La început poate nu înțelegi tot, dar ceri explicații. Poți afla așa multe lucruri utile sau interesante care îți pot stârni curiozitatea și te motivează să descoperi aspecte noi. În plus, se dezvoltă și un vocabular adecvat.

 

Ctrl-D: Tu de la cine ai primit feedback și în ce fel te-a ajutat?

Mădălin Găgeanu: Cred că cel mai important feedback l-am primit din code-review-urile pe care mi le făcea Cipri Grigor în perioada colaborării cu 3Pillar Global. În termeni de comunicare, discuțiile cu prietenii care se ocupă de aplicații de Android sunt extrem de valoroase. Mai ales cele în contradictoriu.

 

Ctrl-D: Ce sfaturi le dai celor care vor să îți urmeze exemplul?

Mădălin Găgeanu: Cred că e bine să nu insiste prea mult pe teorie. Dacă principiile de bază sunt cunoscute, cel mai bine se învață scriind cod. În development, când înveți o tehnologie nouă, contează munca depusă mai mult decât orice. Niciun număr de pagini dintr-o carte nu va înlocui câteva ore de coding efectiv.

Pentru Android există o serie de tutoriale extrem de bine puse la punct, chiar site-ul oficial oferind o serie de ghiduri și traininguri excelente care te pot ajuta să dobândești o bună înțelegere a principiilor de bază. Abordarea trebuie să fie cât mai pragmatică și practică. În același timp, să facă pași mărunți, incrementali. Platforma este foarte vastă și nu ai cum să o înveți în întregime.

Odată sedimentate principiile de bază, găsirea unei soluții pentru aspecte de care nu te-ai mai lovit e doar o chestiune de timp. Soluțiile folosite mai des se vor memora involuntar; pentru restul există notes & snippets. Experiența lucrului efectiv cu platforma este cheia.

Sursă imagine: Shutterstock