De ce C++ ci nu alt limbaj?

De ce la scoala se invata C++ (din a 9a pana in a 11a, in a 12a din cate stiu e C#) si nu alt limbaj de programare?

Findca 5000 de profesori de informatica nu stau sa invete altceva pe un salariu de 2000-2500 la un nivel ca sa il poata preda cu incredere si sa dea teste din el pana se titularizeaza. Exista si 100-200 modele de teste de pregatire pentru bac, ar trebui rescrise. Multe licee inca predau Pascal…

Limbajul e irelevant, conteaza doar algoritmii si gandirea. Ar conta daca s-ar dori popularizarea programarii intre cei cu aversiune fata de calculatoare si informatica, dar nu doreste nimeni acest lucru, mai bine ii lasa sa memoreze un program din caiet si daca se compileaza ia un 5-6. (de exemplu e mult mai usor sa inveti programare vizual, desenand sau modificand jocuri si nu intr-o consola, respectiv fara un compilator)

Chiar si C++ e inutil la nivelul predat in liceu, dar daca iti place informatica ai youtube, ai site-uri cu tutoriale cat china ca sa inveti ori C++ la un nivel functional ori sa inveti orice alt limbaj sau unealta/framework/etc. Nu iti ia mai mult de o saptamana, doua sa faci ceva fain cu informatiile de pe youtube si google daca ai o idee. (+ mai sunt si o gramada de site-uri faine gen freecodecamp/codeacademy/khanacademy)
Chiar si algoritmii si structurile de date sunt explicate super fain cu animatii si illustratii in multe locuri, foarte putini profesori iti pot oferi aceeasi calitate a informatiilor.

Partea grea din informatica e sa inveti ce structuri de date sa folosesti, cum sa iti planuiesti si extinzi baza de date, cum sa scrii ceva sigur, cum sa lucrezi cu programe si date deja existente si cum sa faci o interfata estetica si functionala.

Iar pentru tine cel mai greu lucru e sa te limitezi din invatat si sa faci ceva, ai atata informatie incat nu iti ajunge toata viata sa te uiti la 10% din video-urile legate doar de C++ pe youtube, sa nu mai zic nimic de JS/alt limbaj, in fiecare zi apar 10 articole noi.

In opinia mea, daca ai un profesor bun si vede ca poti mai multe, iti poate da proiecte (chiar in echipa) si resurse pe langa ce se preda la liceu ca sa te motiveze, dar putini au timp de asa ceva.

1 Like

Eu nu am facut C++ in liceu, ci Sinclair Basic (si intre noi fie vorba, o disperam pe profă că eram mult peste nivelul ei :slight_smile:).

Dar din ce intrebari am tot vazut de la liceeni pe diverse forumuri, nici macar nu se poate numi ca ei fac C++ la scoală, ci un fel de C cu std::cout si std::string (nici macar std::list sau std::vector cu iteratori, de features de C++11 sau C++14 nici nu are sens sa vorbim). Nu tin minte sa fi vazut vreodata chestii care intr-adevar sa fie specifice C++ (clase, inheritance, overload-ul functiilor si operatorilor, templates etc).

Totusi consider ca ar fi o greseala sa invete din start un limbaj de nivel inalt. In primul rand, C/C++ nu se demodează, azi e, mâine nu, cum sunt jdemiile de limbaje noi care apar in fiecare an. In al doilea rând, C/C++ sta la temelia intregului ecosistem informaţional. In al 3-lea rând, daca stii C/C++ e foarte usor sa inveti orice alt limbaj (de fapt multe din celelalte limbaje s-au inspirat din C/C++), invers ar putea fi mai dificil. Samd.

6 Likes

+1 ca au pus C# dintr-a 12a, desi nu as baga mana in foc ca e peste tot asa.

Motivul principal cred ca este inertia institutionala. AFAIK programa a fost gandita prin anii '90 cand se introducea informatica in liceu. Pe atunci C/C++/Pascal erau populare, iar limbajele moderne erau abia la inceput. Asa ca pe ele le-au ales. S-au schimbat multe lucruri in IT, dar este greu sa schimbi lucruri de genul asta la nivelul unei tari intregi, indiferent de tara. Trebuie manuale noi, reantrenament al profesorilor, regandirea programei in multe cazuri etc. La noi este si un nivel foarte scazut de infrastructura educationala - profesori, echipamente, scoli etc. si un nivel mare de coruptie si ineficienta. Asa ca nu cred ca Python vs JavaScript pentru liceu este top-of-mind ptr ministrul educatiei de luna asta. Bine, nici nu cred ca este presiune prea mare de la parinti si elevi. Nu am date, dar nu cred ca se plang parintii ca nu se face Python la scoala in loc de C/C++ la vre-o sedinta cu parintii. Daca vin parintii e bine.

Toata treaba asta e destul de aiurea in principiu, iar lipsa de IT-isti acuta din domeniu are ca o cauza importanta faptul ca primul contact al unui student cu programarea este via C sau Pascal, limbaje greoaie si neiertatoare in care exemplele de inceput sunt mici programe de consola; in loc de ceva mai “wow” care sa-i faca interesati de domeniu - gen o aplicatie cu elemente vizuale, o pagina web, un robotel etc facute intr-un limbaj frumos precum Python, C#, JavaScript (de ceva vreme) etc.

5 Likes

Pe de alta parte pune-i sa invete Javascript / PHP sau alte prostii si o sa te trezesti cu o tona de “programatori Wordpress” care habar n-au de nimic dar au facut la liceu programare si au urmarit 2-3 tutoriale pe youtube. C++ e foarte ok, e relativ simplu si ai ocazia sa intelegi si de ce se intampla unele lucruri

1 Like

Tot vad “logica” asta si nu prea o inteleg.
Cum se face ca daca lucrezi in PHP / JS esti slab dar daca lucrezi in alte limbaje esti geniu? In C++ nu poti fi slab?

La fel si cu Wordpress.

2 Likes

C++ e foarte ok pentru cei care inteleg lucrurile, dar cu C++ modificarea unei imagini sau crearea unui joc e de domeniul SF la nivelul predat in liceu. Cu un limbaj precum python/js e o joaca de copii daca nu faci ceva foarte complex.

Nu am zis asa ceva, pana la urma si eu traiesc din aceleasi “prostii”. Voiam sa spun ca, din punctul meu de vedere, e important sa intelegi bazele, sa ai o oaresce idee despre ce / de ce se intampla ceva atunci cand tu scrii o linie de cod.

Cat despre Wordpres, cred ca stii ce voiam sa spun :slight_smile:

De fapt e la fel de dificil sa modifici o imagine in python/js/whatever daca te bazezi doar pe limbaj si nu folosesti un biblioteca/framework oarecare. Pai daca folosesti QT poti sa faci ditamai browserul in mai putin de 50 de linii de cod, nu doar sa modifici o imagine…

1 Like

N-as incadra C/C++ la bazele programarii de ceva vreme. Programarea asa de low-level e un subiect desstul de avansat, si se preteaza la din ce in ce mai putine situatii - in embedded si jocuri video in principiu.

Trebuie sa ne uitam la situatia de ansamblu. Si asta e ca in principiu liceul si intr-o mai mica masura facultatea romaneasca nu reuseste sa predea mai nimic din programare elevilor. Cine prinde ceva prinde in ciuda profesorilor. La liceul relativ bun din Bucuresti pe care l-am urmat, erau 3-4/30 de elevi in clasa care au obtinut ceva din cursurile alea. Pentru restul a fost o pierdere de vreme frustranta. Nu trebuie sa fie asa - la matematica, literatura, istorie etc. toata lumea era OK, sau cel putin atat de OK cat le permitea efortul depus. Mi se pare mai important sa aduci toti 30 de elevi la un nivel in care inteleg ce se intampla si pot opera cu conceptele programarii. Iar cine vrea sa faca performanta pe la olimpiade sau se gandeste la facultate o sa se ocupe de capul lui ca pana acuma in plus.

1 Like

In 2012 , nu era c# era in sa schimb Oracle Sql si html, deci tot respectul pentru profi care vin macar cu ceva in plus, fie ca e putin.

Daca as fi facut eu php cat c++ am facut la scoala :)) devedem senior pana acum, auzisem ca vor sa bage html si css in clasa a 8 a, deci poate in 10 ani vor fi orele de info mai placuta.

