Înapoi la blog

Ghidul începătorilor în C++: învață ce este și la ce se folosește limbajul de programare...

C++, o legendă. Sau, mai degrabă, un clasic în viață. Limbajul de programare care se învață la liceu și pe băncile facultății. Limbajul despre care se spune că este „de bază”. Limbajul despre care un profesor de la Stanford spunea,...

C++, o legendă. Sau, mai degrabă, un clasic în viață. Limbajul de programare care se învață la liceu și pe băncile facultății. Limbajul despre care se spune că este „de bază”. Limbajul despre care un profesor de la Stanford spunea, într-o notă umoristică la limită, Java is the overprotective mom. C++ is the crack mom.

Chiar și așa, încă este în lista celor mai populare limbaje de programare iar marile companii sunt în căutare de programatori care stăpânesc limbajul C++. Cum reușește „să nu-și arate anii”? Unde este aplicat și în ce forme? Haideți să descoperim împreună, în ghidul pentru începătorii care doresc să învețe programare C++.

Totul despre  C și C++

De la limbaj C la limbaj C++

La începutul anilor `70 a apărut limbajul C – dezvoltat de Dennis Ritchie şi Brain Kernighan. Limbajul C++ este creaţia lui Bjarne Stroustrup şi reprezintă o extensie a limbajului C care permite programarea pe obiecte.

invata-programare-c++

Chiar dacă este un limbaj de programare “old school”, printre primele apărute, C e la fel de relevant astăzi ca în momentul în care s-a lansat, în 1970.

Da, poate suna tentant să înveți doar limbaje de programare nou apărute, dar avantajul limbajului C este că reprezintă baza pentru zeci de limbaje de programare care derivă sau au fost influențate de sintaxa și paradigma sa (printre ele se află chiar și Java, Javascript, C# și D). 

limbajul-c++

C este un limbaj de programare procedural, flexibil și versatil, care îi permite programatorului să aibă control maxim prin comenzi minime. Limbajul C are foarte puține cuvinte cheie și structuri semantice, însă nu este foarte ușor de învățat, mai ales pentru un începător în programare - pregătește-te pentru o curbă de învățare mai mare, dar care va merita din plin toate eforturile tale.

Pentru că multe persoane optează pentru limbaje de programare mai noi, învățarea limbajului de programare C te poate diferenția pe piața de muncă pentru că C rămâne an de an în preferințele angajatorilor. Dar vom vorbi mai jos despre piața de angajare și oportunitățile pe care limbajul C/C++ ți le poate oferi.

Cum spuneam, limbajul C++ este ca o extindere a limbajului C. Ca rezultat, aproape toate programele scrise în C pot fi compilate în C++, cu mici modificări.

limbajul-de-programare-c++

Principala diferență între C și C++ o constituie funcționalitățile de clase și obiecte și relația de moștenire dintre clasele de bază și clasele derivate din acestea.

Ce fel de limbaj este C++ și cum scrii cod în C++

C++ este un limbaj hibrid sau un limbaj compilat, pentru că este o combinație între un limbaj procedural și un limbaj de programare orientat pe obiecte. De asemenea, este un limbaj scalabil, cu ajutorul căruia poți crea aplicații ce consumă multe resurse, precum aplicații pentru desktop sau jocuri complexe la nivel grafic.

Pașii pentru crearea unui program în C++ sunt:

  • plecarea de la codul sursă, ca pas 0 - un fișier cu extensia .c
  • preprocesarea
  • compilarea: în acest proces se ia tot codul și se transformă în limbaj de asamblare, specific procesorului pe care se execută programul
  • asamblarea - ia limbajul și îl transformă în cod mașină, sau limbaj binar, în 0 și 1,  care să poată fi citit de procesor
  • linkeditare - se adaugă codului-mașină funcțiile de care avem nevoie (adăugate dintr-o librărie)
  • la final, reiese programul executabil, care poate fi rulat pe sistem. Spre exemplu, în Windows, fișierele executabile au extensia .exe; este de menționat că acest executabil nu este transferabil de pe un sistem pe altul. Dar, ce putem lua de pe un sistem și pune pe altul este codul sursă (puteam lua, spre exemplu, de pe un Linux și transfera pe un Windows)

limbajul-c

Limbajul C++ și Code::Blocks

Pentru a crea programe în C++ ai nevoie de un mediu de dezvoltare integrat (integrated development environment –IDE) care îți va ușura procesul de programare, va compila codul tău și îl va rula. Ce trebuie să faci mai întâi este să alegi IDE-ul și apoi să-l instalezi. Cel mai utilizat IDE pentru programarea C++ este Code::Blocks.

Acesta este gratuit, cross-platform (compatibil cu Windows, Mac și Linux), open-source și permisiv cu numeroase compilatoare.

invata-limbajul-de-programare-c++

Istoria limbajului C++ - suișuri și coborâșuri

Cu un istoric atât de lung, nu e de mirare că C++ nu a fost mereu „la modă”. Kurt Guntheroth, un programator veteran, împătimit al limbajului C++, își amintește în cartea sa  Optimized C++ că la început de secol XXI, limbajul C++ își pierduse din popularitate: mulți programatori îl considerau inferior limbajului C și multe din companii scoteau în față alte limbaje de programare orientate-obiect. Vedeau viitorul în Java, C# sau PHP și se uitau ciudat la cei care încă susțineau că C++ este un limbaj folositor. Apoi, povestea a luat o turnură neașteptată: nucleele de procesor nu deveneau mai rapide, dar încărcătura lor devenea din ce în ce mai mare. Așa că organizațiile au fost forțate să angajeze din ce în ce mai mulți programatori C++ pentru a ține pasul. Și așa, limbajul C++ a devenit un limbaj de programare popular, din nou. 

Motive pentru care să înveți limbajul C++, în 2020

Ce poate sa facă un program C++? O sumedenie de lucruri interesante și cool, în ciuda „vârstei” sale.  Task-urile tipice de programare includ inserarea sau extragerea de date într-o și dintr-o bază de date, livrarea unei grafici de mare viteză în cadrul unui video sau al unui joc de calculator sau controlarea diferitelor dispozitive atașate la PC. Poți chiar să dezvolți un soft pentru a compune muzică sau efecte sonore. 

limbaj-c

C++ este un program bun atât pentru front-end, pentru partea grafică, cât și pentru back-end, în special în zona de servere (MySQL este un exemplu bun de program dezvoltat în C++). Deci, multifuncționalitatea lui este unul din motivele pentru care marile companii angajează programatori care știu C++.

Old school is cool - ce site-uri foarte populare folosesc limbajul C++

Dar cel mai convingător argument într-o discuție este oferirea de exemple concrete. Așa că, să aruncăm un ochi peste cele mai populare site-uri care folosesc C++, direct pe Wikipedia: 

invata-programare-c++

5 dintre cele mai populare site-uri folosesc în back-end C++. Dacă facem un top 3 al celor mai utilizate limbaje de programare folosite de aceste companii mari, obținem:

  1. 7 companii care utilizează Java 
  2. 5 companii care utilizează C++/PHP 
  3. 4 companii care utilizează JS/Python (4 organizations used)

C++ ocupă locul 2 alături de PHP ca programe utilizate, undeva în back-end, fiind chiar mai popular decât Javascript la acest capitol.  Google, Facebook, YouTube și Amazon (care se află în top 5 site-uri cu trafic mare) utilizează C++ pentru back-end. 

Ce ne spune asta? Ne spune că limbajul este popular pentru că performează și, dacă este folosit de aceste branduri mari acum, cu siguranță va fi folosit în următorii 10 ani. 

Ce poți tu să programezi cu C++, astăzi

Vedem că C++ este popular și de viitor. Dar, ce înseamnă asta pentru tine, potențial programator care vrea să învețe și C++? Spre ce fel de companii și spre ce fel de specializări te poți îndrepta dacă înveți acest limbaj? Ce poți, efectiv, să programezi cu el? 

Cum spuneam mai sus, ce îți putem garanta este că dacă vei învăța și C++, nu vei avea timp să te plictisești. 

programare-c++

Anumite limbaje de programare au fost dezvoltate cu un scop anume. Inițial, Java a fost creat să controleze toastere, programul Pascal a fost dezvoltat să te învețe tehnici bune de programare (de aceea este și studiat în școală), programul C a fost creat pentru pentru sistemele de operare. Nu este și cazul C++, pentru că acest program are scop general, multi-funcțional. Și nu degeaba i se spune, mai în glumă, mai în serios, limbajul briceag elvețian - the Swiss Army Knife of Languages. Iată care sunt zonele în care se aplică programarea C++ astăzi, cel mai mult:

  • Game Development cu C++

Ai fost mereu fascinat de gaming și visai de la primul FPS pe care l-ai jucat că, într-o zi, o să ajungi să creezi chiar tu jocuri și mai bune? Dacă da, limbajul C++ este pentru tine, pentru că este utilizat în game developing. Iată care sunt punctele lui tari: domină complexitatea jocurilor 3D, suportă opțiunea multiplayer prin rețea și optimizează resursele.

limbajul-c++

De asemenea, este un limbaj foarte rapid, care permite programarea procedurală pentru funcții intensive ale CPU-ului. Tocmai de aceea este foarte des folosit pentru engine-urile jocurilor. Ubisoft și Blizzard sunt doi dintre marii producători de jocuri care folosesc limbajul C++ în game development, unul dintre jocurile faimoase dezvoltate cu acest limbaj fiind Assassin’s Creed.

  • GUI (graphic user interface) cu C++

Limbajul C++ mai este folosit pentru  dezvoltarea de noi aplicații, bazate pe GUI. Aici vorbim de aplicații foarte utilizate, ca Adobe Photoshop. Multe din aplicațiile de la Adobe Systems  sunt dezvoltate în C++, precum Illustrator sau Adobe Premiere. Deci, programatorii de C++ sunt foarte activi în această zonă, așa că aici poate fi următorul tău trib.

invata-c++

  • Bază de date cu C++

Pentru cei care vor să meargă într-o zonă ceva mai corporate, cu lucrul cu baze de date, limbajul C++ este din nou răspunsul.  C++ este folosit pentru dezvoltarea de software de bază de date. Exemplul cel mai bun de produs de acest gen este MySQL, unul din cele mai populare software-uri de management de bază de date, ideal pentru companii pentru că salvează timp și bani. 

  • Sisteme de operare cu C++ 

Majoritatea sistemelor de operare de la Microsoft (Microsoft Windows 95, 98, 2000, XP, office, Internet Explorer) sunt dezvoltate cu ajutorul limbajului C++ și, de asemenea, câteva părți din sistemul de operare de la Apple. 

  • Acces media cu C++ 

Îți aduci aminte de Winamp Media Player? A fost dezvoltat în limbaj C++, care oferă suport pentru gestionarea fișierelor audio și video, streaming audio sau acces la radio pe internet. 

  • Web Browser cu C++

Lista de aplicabilitate pentru limbajul C++ continuă cu dezvoltarea de browsere, precum Google Chrome și Mozilla Firefox. Mozilla are dezvoltată în C++ și aplicația Mozilla Thunderbird. 

  • Antivirus cu C++

Programarea C++ este folosită și în lupta împotriva malware-ului, Bitdefender fiind unul din programele antivirus dezvoltat cu limbajul C++.

  • Era mașinilor cu C++

Pe lângă ramurile tech de mai sus, mai este una în care limbajul de programare C++ are aplicabilitate largă și foarte utilă. Dacă simți că zonele de programare de mai sus nu sunt destul de atractive pentru tine, avem o variantă mai practică. 

Ai setat de curând un set de spălare la mașina ta de spălat automată? Sau ai apăsat pe butonul de pornire la mașina de făcut cafea? Dacă da, atunci ai experimentat nemijlocit programarea C++, sau, cel puțin o mică parte din ea. Sistemele de funcționare integrate în aparatele electrocasnice au baza în limbajul C++.

programare-c++

De asemenea, putem merge mai departe cu această aplicabilitate mai practică în zone mai serioase, precum mașinile automate, care se conduc singure, sau sistemele de navigare (cum ar fi sistemul de navigare iGO dezvoltat de NNG). Și pentru acestea parte din componentele care le oferă performanță au limbajul C++ la bază.

  • Viitorul cu C++

Chiar dacă acest lucru este acum o utopie, programarea C++ probabil va juca un rol important în răspândirea WebAssembly (wasm). Ce este, mai exact? Un cod de nivel jos (cod byte) care, pe de o parte, salvează bandă și, pe de altă parte, aproape elimină timpul de supra-interpretare, care a fost cel mai mare dezavantaj la asm.js. Această tehnologie, care este în prezent dezvoltată de experți de la Mozilla, Microsoft, Google și Apple, a fost construită de la zero pentru a funcționa de 20 de ori mai rapid decât bine cunoscutul limbaj de programare Javascript. Cu alte cuvinte: reduce în mod virtual decalajul de performanță între aplicații native și aplicații web. Spre exemplu, când încerci să lucrezi cu un Google Sheet ceva mai stufos, datorită lui WebAssembly, vei putea să-l folosești la aceeași viteză ca și cum ar rula pe sistemul tău. Încă în fază experimentală, această tehnologie va schimba fundamental lumea jocurilor video: jocuri acum disponibile pe DVD vor fi în curând disponibile pentru fani sub forma unei pagini web, fără să fie nevoie de procesul de download.

Alege viitorul și vino în echipa de programatori Codecool, la cursul pentru full-stack developer!

Cum să înveți programare în C++

Pot învăța C++ singur, online, dacă sunt începător?

Unul din lucrurile pentru care este cunoscut limbajul de programare C++ este faptul că nu este atât de ușor de învățat (cum ar fi Java sau Python, de exemplu, ideal pentru începători). Totodată, dacă vrei să fii un bun programator, este recomandat să știi limbaj C/C++, pentru că a influențat prin sintaxă și paradigmă zecile de limbaje de programare care i-au urmat.

Pentru început, poți învăța despre limbajul C++ prin acest ghid online, singur, și continuând cu articole mai ample și tutoriale C++. Pentru o viziune mai amplă, te invităm să vizitezi acest tutorial C++ scris, cunoscut pentru că este destul de friendly cu începătorii. Apoi, poți trece la tutorialele video C++, dar să fii atent să le alegi pe cele care au deja o bază de fani mare și care au feedback foarte bun. 

Poți continua să citești despre programarea C++ în cărți de specialitate sau manuale foarte bine structurate. Sunt foarte multe pe această temă, fiind un limbaj de programare care se studiază la liceu, pentru bac și în facultate. 

Poți începe școlărește, cu „Totul despre C și C++ - Manualul fundamental de programare în C și C++" de Dr. Kris Jamsa, Lars Klander, editura Teora (1328 pagini + CD-ROM) sau mai inspirațional, direct cu creatorul programului, cu „C++" de Bjarne Stroustrup,editura Teora (1104 pagini).

invata-c++

Dar, nu te opri la asta, pentru că nu este de ajuns. Învățatul pe cont propriu te disciplinează și responsabilizează într-un mod în care îți va folosi în plan profesional și e o modalitate de învățare pe care noi, aici, la Codecool, o încurajăm. Dar experiența acumulată în timp ne-a demonstrat că lucrul alături de un mentor, într-un mediu de curs organizat, grăbește și îmbunătățește procesul de învățare. 

De ce ai nevoie de un curs de programare în C++

Pentru că, în primul rând, așa cum spuneam, nu este cel mai ușor limbaj de programare și sigur vei avea nevoie de ghidaj consistent. Atunci când lucrezi singur, poți petrece ore, chiar zile, încercând să rezolvi o problemă care ți-ar fi putut fi explicată în 10 minute.

Mai ales pentru un limbaj de programare ca C++, este ideal să faci parte dintr-o comunitate care stăpânește deja limbajul și care poate să-ți spună de unde să te informezi, ce este cu adevărat relevant să înveți, de ce ai făcut o eroare și cum să o repari. 

Învață programarea C++ în cursuri bine organizate

Atunci când alegi un curs de programare care include învățarea limbajului C++, asigură-te că: este un curs care îmbină studiul individual cu o componentă consistentă de mentorat și că vei avea o persoană care te va ghida și va avea un grad mare de disponibilitate. Vei vedea că vei simți nevoia să fii asistat destul de mult în proces. Vei avea întrebări, vor apărea erori, vor fi blocaje. De asemenea, asigură-te că acest curs se întinde pe o perioadă mai lungă de timp. Nu există scurtături și nu poți învăța programare C++ în 7 zile.

programare-c++

Aici, la Codecool, ne-am gândit că este corect să oferim acces la informație și învățare tuturor celor interesați de limbajul C++, indiferent de ritmul de asimilare pe care îl au și tocmai de aceea am pus în aplicare metoda de învățare Mastery Based Learning

Prin Mastery Based Learning, cursanții își pot însuși materialele cursului în ritm propriu, urmând un raționament propriu, individual. Unul dintre marile beneficii este faptul că fiecare cursant este responsabil cu procesul propriu de învățare, ceea ce stimulează automotivarea și dezvoltarea unei mentalități sănătoase. 

Cum se aplică acest tip de învățare? Cursanții trebuie să treacă prin patru camere, având acces la una nouă doar dacă și-au însușit toate cunoștințele din cea anterioară. Au la dispoziție un timp variabil în care să finalizeze un modul: pot petrece între 2-4 luni să finalizeze fiecare modul în ritmul propriu, timp în care lucrează la proiecte în echipă și beneficiază de mentorat individual. Deci, cursul este foarte bine organizat și flexibil, în același timp. 

Învață limbajul de programare C++ temeinic, timp de cel puțin 5 luni

Asta înseamnă să nu dai curs convingerilor că un limbaj de programare se poate învăța în câteva zile sau o lună. 

Experiența de mentorat ne-a învățat, aici, la Codecool, că pentru a învăța un limbaj de programare ca Java, PHP, .NET etc., este nevoie  de aproximativ 5 luni de formare intensivă. Desigur, această perioadă se poate prelungi la un an, dacă tu, studentul, vei simți nevoia.

invata-c++

Important este ca în proces să ne asigurăm împreună că este înțeleasă informație din fiecare din cele 4 module sau camere de curs, pe care le menționam mai sus, în articol. Iar la această perioadă se adaugă perioada de practică de aproximativ 6 luni, pe care noi o vom pune la dispoziție.

Lucrurile stau puțin diferit când vine vorba de pregătirea unui developer full-stack, unde durata aproximativă a unui curs este de 12 luni, la care se adaugă partea de practică de 6 luni. Fiind un limbaj de bază,  aici, la Codecool, C++ este inclus în cursul de full-stack developer. 

Aruncă aici o privire pentru curriculumul detaliat Codecool. 

Alătură-te profesioniștilor în programare de la Codecool și învață să scrii cod!

Ce viitor te așteaptă pe piața angajatorilor?

După ce am povestit despre numeroasele domenii în care este folosit limbajul C++, este inutil să te întrebi dacă ai șanse să te angajezi ca programator C++. Fie că vrei să te angajezi la companii de top, în mediul corporate, fie că vrei să te alături unei echipe de game developeri sau că vrei să intri în ingineria de software și să scrii cod pentru a controla reactoare nucleare sau rachete, limbajul C++ îți deschide ușa.

invata-c++

Care sunt salariile programatorilor în C++?

Deci, e o decizie bună să înveți programare C++. Dar, care sunt beneficiile financiare? În general, știm că salariile programatorilor în România sunt de câteva ori mai mari decât salariul mediu în timp ce salariile programatorilor în străinătate sunt în top, fiind și unul din principalele motive pentru care programatorii aleg joburi peste hotare.

Dar, să ne întoarcem în România. Dacă în februarie salariul mediu în IT a fost de 6683 lei, în luna mai a fost de 6946 lei,conform datelor recente ale Institutului Național de Statistică

Când vorbim de programatori C++, lucrurile nu sunt cu mult diferite: un programator C++ poate câștiga un salariu mediu net lunar de 6973 lei în România.

Dacă vrei să afli despre salariile celorlalte specializări în programare, poți citi despretopul salariilor în IT

Trivia despre C++

  • Inițial, C++ a fost numit „noul C”
  • Așa cum și Wikipedia ne spune, C++ a influențat multe din limbajele de programare care i-au urmat, ca C#sau Java. Cine știe cum ar fi fost limbajele de programare de acum dacă nu ar fi fost C++...
  • C++ a introdus programarea orientată-obiect, care inițial nu se găsea în limbajul C
  • C și C++ au fost  inventate în același loc: laboratoarele T bell 
  • Sunt 84 de keyword-uri in C++
  • Unul din marile puncte forte ale C++:  suportă stiluri de programare variate, nu doar OOP, ci și alte paradigme. 

Deci, crezi că vrei să te apuci de programare? Dacă da, te așteptăm la Codecool,

să înveți limbajele de programare inspirate din C++! 

 

Distribuie