Sari la conținut

Florin-Marian Bîrleanu: „Bazele programării – sunt extrem de importante.”

Florin Marian Birleanu bazele programarii sunt extrem de importante fotografie 2

De mult timp așteptam să fac acest interviu. Florin-Marian Bîrleanu este un om deosebit.

Țin minte că eram în căutare de informații despre programare și găseam doar tutoriale filmate cu luni de zile în urmă, iar când scriam un comentariu primeam un răspuns peste câteva săptămâni sau, în cel mai bun caz, peste câteva zile, atunci când deja găseam răspunsul sau când deja nu mai aveam chef.

Căutând noi videoclipuri despre programare, am avut norocul să găsesc canalul de youtube Florin-Marian Birleanu. Mai mult, aflasem că în fiecare joi, la ora 19.00 începe un nou Live despre subiecte din programare. Pe acest canal, priveam în direct lecția de programare și adresam întrebări la care, evident, primeam răspunsuri instant, cu explicațiile de rigoare. De atunci, mă strădui ca în fiecare joi să las totul la o parte și să fiu atent la ceea ce a devenit pentru mine ore de programare la care sunt prezent cu mult drag!

Când și cum ați început primii pași în programare? 

Primul contact cu programarea l-am avut prin clasa a 6-a. Abia aparuseră calculatoarele în școală și profesorul de educație tehnologică a fost cel însărcinat să ne facă cunoștință cu ele. Îmi amintesc cât de fascinat eram să caut literele pe tastatură și să scriu comenzi în MS-DOS. La început de tot mă fascina și simplul Edit – o aplicație gen Notepad, dar care rula în terminalul ala negru unde se întâmpla totul în MS-DOS. În Edit fundalul nu mai era negru, ci albastru. Și puteam să scriu texte. Apoi am văzut un Edit și mai fain: QBasic – în care puteam tot la fel să scriu lucruri, doar că dacă le scriam cum trebuie, calculatorul putea să le înțeleagă ca pe niște comenzi și să facă chestii. Deci – ca să revin la întrebare – primii pași în programare i-am făcut cu ajutorul limbajului QBasic, cam pe la vârsta de 12 ani. Aveam în minte să fac animații și jocuri și eram foarte încântat că am descoperit cheia care îmi va deschide acest univers: programarea.

La ce nivel era programarea atunci când ați început dvs această călătorie fără sfârșit?

Ca să răspund la întrebarea asta ar trebui să fac o mică documentare… istorică, să zic așa. Dar asta cred că o poate face oricine cu un pic de Google și cu informația că treburile de care vorbim se întâmplau acum 25 de ani. Deci prin… 1996-1997. O să zic acum doar cum am perceput eu lucrurile. Calculatoarele erau o raritate. Doar un coleg avea calculator acasă. Dar nu era un 386 ca cele de la scoala, ci un HC – adică o tastatură grosolană ce se conecta la televizor (grosolan și el; din ăla cu tub catodic). Eu doar visam la calculator și profitam cât de mult puteam de orele de… informatică, era să zic – dar de fapt încă nu exista materia asta la noi în școală. Ci – așa cum am zis – calculatoarele apărute în școală fuseseră înserate subtil în materia numită Educație tehnologică. Îmi amintesc că primul program mai serios pe care l-am văzut a fost un program scris în QBasic prin care se determina cel mai mare divizor comun a două numere. Mi s-a părut înfiorator programul, dar asta nu m-a îndepartat de ideea de programare. Curiozitatea îmi era prea mare. Voiam să înțeleg ce se întâmplă pe acolo și mai ales voiam să ajung cât mai repede la lucrurile care mă interesau cu adevărat – animația și jocurile. Din punctul ăsta de vedere, QBasic a fost minunat. Era extrem de simplu (după ce îmi arătase proful cum se face) să colorez fundalul în ce culori voiam și să desenez linii, dreptunghiuri, cercuri și arce de cerc. Mai era doar un pas pănă la a face animații. Și tot proful mi-a dat ideea salvatoare: să repet desenarea figurii, dar la poziții diferite, într-o buclă for. Din acest punct încolo, nimic nu mi s-a mai parut imposibil. Îmi amintesc cum în vacanță visam cu ochii deschiși (căci calculator n-aveam, ca să implementez ceva) cum o să-mi programez un joc de șah – cum o să desenez tabla, apoi piesele, apoi cum o să fac să le mut, apoi cum o să fac calculatorul să mute și el… Mai aveam multe necunoscute în „ecuația” asta, dar mă încânta să-mi petrec destul de mult timp gândindu-mă la astfel de lucruri. Chiar dacă gândurile mele ajungeau doar maxim schițe, idei și notițe pe un caiet.

