Interviu cu Andrei, fost cursant InvatamProgramare.Ro

Curiozitate, rabdare, perseverenta, acestea sunt calitatile cu ajutorul carora orice persoana poate invata programare. Este si cazul lui Andrei Deusteanu, absolventul cursurilor noastre. Pe Andrei il caracterizeaza curiozitatea, gandirea critica si simtul umorului. Stie sa evidentieze, intr-o maniera pozitiva, aspectele negative pe care programarea le poate avea asupra unei persoane.

Salut, Andrei! Spune-ne cateva cuvinte despre tine. Cine esti si incotro te indrepti?

Sunt curios si multilateral – imi place sa-mi bag nasul printr-o diversitate de domenii si sa invat chestii noi. Asta inseamna ca prind destul de repede ce am de facut si tind sa ma plictisesc daca nu exista ceva care sa ma provoace constant.

Care a fost momentul in care ai realizat ca esti suficient de curios incat sa afli ce este programarea? Cum a decurs primul curs, ce impresie ti-a lasat?

Prima data am luat contact cu programarea prin clasa a 4-a, cu HTML-ul. Nu pot sa zic ca mi-a placut extraordinar de mult. In liceu am facut programare din nou – ultimii 2 ani de liceu chiar informatica intensiv si metode de programare destul de complexe precum backtracking-ul, graf-uri, arbori etc. Insa limbajul C++ mi se parea tare greoi – imi scapa pe undeva un punct si virgula imi dadea eroare. De asta am cam ramas “traumatizat” de sintaxa si n-am vazut programarea ca un mod de a rezolva probleme. Lucrurile s-au schimbat cand am ajuns in internship, la eMAG, si am interactionat mult cu bazele de date si limbajul SQL. De acolo am inceput incet, incet cu QlikView si R.

La vreun an dupa asta, am vazut un mail pe grupul de discutii intern al Universitatii Alternative – “Invata sa gandesti ca un programator”. Mi s-a parut super interesanta ideea de curs, orientat spre un anumit tip de gandire si nu spre o tehnologie anume. Asta m-a ajutat sa vad mult mai usor aplicabilitatea structurilor repetitive, blocurile de control (if else) si alte elemente de baza din programare, ca mai apoi sa le aplic pe ce avem de facut la munca – daca ar fi dupa mine asta ar fi formatul ideal prin care orice persoana ar trebui sa ia contact cu programarea, indiferent de nivelul la care vrea sa ajunga.

Povesteste-ne, pe scurt, un moment dificil pe care l-ai intampinat pe parcursul procesului de invatare si spune-ne cum l-ai gestionat.

In modulul 4 am lipsit la 2 sesiuni consecutive chiar cand incepeam sa vorbim despre pattern-ul MVC (un mod de a construi aplicatii web folosind o abordare structurata pe cateva elemente esentiale). Cand am reluat activitatea la curs, mi se parea ca Ovidiu vorbeste limbi straine. Am cautat pe net, dupa, insa tot n-am inteles care e faza cu acest MVC. Abia la final in Code Week-end si dupa a 5-a explicatie am inteles, cat de cat, cum se foloseste acest pattern. Nu pot sa zic ca am gestionat foarte bine aceasta dificultate… Ar fi fost mult mai util sa-mi fac temele si probabil as fi inteles, facand, mult mai repede..

Foarte multe persoane au preconceptii in ceea ce priveste aceasta meserie. Care ar fi primele cuvinte pe care i le-ai spune unei persoane care te intreba “Ce este un programator?”

Programatorul este o subspecie de om care are in varful degetelor niste mici circuite electrice prin care se conecteaza la calculatoare. In creier are o arie specifica si aparte ce-i permite sa proceseze informatie de tip binar – 00101110.
Dincolo de gluma, un programator este o persoana ce gandeste un set de pasi logici pentru a rezolva o problema, ii transpune intr-un format ce poate fi interpretat de un calculator (limbaj de programare), iar mai departe acestia sunt repetati de catre un calculator de zeci sau sute de ori, in mod automat, fara ca programatorul sa mai intervina. As zice ca daca te uiti asa, se observa niste abilitati destul de bine definite care pot fi dobandite. Momentan n-am auzit de cineva care sa se fi nascut cu elementele pe care le-am descris in prima parte. Inainte sa invete sa programeze niciun programator nu stia sa programeze.

