În Cariere

Avantajele inițierii timpurii în programare – partea II

inițiere în programare

În prima parte a acestui articol am prezentat modul în care învățarea programării de către tinerii aflați încă la vârste mici îi ajută să-și dezvolte gândirea logică și abilitățile de rezolvare a problemelor.

Promiteam atunci că voi vorbi mai multe despre unde se poate învăța programare, gratuit, în România, dar și despre tehnicile și limbajele de programare potrivite pentru copiii de peste opt ani. Voi încerca să îmi țin promisiunea în paragrafele următoare, împărtășind experiența pe care am acumulat-o în ultimii doi ani, de când particip și coordonez echipa de mentori care se ocupă de atelierele de programare Coder Dojo din București.

Limbaje de programare potrivite pentru copii

În ultimii ani au fost dezvoltate mai multe metode și limbaje de programare dedicate tinerilor, dar asta nu înseamnă că ei nu pot învăța și folosi tehnologii mai avansate. Deși unele dintre aceste metode nu au fost dezvoltate în mod special pentru predarea limbajelor de programare, ele pot fi folosite cu mult succes atunci când dorim să-i învățăm pe tineri să programeze în diverse limbaje adecvate nivelului lor de cunoștințe:

  • Scratch
  • Dintre limbajele dedicate copiilor, Scratch, creat și lansat în 2006 de MIT Media Lab, este cel mai cunoscut. În prezent, Scratch este folosit ca unealtă educațională în mai multe domenii, printre care matematică, desen sau muzică, dar menirea sa principală a fost de ajutor pentru a-i învăța pe copii programarea. Printr-o interfață vizuală, tinerii pot să-și scrie propriile programe sau jocuri, creând și interconectând mici dreptunghiuri care reprezintă instrucțiuni în cod;
  • Python
  • Ieșind din sfera limbajelor de programare dedicate celor mici, cel mai potrivit pentru copii, ca sintaxă, pare a fi Python, pentru că este îndeajuns de ușor de deprins încât aceștia să nu-și piardă interesul până reușesc să obțină primul rezultat. După primele concepte învățate în Python, copiii pot trece ușor la programarea de jocuri cu PyGame;
  • JavaScript
  • Un alt limbaj pe care îl putem considera potrivit este Javascript, dar aici avem nevoie de puțin ajutor, deoarece setup-ul este mai complicat, iar copiii își pot pierde interesul până să ajungă să scrie prima linie de cod. Așa că, în ajutor sare un site creat pentru a le ușura copiilor procesul de învățare: Khan Academy.La fel ca Scratch, Khan Academy nu este 100% dedicat programării, dar are o componentă dedicată informaticii ca ansamblu cu, dacă îl putem numi așa, un mediu de programare integrat (un loc în care copiii scriu codul, îl rulează și îl depanează, fără a se folosi de nicio altă uneltă). Cu ajutorul acestui mediu integrat, copiii pot scrie și cod Javascript, dar pot și desena și anima diverse forme geometrice cu ajutorul unui set de comenzi care folosesc, în spate, processing.js.Răspunsul la fiecare linie de cod scrisă, fie că este corectă, fie că produce o eroare, este afișat în timp real în partea dreaptă, lângă editor. Singurul setup pe care copiii trebuie să îl facă este să își creeze cont pe site, să apese pe butonul New Program și să înceapă să programeze. Documentația și editorul sunt disponibile în mai multe limbi, inclusiv română;
  • HTML și CSS
  • Lăsând la o parte limbajele de programare, una dintre tehnologiile potrivite pentru copii este HTML-ul, bineînțeles însoțit de CSS. Ca și în cazul Javascript-ului, descris mai sus, setup-ul inițial poate părea complicat pentru un tânăr care începe să învețe. Însă, tot la fel ca în cazul Javascript, există mai multe unelte care să îi ajute pe copii să ajungă să scrie cod și să vadă rezultatele cât mai repede.Dintre acestea, de menționat este Code Academy, care, la fel ca în cazul Khan Academy, oferă un mediu integrat în care copiii pot scrie cod HTML și CSS și să primească feedback vizual imediat. De menționat, în cazul Code Academy, este că, spre deosebire de celelalte site-uri sau unelte, este dedicat în întregime programării, oferind același tip de editor și pentru Javascript, Python, PHP și Ruby.

Tehnici recomandate

Sursă imagine: Shutterstock
Sursă imagine: Shutterstock