Din experiența dvs ce i-ați sfătui pe oamenii care vor și ei „să-și ia bilet” în această călătorie fără sfârșit?

Din experiența mea… cred că sfatul ar fi să viseze la ceva. Adică să urmărească să facă ceva important pentru ei. Ceva pentru care programarea ar fi cheia îndeplinirii visului lor. Altfel… programarea doar de dragul programării e ceva ce ajungi să simți abia târziu. Până să ajungi acolo vei trece prin „valea frustrării” (sau valea plângerii – cum îi zicea în „Tinerețe fără bătrânețe…”?). Programarea e o „sapă” foarte ingenioasă, dar până ajungi să înțelegi modul în care funcționează „agricultura” în care ea se folosește vei da peste frustrare, neîncredere, lene, nerăbdare, disperare, resemnare și alte minunății de-astea ascunse prin sertarul numit „programare” din cutia Pandorei. Dacă ai un vis, în schimb, el va funcționa ca un far ce te va călăuzi prin ceață. Poate nu vei avansa în linie dreaptă către el, poate nu vei urma calea cea mai scurtă și nici nu vei merge cu viteză dorită, însă il vei vedea acolo și vei ști încotro e destinația. Când te vei împiedica și vei cădea, îți va aminti că merită să te ridici. Când vei vedea un obstacol în calea ta, îți va aminti că merită să îl ocolești. Chiar dacă atunci când vei ajunge acolo vei realiza că de fapt adevărata aventură abia incepe…

Pe canalul dvs de YouTube Florin-Marian Birleanu aveți peste 75 de live-uri în care vorbiți despre bazele programării. De ce sunt atât de importante? 

Seria de live-uri „ABC-ul programarii” de pe canalul meu de YouTube a avut la bază de tot aceeași pornire care m-a făcut ca în 2013 să încep site-ul igotopia.ro. Aceeași dorință de a împărtăși cu oamenii fascinația și bucuria pe care le-am trait (și încă le traiesc) cu ajutorul programării. Doar că adaptată realității de acum – care e mai mult orientată pe video și mai puțin pe text. A fost o provocare serioasă pentru mine să ies din „carapace” și să încerc să mă adaptez la această nouă (pentru mine) modalitate de exprimare. N-aș fi crezut că pot avea emoții mai mari în fața unui laptop decât într-un amfiteatru plin de studenți. Dar am lăsat perfecționismul deoparte și m-am apucat de treabă, scopul meu fiind să-i ajut pe urmăritori să deprindă bazele programării într-o manieră jucaușă și interactivă. Nu ca la un curs rigid și excesiv de serios. Sunt foarte bune acelea pentru cei foarte motivați și puși pe treabă. Însă omul obișnuit e deja suficient de speriat de programare. Scopul meu e să-l împrietenesc un pic cu ea. Să-i arăt că programarea nu e o sălbatică rece și nemiloasă, ci e un personaj cald, fascinant și plin de culoare. Deja dacă reușesc asta, restul misiunii mele e usor de îndeplinit. Căci dacă teama față de acest personaj misterios ți s-a transformat în fascinație, atunci automat vei dori să afli calea către inima lui… Și aici intră în scenă bazele programării despre care m-ai intrebat. Și care… da – sunt extrem de importante. Cum e importantă fundația la o casă și cum e importantă rădăcina la un copac. Fiindcă programarea chiar are multe ramuri și sub-ramuri, ca un copac. Și toată „coroana” asta stufoasă se bazează pe o „rădăcină” care e comună tuturor. O rădăcină care dacă e solidă îi dă copacului stabilitate și îți permite să urci cu încredere în el și să te aventurezi pe orice ramură dorești. 

Ce consecințe poate avea faptul că un începător trece direct la framework-uri și tehnologii avansate fără să înțeleagă bazele programării?