Poti sa numesti doua dezavantaje ale programarii?

1 – As zice ca prima tine de dimensiunea etica a lucrurilor. Povestea de aici o surprinde foarte bine – https://medium.freecodecamp.com/the-code-im-still-ashamed-of-e4c021dff55e. Pe scurt, un tanar programator avea de facut un site, care sa contina un formular ce trebuia completat de catre vizitatori, pentru o companie farmaceutica prin 2000. Teoretic, site-ul servea drept prezentare a unui medicament pentru fete. Cerinta era de asa natura incat indiferent de raspunsul dat la completarea formularului, primeai drept “recomandare” produsul. Am putea zice ca, nah, e chestie de marketing, nu ceva extraordinar. Din pacate, printre efectele secundare ale acelui medicament se regaseau si tendintele sinucigase…

Programatorul afirma ca a reusit sa multumeasca atat de tare clientul, incat acesta l-a invitat la o cina foarte scumpa. Acesta a fost dezamagit cand a aflat, chiar inainte de cina, ca o fata chiar se sinucisese si… Surpriza! Chiar folosea acel tratament…

Ideea e ca, dincolo de bani si de cerinta venita de la client, e important sa evaluezi si impactul pe care codul / aplicatia l-ar putea avea. Inca n-am vazut abordata explicit dimensiunea asta in cursurile / scolile de programare. Asa cum reiese din povestea de mai sus este posibil sa determini o serie de efecte majore pentru viata altor oameni. Nu stiu cati stau si cugeta la asta atunci cand scriu codul.

2. Al doilea, as zice ca e intr-o zona similara – protectia si confidentialitatea datelor. Un video care explica bine ce se intampla – https://www.youtube.com/watch?v=5pFX2P7JLwA, si o poveste despre lucruri din spatele cortinei, alegerile prezidentiale din SUA – https://motherboard.vice.com/en_us/article/how-our-likes-helped-trump-win. Toate serviciile “gratuite” pe care le folosim colecteaza date despre activitatea noastra. Mai departe sunt vandute catre cei care fac reclama. Daca ti s-a intamplat vreodata sa vorbesti cu un prieten despre ceva pe Messenger si apoi sa vezi o postare / reclama in News Feed-ul de Facebook – nu e magie, e programare in spate. Si, teoretic, fiecare din noi e de acord cu asta – a se vedea click-ul in casuta cu “Accept Termenii si Conditiile”. Aici insa cred ca e vorba, mai degraba, de o intrebare decat de un dezavantaj – Datele pe care eu le dau despre mine valoreaza ce primesc din aceste servicii?

Cum au fost, pana acum, job-urile pe care le-ai avut in calitate de programator. Ai descoperit lucruri noi la tine, crezi ca programarea este si o activitate de invatare continua?

N-am fost si nici nu sunt programator. Codul pe care il scriu eu nu ruleaza constant fara ca eu sa intervin. Cu toate astea, e cam dificil sa aplici un set chiar si de 3 reguli simple cand e vorba de 2 milioane de randuri, asa ca folosesc elemente de programare. Iar astea imi sunt folositoare pe partea de Statistica / Analiza de date pe care lucrez momentan.

Ai reusit, din joburi, sa scoti ce ai investit in cursuri de formare?

Da, mi-am recuperat investitia. In plus, orice curs nou deschide calea spre lucrurile mai complexe si mai valoroase pe care vreau sa le fac mai departe.

Ce le-ai spune celor care isi doresc sa incerce o cariera in programare dar se tem sa faca pasul?

La 5 ani stiai sa scrii sau sa citesti? Dar la 8 ani? Cel mai probabil ca intre timp ai invatat. Ce ai fi putut face daca nu stiai sa scrii sau sa citesti? Ne bazam din ce in ce mai mult pe tehnologie si avem din ce in ce mai multa nevoie de ea. Mie programarea imi suna a oportunitate. Mai departe alege fiecare daca vrea sa fie doar un consumator sau daca doreste sa invete pentru a fi producator.