În contextul învățării programării de către tineri, recomand utilizarea câtorva tehnici pe cât de simple, pe atât de eficiente:

  • Metafora
  • Este prima tehnică și probabil una dintre cele mai relevante, pentru că permite oricărui programator să explice conceptele copiilor folosind asocieri cu lucruri care acestora le sunt deja foarte familiare.De exemplu, o variabilă poate fi asociată cu o ștampilă a unui cuvânt: să spunem că avem un text în care un cuvânt se repetă de foarte multe ori. În loc să scrii acel cuvânt de foarte multe ori de mână, te poți folosi de ștampilă. Așa scrii textul mult mai repede și te asiguri și că acel cuvânt are aceeași formă peste tot.Totuși, acea ștampilă este una magică și, dacă vrei să schimbi cuvântul din text cu un sinonim al lui, o poți face modificând cuvântul de pe ștampilă, iar apoi, schimbarea se va vedea automat și în interiorul textului, în fiecare loc în care ai aplicat ștampila.Similar, în cazul HTML și CSS, putem asocia codul HTML cu un omuleț pe care îl desenăm chiar noi, iar tag-urile HEAD și BODY reprezintă capul, respectiv corpul omulețului. Similar, codul CSS reprezintă hainele pe care i le dăm;
  • Gratificarea instantă
  • Toți copiii, mai ales cei începători în ale programării, au nevoie să vadă imediat rezultatul fiecărei linii de cod pe care o scriu. Din acest motiv, site-urile precum Khan Academy sau Code Academy sunt foarte potrivite. Pentru începători, chiar și acțiunile de save în editor, schimbarea ferestrei către browser și refresh-ul paginii pot fi obositoare și îi pot face să își piardă interesul;
  • Dialogul
  • Un loc important ar trebui să aibă și dialogul cu fiecare copil în parte, pentru a-i afla interesele. Programarea are avantajul că se aplică într-o multitudine de domenii, de la ajutor în rezolvarea temelor la matematică, la jocuri, mașini sau la roboți. Am observat că fiecare copil are o motivație și un scop diferite în programele scrise: fetele sunt mai vizual-creative și preferă recompensele vizuale, în timp ce băieții sunt mai technic-creativi.Dacă, de exemplu, fiecare primește ca task să deseneze ceva în cod, fetele vor alege un obiect și se vor concentra să îl deseneze cât mai exact posibil, în timp ce băieții vor desena acel obiect cât de repede pot, îl vor aduce la o formă brută și apoi vor căuta cum să treacă la un pas următor prin acțiuni simple, cum ar fi adăugarea unui text sau animarea obiectului.

Îndemn pentru cititori

Sursă imagine: Shutterstock
Sursă imagine: Shutterstock

Dacă lecturarea acestor articole v-a trezit interesul, atunci poate că ar fi bine să știți că în România, copiii pot învăța gratuit să programeze în cadrul atelierelor Coder Dojo care se desfășoară în Arad, București, Cluj, Dumbrăvița, Iași, Lipova, Lugoj, Oradea și Timișoara. În cadrul atelierelor, tinerii pot învăța să dezvolte site-uri web, aplicații informatice, jocuri sau roboți. În funcție de disponibilitatea resurselor, atelierele Coder Dojo se desfășoară fie săptămanal, bilunar sau lunar, de obicei în weekend.

Aici, copiii se întâlnesc cu mentori într-un cadru organizat, dar, în același timp informal și deschis. Această formă de învățare în comunitate este benefică din cel puțin trei motive: copiii se motivează unul pe celălalt și, între ei, își explică cel mai bine. În plus, în toți acești ani am văzut cum s-au născut prietenii frumoase în jurul unei pasiuni comune: programarea.

Câteva motive și o chemare pentru programatori

Puține, cred, sunt bucuriile care se pot compara cu aceea pe care o simți când vezi că, într-un fel sau altul, ai contribuit la orientarea sau formarea unui tânăr. În ultimii doi ani, de când mă implic în ateliere de programare pentru copii, am ajuns să înțeleg că toată activitatea nu se rezumă niciun moment la un transfer unilateral de informații și că totul este, de fapt, un proces de învățare reciprocă.

Când vine vorba de aspecte tehnice, copiilor le este mai greu să verbalizeze problemele pe care le întâmpină, dar, în același timp le este greu și să înțeleagă o explicație tehnică. Capacitatea de a explica lucruri tehnice, dar fără a folosi limbaj tehnic sau capacitatea de a explica ceva în funcție de nivelul la care se află copilul cu care vorbești este o aptitudine folositoare atât în viața personală, cât și în cea profesională.

În viața personală, ne va ajuta în comunicarea cu propriii (viitori) copii, iar în viața profesională, ne poate ajuta cu avansarea în carieră.

 

Să poți asculta, rezolva probleme și explica clar diferite sarcini, concepte sau decizii sunt unele dintre deprinderile foarte importante, poate cele mai importante, pentru un programator senior sau lider de echipă.

 

Dacă v-ar plăcea să vă implicați în atelierele Coder Dojo, puteți fie să căutați un dojo la care să participați ca voluntar, fie vă puteți crea propriul dojo. Pentru mai multe detalii, pot fi contactat pe viorel.sfetea@rga.com

În loc de concluzie

Fără a avea pretenția exhaustivității, am încercat să vă împărtășesc, prin aceste rânduri, câte ceva din experiența mea cu programarea, tinerii și educația. Ar mai fi de spus un lucru, chiar dacă poate deja îl știți: copiii ne sunt cei mai buni profesori și avem nu doar o responsabilitate permanentă față de ei, ci și o datorie de a le mulțumi. Așadar, fie că sunteți sau nu programatori, părinți sau educatori, sper că una sau mai multe idei vor rămâne cu voi, și, cine știe, poate le veți duce mai departe într-un fel.

Sursă imagine: Shutterstock