In primul rând, e bine că se poate face și asta. E bine că în prezent avem posibiltiatea de a experimenta cu ușurință lucruri avansate din programare. E bine că poți lua destul de ușor programarea adevarată la un „test drive”. Dar nu înseamnă că știi să conduci într-un oraș aglomerat dacă ai reușit să pornești o Tesla și să te plimbi un pic cu ea într-o parcare goală. Trebuie să iei lucrurile de la bază și să le înveți sistematic. Altfel riști să te pierzi în multitudinea de detalii și situații posibile și să ai senzația că programarea are în ea un strop de magie, de je-ne-sais-quoi. Și nu e deloc așa. Nu e absolut nimic misterios la programare. În esență, programarea e de o banalitate plictisitoare. E ca un dansator care știe să execute la perfecție doar câțiva pași. Extrem de simpli. Dar pe ăia îi face mereu perfect și îi poate face în orice ordine, fără să obosească. E drept că un pic de creativitate poate duce la niște dansuri halucinant de faine, însă asta nu trebuie să ne facă să pierdem din vedere faptul că ele sunt compuse doar din acei câțiva pași simpli. Programarea este despre creativitate, dar este în primul rând despre structură. Ramurile mici ale copacului de care vorbeam mai devreme nu stau în aer, ci stau pe ramuri mai mari, care stau pe tulpină, care e susținută de rădăcină. În esență, programarea e arta de a deschide paranteze în paranteze.

Unde putem antrena „mușchii creierului” pentru a deveni mai buni în programare? 

Există percepția asta că pentru programare e nevoie de multă matematică. Nu e chiar așa. Dar nici total ne-așa n-aș zice că e… E adevarat că cei buni la matematică sunt în general buni la programare (sau o pot învăța mai ușor decât ceilalți atunci când se apucă de ea), însă programatorii nu sunt neapărat foarte buni la matematică (dar ceva noțiuni de bază e obligatoriu să aibă). Un matematician învață mai ușor programare pentru că e obișnuit să se gândească la probleme. Nu se frustreaza ușor, ci are răbdare să exploreze diverse idei și să le urmeze într-o succesiune logică foarte precisă. Cu alte cuvinte, matematicianul e obișnuit să își ducă creierul la „sala de forță”. Dar evident că oricine poate face asta. Prin probleme de logică, prin teste de IQ, prin jocuri ca Go și șah, prin puzzle-uri și prin jocuri ca cele pe care le-am prezentat prin live-uri. Dar aș adăuga la lista asta și alte activități mai puțin evidente care eu cred că sunt de folos pentru creier, cum ar fi: exercițiul fizic, plimbările în natură, lectura, învățarea unei limbi străine și poate chiar cântatul la un instrument. Un programator trebuie să fie pregatit să dea mereu peste probleme noi și să nu se teamă de ele, ci să fie gata să le abordeze cu curiozitate, disciplină și perseverență.

Cate ore pe zi ar trebui să dedicăm învățării programării? 

Aici îmi vine în minte vorba aia pe care nu știu care sportiv a spus-o: „Încep să-mi număr repetările abia atunci când simt că nu mai pot.”. Dar n-o spun în sensul de a trage de tine să-ți depășești limitele ca să avansezi în materie de programare. Ci o spun mai degrabă în sensul că atunci când ajungi să te „infectezi” cu „virusul” programarii n-o să-ți mai numeri orele. Te vei îndragosti de ea și îi vei dedica timp fără să fie nevoie să-ți faci o planificare riguroasă sau să simți că faci un efort deosebit. În plus, e greu să-ți contabilizezi orele dedicate învățării programarii pentru că e foarte posibil ca diverse noțiuni sau probleme să te urmărească întreaga zi, ca un „background task” ce îți rulează în creier oricând îl găsește un pic liber. Dacă întrebarea se referă, însă, la care ar fi un minim de timp ce ar trebui dedicat zilnic învățării programării, eu cred că e mult mai importantă consecvența decât cantitatea. Cred că se pot obține rezultate notabile și cu doar 30 de minute pe zi, pentru că se va crea în primul rând obiceiul a studia. Iar o idee pe care ai învățat-o in cele 30 de minute poate fi ca o sămânță pe care ai plantat-o și care îți va rămâne în creier (așa cum ziceam, pe parcursul zilelor următoare) și la un moment dat va da roade (fie sub forma unei noi înțelegeri a lucrurilor sau a unor întrebări care să te facă să explorezi noi perspective). În plus, e mult până începi – căci adesea cele 30 de minute se vor prelungi cu ușurință când va ajunge să te captiveze ceea ce studiezi și când vei vedea că lucrurile încep să se lege în mintea ta.

