Cum să înveți limbajele C și C++: Lista finală

Publicat: 2022-03-11

Limbajul de programare C a fost inițial dezvoltat și implementat pe sistemul de operare UNIX de către Dennis Ritchie. Limbajul C, care este destul de simplu, nu este legat de niciun hardware sau sistem anume. Acest lucru face mai ușor pentru un utilizator să scrie programe care vor rula fără multe (sau orice) modificări pe aproape toate mașinile.

Limbajul C este adesea numit un limbaj de calculator de nivel mediu, deoarece combină elementele limbajelor de nivel înalt cu funcționalismul limbajului de asamblare. Programarea C permite manipularea biților, octeților și adreselor, oferind programatorului mai mult control asupra modului exact în care se va comporta programul și acces mai direct la mecanica hardware-ului de bază.

C a fost creat, influențat și testat pe teren de programatori care lucrează. Rezultatul final este că C oferă programatorului ceea ce își dorește programatorul.

C++ este o versiune îmbunătățită a limbajului C. C++ include tot ceea ce face parte din C și adaugă suport pentru programarea orientată pe obiecte (OOP). În plus, C++ conține, de asemenea, multe îmbunătățiri și caracteristici care îl fac un „C mai bun”, independent de programarea orientată pe obiecte.

Limbajul C++ este de fapt extensibil, deoarece putem defini noi tipuri în așa fel încât să acționeze la fel ca tipurile predefinite care fac parte din limbajul standard.

Dacă folosești doar C++ ca un C mai bun, nu vei folosi toată puterea lui. Ca orice instrument de calitate, C++ trebuie folosit așa cum a fost conceput pentru a fi folosit pentru a-și exploata bogăția. Unele dintre noile caracteristici includ încapsularea, apelurile de funcții inline, operatorii de supraîncărcare, moștenirea și polimorfismul.

De ce aș vrea să învăț C sau C++?

C și C++ sunt încă două dintre cele mai populare limbaje de programare existente. Sintaxa și conceptele C, în special, au rezistat testului timpului și le puteți vedea că sunt continuate în alte limbaje de programare populare, chiar și în cele moderne, cum ar fi Go.

Chiar dacă veți construi aplicații web sau componente web front-end de lux pentru tot restul vieții, învățarea C vă va ajuta să înțelegeți cum interacționează de fapt software-ul și hardware-ul.

În plus, C și C++ sunt peste tot.

C în special alimentează mult mai multă tehnologie decât pentru care îi acordăm credit.

Pe de altă parte, unele dintre programele dvs. preferate - posibil chiar și browserul web pe care citiți acest articol - sunt construite pe C++. Cunoașterea C este o bază bună, dar în multe cazuri, dezvoltarea de software vă va necesita să învățați C++ și paradigmele sale.

Dacă doriți să dezvoltați software care trebuie să profite la maximum de performanța și capacitățile unui computer - jocuri desktop de ultimă generație, instrumente de productivitate sofisticate sau programe complexe de calcul intensiv, de exemplu - sau dacă doriți doar un limbaj de programare care să vă permită interacționează direct cu hardware-ul computerului, C și C++ sunt limbile pentru tine.

Deci, de ce nu ai vrea să înveți C++ sau C? Nu este ca acum 25 de ani, când ar fi trebuit să investești într-un compilator proprietar pentru a începe – astăzi cu siguranță poți învăța C++ gratuit.

Cum pot începe cu C și C++?

Pentru a începe cu C sau C++, ceea ce vă veți dori în cele mai multe cazuri, cel puțin, este un compilator - deși în zilele noastre puteți învăța C și online, experimentând puțin cu proiectele C „hello world” în browser.

Compilatoarele sunt programe care pot fi rulate prin interfețe de linie de comandă (CLI). Ei citesc întregul program și îl convertesc în cod obiect, care este o traducere a codului sursă al programului într-o formă pe care computerul o poate executa direct.

Pentru a face viața mai ușoară, puteți alege IDE-uri cu drepturi depline, care vă pot face experiența cu C sau C++ și mai plăcută.

Windows

Există o mulțime de compilatoare bune disponibile pe Windows.

Pe Windows, Visual Studio oferă un compilator C++.

Compilatorul poate construi și programe C.

Visual Studio vine cu propriul său IDE puternic și bogat în funcții, ceea ce îl face o alegere bună pentru oricine care începe cu C sau C++ sau pentru cineva care vizează în principal platforma Windows.

Dacă căutați ceva mai compatibil cu standardele, GCC (MinGW) ar putea fi ceea ce aveți nevoie. Codeblocks IDE funcționează excepțional de bine în această configurație.

Clang, de asemenea, este acum o alegere formidabilă pe Windows - este chiar folosit pentru a construi Google Chrome în zilele noastre.

Există și alte IDE-uri multiplatforme, cum ar fi Eclipse CDT, Jetbrains CLion și Netbeans, care oferă medii de dezvoltare C și C++ complet funcționale. În ultima vreme, însă, acestea sunt eclipsate (iertați-vă ironia) de Visual Studio Code, care este disponibil și pentru mediile Linux și Mac.