C++ e fain, insa doar daca este explicat de la 0 si pas cu pas.Nu pe sarite si din avion…

Cum sa nu fie c# in 2012? primul contact cu el l-am avut in 2008, iar limbajul a aparut prima data (conform wiki) in 2000.

In licee… nu se preda.

Scoala romaneasca de informatica, asa cum este ea, este o scoala de top:


Vreau sa cred, si cred ca programele scolare sunt gandite de profesionisti, care reusesc sa le alinieze la particularitatile de varsta ale elevilor, la legislatia privind accesul la educatie in mod echitabil etc si de ce nu, iata, la cerintele invatamantului global.
Liceul dezvolta cultura generala si pune bazele formarii profesionale.
Avem desigur cu totii dreptul la opinii si ne si asumam responsabilitatea exprimarii lor.
Auzisem la un moment dat ca se discuta chiar de posibilitatea eliminarii orelor de informatica (ma refer la cele de programare si nu la cele de TIC), din programa scolara. Mi se pare atat de absurd acest zvon, incat inclin sa cred ca era doar o gluma proasta.
Subiectul imi aminteste insa de o intamplare de pe vremea studentiei, imediat dupa revolutie, cand studenti fiind in anul terminal, participam la o manifestatie studenteasca unde din tribuna a inceput sa se auda sloganul: jos cu repartitiile! La solicitarea noastra, ministerul s-a conformat si prin urmare le-a anulat, lasandu-ne descoperiti intr-un sistem care inca nu se schimbase.
Morala: haideti sa apreciem ce inca mai avem valoros, pana nu e prea tarziu.
O zi frumoasa!