Ne puteți povesti mai multe despre proiectul dvs prin care doritorii pot învăța bazele programării în 12 luni? 

E funny că în 2013 am publicat pe site o serie de articole de bazele programarii pe care le-am adunat laolaltă sub forma unui tutorial de inițiere în programare numit Cum să înveți programare în 8 zile” Iar în 2022 am făcut un live cu titlul „Programare de la 0 în 12 luni”… Pentru a învăța bazele programării nu sunt suficiente nici 8 zile și nici nu sunt necesare neapărat 12 luni. Învățarea este un proces foarte intim și greu de automatizat. Mai ales în programare, unde nu e suficientă transmiterea de informații, recepția și fixarea lor, ci e absolut necesar ca informațiile să fie puse la lucru și să se transforme în deprinderi. De asta în cursul „Abecedarul programarii” pun accent pe implicarea activă – prin luare de notițe (cu pixul pe hârtie), prin rezolvarea de teme teoretice și practice și prin formularea de întrebări legate de orice neclarități ce apar. Cursul este la a 3-a ediție și se adresează „copiilor” – fie că au 11-12 ani, fie că au peste 50. E important ca toți cursanții să fie „copii” indiferent de vârstă, pentru că doar așa vor putea să abordeze cu entuziasm toate provocările pe care le primesc și doar așa vor putea să se imerseze în procesul de învățare cu curaj și vulnerabilitate. Scopul e ca la finalul celor 12 luni de curs (sau mult mai devreme, în funcție de implicarea fiecăruia) nu doar să cunoască niște lucruri, ci să le înțeleagă și să le facă parte din limbajul lor și să-și îmbogățească cu deprinderi noi „trusa de instrumente” cu care abordează provocările vieții. Limbajul de programare folosit în curs este un subset din limbajul JavaScript, dar noțiunile de programare pe care le exersăm cu ajutorul lui sunt foarte ușor transferabile către limbaje ca C++, Java și Python. Așa cum am mai spus, focusul e pe întărirea „rădăcinii” pentru a putea urca apoi cu încredere către diversele „ramuri”.

Oamenii care nu au o diplomă în domeniul IT-ului se pot angaja ulterior doar cu un bagaj solid de cunoștințe? 

Da. Cunosc exemple. Și este și logic să fie așa, pentru că scopul unei firme din IT e să ofere soluții clienților, nu? Deci are nevoie de oameni pricepuți în construirea de soluții. Oameni care să facă lucruri, să producă. Diploma nu programează în locul tău. Și nici lipsa diplomei nu-ți introduce erori în cod. 

Ce planuri de viitor are Florin-Marian Bîrleanu? 

Să ajut un milion de români să învețe bazele programării. Nu pentru că un milion ar fi un număr special. (Poate că mai special ar fi 1048576, fiindcă e pătratul lui 1024 (care e puterea a 10-a a lui 2 (care e numărul de stări cu care lucrează la baza de tot calculatorul)).) Ci pentru ca atunci când zic că vreau să ajut un milion de români să învețe bazele programării asta îmi dă o direcție în care să mă îndrept, mă motivează să continui atunci când mi-e greu și mă face să visez frumos la o Românie în care oamenii sunt obișnuiți să gândească cu propriul creier, să facă distincție între ce pot controla și ce nu, și să înțeleagă importanța deciziilor și cauzalitatea evenimentelor.

_____________

Alte interviuri frumoase găsiți în rubruca cu interviuri.  

2 comentarii la „Florin-Marian Bîrleanu: „Bazele programării – sunt extrem de importante.””

  1. Florin, este un profesor extraordinar, pe care l-am prins in facultate si printre putinii care isi faceau meseria din dorinta de a te invata, nu din obligatia profesionala si constragerile directoriale.

    Are un mod cald de a prezenta informatii legate de tehnologie si informatica, iar noile video-uri sunt chiar tari, mai ales ca abordeaza si tehnologii noi, utilizate si cautate in piata.

    Felicitari pentru articol!

    1. Și mie îmi plac foarte mult live-urile lui Florin! Este un profesor care știe cum să te motiveze și, cel mai important, știe ce trebuie să-i ofere unui începător ca să aibă dorința de a studia în continuare programarea și noile tehnologii.

Lasă un răspuns

Adresa ta de email nu va fi publicată.