Linux

Dacă sunteți pe Linux, probabil că aveți deja instalat GCC ca parte a distribuției dvs. Dacă nu, instalarea ar trebui să fie doar o chestiune de o singură comandă:

 # Ubuntu sudo apt-get install build-essential # Fedora sudo yum install gcc gcc-c++ # Arch Linux sudo pacman -S base-devel

Codeblocks IDE și Eclipse CDT funcționează la fel de bine pe Linux ca și pe Windows.

Mac / Mac OS X / OS X / macOS

Pe un Mac puteți folosi Clang sau GCC - ambele sunt disponibile gratuit. În timp ce GCC are suport pentru o gamă mai largă de standarde C și C++, Clang va funcționa bine în majoritatea cazurilor.

Clang ar trebui să fie deja instalat.

Puteți instala GCC folosind Homebrew:

 brew install gcc

Puteți utiliza XCode, un IDE grozav care face parte din instrumentele de dezvoltare Mac OS.

Care sunt câteva tutoriale bune pentru a învăța C și C++?

Tutorialele sunt o modalitate excelentă de a începe cu un nou limbaj de programare. Chiar dacă nu sunteți foarte familiarizat cu programarea în sine. Următoarele tutoriale vă vor învăța cele mai importante concepte.

Programare C la LearnVern

Acest curs online cuprinzător de programare C este excelent pentru începători, care nu au neapărat experiență anterioară de programare. Pornește de la elementele de bază ale C și ale programării în general și acoperă subiecte avansate, cum ar fi alocarea dinamică a memoriei, gestionarea fișierelor etc.

C++ Pentru programatorii C de la Coursera

Dacă sunteți deja familiarizat cu C și doriți să vă înmuiați degetele în C++, atunci acest curs în două părți este perfect pentru dvs. Acest curs evidențiază cu adevărat diferențele dintre aceste două limbi și vă arată cum să profitați la maximum de C++.

Fundamentele C++ la Pluralsight

Pe de altă parte, dacă doriți să începeți de la elementele de bază ale C++ și să o învățați de la început, PluralSight are doar tutorialul pentru dvs. Este destinat celor care doresc să fie mai eficienți cu C++.

Programare C pentru începători la Udemy

Acest curs online de programare C este prietenos pentru începători și perfect pentru oricine dorește să înceapă cu C pe oricare dintre cele trei platforme populare (Windows, Linux și Mac OS X).

Tutorial C++ pentru începători completi la Udemy

Acest curs se adresează tuturor celor care au cunoștințe de bază de calculator, dar acum doresc să intre în domeniul programării. Probabil, este cel mai bun mod de a învăța C++ ca primă limbă. De asemenea, dacă vi se pare interesantă dezvoltarea jocului, acesta este cursul cu care doriți să începeți.

Curs avansat de programare C++ la Udemy

Odată ce sunteți mulțumit cu abilitățile de bază de programare C++ și gata să treceți la afacerea adevărată, veți dori un tutorial avansat, ca acesta. Tutorialul acoperă polimorfism, șabloane, gestionarea excepțiilor, fluxuri, containere, algoritmi, stive și multe altele.

comp.lang.c Întrebări frecvente

Uneori, tot ce aveți nevoie este o listă bogată de întrebări și răspunsuri pe care le puteți căuta rapid pentru a vă rezolva problemele. Acesta nu este un tutorial în sine, ci mai degrabă un set structurat de întrebări frecvente.

Adnotări C++ (versiunea 10.9.2) de Frank Brokken

Acest tutorial bazat pe web este destinat programatorilor C avansați (sau programatorilor Perl sau Java - orice lucru considerat a avea o „gramatică asemănătoare C”) care doresc să treacă la C++. Continuă acolo unde se termină limbajul de programare C, cum ar fi pointerii, alocarea memoriei și tipurile compuse, ceea ce îl face un ghid de programare C++ foarte bun.

Ghid de stil Google C++

Pe măsură ce scrieți programe mai elaborate în timp ce învățați programarea C++, s-ar putea să întâmpinați rapid probleme de întreținere. Aici sunt utile ghidurile de stil de la programatori veterani C++. Acest ghid de stil este întreținut de Google.


Dacă tutorialele C/C++ de mai sus nu sunt suficiente pentru tine, există liste bune de tutoriale moderate de comunitate pentru învățarea C și pentru învățarea C++.

Pot învăța C și C++ citind cărți?

Cărțile sunt o modalitate excelentă de a învăța în profunzime despre un limbaj de programare. Cu o mulțime de explicații grozave despre modul în care funcționează funcționalitățile complicate ale unui limbaj de programare, cunoștințele dintr-o carte bună despre C sau C++ vă pot oferi avantaje în timp ce utilizați aceste limbaje pentru proiectele dvs.

C pe scurt: Referința definitivă (ediția a doua) de Peter Prinz și Tony Crawford