Nu, nu e absurd, numarul elevilor care studiaza informatica in liceu si continua cu facultatea de informatica e sub 10%-20%, acelasi fenomen se intampla si la unele facultati nu la toate…

Din clasa mea de liceu cu profil de informatică intensiv am fost la informatică vreo 4 oameni. Eram 24 in clasa.

Și bunul meu coleg a renunțat la programare acum ceva ani.

1 Like

Eu zic sa nu mai propagam astfel de mituri. Doar ca avem olimpici nu inseamna ca scoala e “de top”. Trebuie sa ne uitam la rezultatul pe intreaga populatie (in sens statistic) de elevi. Si acolo avem masuri obiective gen teste PISA, rata abandonului scolar de >15%, 50% absolventi de bac, admitere pe dosare la majoritatea universitatilor, lipsa universitatilor in top-uri etc etc etc[1] care ne zic ca situatia e foarte grava, iar gradientul este negativ.


[1] Sunt multe

7 Likes

Analogia ar fi ca avem un bazin cu apa adanc, in el sunt vreo 10-20 de inotatori profesionisti care nu isi amintesc cum au invatat sa inoate, langa bazin sunt 2000 de spectatori care poate ar vrea sa invete, dar e o regula stricta ca in bazin poti intra doar fara aripioare.

Unii mai curajosi stau si se tin de margini, restul nici nu incearca. Rar cate unul mai invata sa inoate cat de cat ca sa nu se scufunde.

4 Likes

Unul dintre motivele acestor rezultate este dat de desele experimente facute pe sistemul national de invatamant. Multe dintre ele, nereusite.

2 Likes