Deși această carte include o mică introducere în limbajul de programare C, este mai potrivită ca a doua carte dacă doriți să învățați să codificați C. Această carte oferă sfaturi, tehnici, exemple și sfaturi practice care le vor permite dezvoltatorilor avansați să își maximizeze capabilități.

Cartea este împărțită în trei părți.

Primul descrie limbajul C în sensul strict al termenului; al doilea descrie biblioteca standard, iar al treilea descrie procesul de compilare și testare a programelor cu instrumentele din populara colecție de software GNU.

C in a Nutshell este însoțitorul perfect al limbajului de programare C de Brian W. Kernighan și Dennis Ritchie (cunoscut și sub numele de K&R) și este destinat să fie cea mai atinsă carte de referință de pe biroul tău.

Limbajul de programare C de Brian W. Kernighan și Dennis Ritchie

Aceasta este a doua ediție a textului original Kernighan & Ritchie.

Este denumit în mod obișnuit Noul Testament, deoarece include modificările încorporate de standardul ANSI, păstrând în același timp natura primei ediții.

Cartea presupune că cititorul are unele cunoștințe de bază de programare. Deci, dacă abia începi să programezi, iar C este prima limbă, aceasta ar putea să nu fie cartea ideală pentru tine. Cu toate acestea, s-ar putea să găsiți că aceste note condensate despre el merită.

Aceasta este una dintre cele mai bune modalități de a obține o introducere în programarea C și o necesitate, mai ales dacă vă începeți propria colecție de cărți de programare.

Limbajul de programare C++ (ediția a patra) de Bjarne Stroustrup

Bjarne Stroustrup este designerul C++ și a scris multe cărți grozave pe această temă.

Această carte este împărțită în trei părți.

Prima parte oferă o introducere tutorială în programarea C++.

A doua parte prezintă o discuție despre problemele de proiectare și dezvoltare software care apar în legătură cu utilizarea C++, iar a treia parte este un manual de referință complet.

Odată cu popularitatea C++, câțiva distribuitori independenți de C++ au apărut, dar cartea discută despre „C++ pur;” adică nu sunt utilizate extensii dependente de implementare.

Una dintre cele mai bune modalități de a învăța un limbaj de programare este prin scrierea unor programe mici relevante pentru elementul pe care îl studiezi. Există exerciții la sfârșitul fiecărui capitol pentru a aplica noile cunoștințe învățate.

C++ eficient: 55 de moduri specifice de a vă îmbunătăți programele și designurile de Scott Meyers

Construirea unui software mare cu C++ necesită design și disciplină. Dacă sunteți serios în privința C++, această carte este o citire obligatorie.

Este un ghid al unui expert pentru proiectarea claselor, funcțiilor, șabloanelor și ierarhiilor de moștenire eficiente. Cartea discută, de asemenea, despre modul în care C++ este diferit de alte limbi și despre cum să faci lucrurile „în felul C++”.

C++ Primer (Ediția a 5-a) de Stanley B. Lippman

C++ Primer este o carte grozavă și va face învățarea C++ distractiv. Este într-adevăr una dintre cele mai bune cărți C++ de acolo, dar presupune multă familiaritate cu conceptele de programare și o competență în C.

Cea mai recentă ediție a acestei cărți este excelentă pentru programatorii care doresc să profite la maximum de funcțiile noi și avansate.

Întrebări frecvente C++ (ediția a doua) de Marshall P. Cline

Aceasta este o carte fenomenală care conține răspunsuri la aproximativ 500 de întrebări despre programare, proiectare, analiză și testare. Nu este pentru începători, ci pentru programatorii care și-au dat seama de sintaxa limbajului care doresc să le implementeze.

Dacă aveți întrebări precum „Ce este un invariant de clasă?”, „Cum ar trebui să folosesc excepțiile?”, „Ce se întâmplă când se execută un destructor?”, atunci aceasta este cartea pentru tine.

C++ modern eficient: 42 de moduri specifice de a vă îmbunătăți utilizarea C++11 și C++14 de Scott Meyers

Dacă aveți deja experiență cu C++, dar doriți să testați standardele mai recente ale acestuia, citiți această carte. Vei fi surprins cât de mult a evoluat C++ prin aceste noi standarde. Cartea discută cum să folosiți cât mai eficient noile capabilități din C++. (Chiar dacă standardul C++ este acum până la C++17, C++14 este încă de ultimă generație în multe dintre contextele de proiect.)

STL eficient: 50 de moduri specifice de a vă îmbunătăți utilizarea bibliotecii standard de șabloane de Scott Meyers

Unul dintre cele mai uimitoare aspecte ale C++ este Standard Template Library (STL). Este una dintre cele mai puternice caracteristici, dar poate fi destul de complexă. Această carte oferă 50 de sfaturi minunate și peste 100 de algoritmi STL care explorează diferite zone ale STL, făcându-l mai accesibil pentru dezvoltatorii care au început să folosească C++.

Înrudit: Top 10 cele mai frecvente greșeli C++ pe care le fac dezvoltatorii