Come imparare i linguaggi C e C++: l'elenco definitivo

Pubblicato: 2022-03-11

Il linguaggio di programmazione C è stato originariamente sviluppato e implementato sul sistema operativo UNIX da Dennis Ritchie. Il linguaggio C, che è abbastanza semplice, non è legato a nessun hardware o sistema particolare. Ciò rende più facile per un utente scrivere programmi che verranno eseguiti senza molte (o nessuna) modifica praticamente su tutte le macchine.

Il linguaggio C è spesso chiamato linguaggio informatico di livello medio in quanto combina gli elementi dei linguaggi di alto livello con il funzionalismo del linguaggio assembly. La programmazione C consente la manipolazione di bit, byte e indirizzi, offrendo al programmatore un maggiore controllo su come si comporterà esattamente il programma e un accesso più diretto alla meccanica dell'hardware sottostante.

C è stato creato, influenzato e testato sul campo da programmatori che lavorano. Il risultato finale è che C dà al programmatore ciò che il programmatore vuole.

C++ è una versione avanzata del linguaggio C. C++ include tutto ciò che fa parte di C e aggiunge il supporto per la programmazione orientata agli oggetti (OOP). Inoltre, C++ contiene anche molti miglioramenti e funzionalità che lo rendono un "C migliore", indipendente dalla programmazione orientata agli oggetti.

Il linguaggio C++ è in realtà estensibile poiché possiamo definire nuovi tipi in modo tale che agiscano proprio come i tipi predefiniti che fanno parte del linguaggio standard.

Se usi solo C++ come un C migliore, non utilizzerai tutta la sua potenza. Come ogni strumento di qualità, C++ deve essere utilizzato nel modo in cui è stato progettato per essere utilizzato per sfruttarne la ricchezza. Alcune delle nuove funzionalità includono l'incapsulamento, le chiamate di funzione inline, gli operatori di sovraccarico, l'ereditarietà e il polimorfismo.

Perché dovrei voler imparare C o C++?

C e C++ sono ancora due dei linguaggi di programmazione più popolari in circolazione. La sintassi e i concetti del C, in particolare, hanno resistito alla prova del tempo e puoi vederli trasferiti ad altri linguaggi di programmazione popolari, anche quelli moderni, come Go.

Anche se hai intenzione di creare applicazioni Web o componenti di front-end Web di fantasia per il resto della tua vita, l'apprendimento del C ti aiuterà a capire come interagiscono effettivamente software e hardware.

Inoltre, C e C++ sono ovunque.

C in particolare alimenta molta più tecnologia di quella di cui gli diamo credito.

D'altra parte, alcuni dei tuoi software preferiti, forse anche il browser web su cui stai leggendo questo articolo, sono basati su C++. Conoscere il C è una buona base, ma in molti casi lo sviluppo di software richiederà l'apprendimento del C++ e dei suoi paradigmi.

Se vuoi sviluppare un software che deve sfruttare al massimo le prestazioni e le capacità di un computer, ad esempio giochi desktop di fascia alta, sofisticati strumenti di produttività o programmi complessi ad alta intensità di calcolo, o se desideri semplicemente un linguaggio di programmazione che ti permetta interagisci direttamente con l'hardware di un computer, C e C++ sono i linguaggi per te.

Quindi, perché non vorresti imparare C++ o C? Non è come 25 anni fa, quando avresti dovuto investire in un compilatore proprietario per iniziare, oggi puoi sicuramente imparare C++ gratuitamente.

Come posso iniziare con C e C++?

Per iniziare con C o C++, quello che vorrai nella maggior parte dei casi, almeno, è un compilatore, anche se oggigiorno puoi anche imparare il C online sperimentando un po' con i progetti C "ciao mondo" nel browser.

I compilatori sono programmi che possono essere eseguiti tramite interfacce della riga di comando (CLI). Leggono l'intero programma e lo convertono in codice oggetto, che è una traduzione del codice sorgente del programma in una forma che il computer può eseguire direttamente.

Per semplificarti la vita, puoi scegliere IDE a tutti gli effetti che possono rendere la tua esperienza con C o C++ ancora più piacevole.

finestre

Ci sono molti buoni compilatori disponibili su Windows.

In Windows, Visual Studio fornisce un compilatore C++.

Il compilatore può anche creare programmi C.

Visual Studio viene fornito con il suo IDE potente e ricco di funzionalità, che lo rende una scelta perfetta per chiunque inizi con C o C++ o per chi si rivolge principalmente alla piattaforma Windows.

Se stai cercando qualcosa di più conforme agli standard, GCC (MinGW) potrebbe essere ciò di cui hai bisogno. L'IDE Codeblocks funziona eccezionalmente bene in questa configurazione.

Anche Clang è ora una scelta formidabile su Windows, al giorno d'oggi viene persino utilizzato per creare Google Chrome.

Esistono altri IDE multipiattaforma, come Eclipse CDT, Jetbrains CLion e Netbeans, che forniscono ambienti di sviluppo C e C++ completamente funzionali. Ultimamente, però, questi vengono eclissati (scusate l'ironia) da Visual Studio Code, disponibile anche per ambienti Linux e Mac.

Linux

Se sei su Linux, probabilmente hai già installato GCC come parte della tua distribuzione. In caso contrario, l'installazione dovrebbe essere solo questione di un singolo comando:

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

Codeblocks IDE ed Eclipse CDT funzionano ugualmente bene su Linux come su Windows.

Mac/Mac OS X/OS X/macOS

Su un Mac puoi usare Clang o GCC: entrambi sono disponibili gratuitamente. Sebbene GCC supporti una gamma più ampia di standard C e C++, Clang funzionerà bene nella maggior parte dei casi.

Clang dovrebbe essere già installato.

Puoi installare GCC usando Homebrew:

 brew install gcc

Puoi usare XCode, un ottimo IDE che fa parte degli strumenti di sviluppo di Mac OS.

Quali sono alcuni buoni tutorial per imparare C e C++?

I tutorial sono un ottimo modo per iniziare con un nuovo linguaggio di programmazione. Anche se non hai molta dimestichezza con la programmazione stessa. I seguenti tutorial ti insegneranno i concetti più importanti.

Programmazione in C presso LearnVern

Questo corso online completo di programmazione C è ottimo per i principianti, che non hanno necessariamente precedenti esperienze di programmazione. Parte dalle basi del C e della programmazione in generale e copre argomenti avanzati, come l'allocazione dinamica della memoria, la gestione dei file, ecc.

C++ per programmatori C presso Coursera

Se hai già familiarità con C e vuoi immergerti in C++, allora questo corso in due parti è perfetto per te. Questo corso mette davvero in evidenza le differenze tra questi due linguaggi e mostra come ottenere il massimo dal C++.

Fondamenti di C++ presso Pluralsight

D'altra parte, se vuoi iniziare dalle basi del C++ e impararlo da zero, PluralSight ha il tutorial che fa per te. È rivolto a coloro che vogliono essere più efficienti con C++.

Programmazione C per principianti in Udemy

Questo corso online di programmazione C è adatto ai principianti e perfetto per chiunque voglia iniziare con C su una delle tre piattaforme più diffuse (Windows, Linux e Mac OS X).

Tutorial C++ per principianti assoluti in Udemy

Questo corso è rivolto a tutti coloro che hanno conoscenze informatiche di base ma ora vogliono entrare nel regno della programmazione. Probabilmente, è il modo migliore per imparare il C++ come prima lingua. Inoltre, se trovi interessante lo sviluppo del gioco, questo è il corso con cui vuoi iniziare.

Corso di formazione avanzato sulla programmazione C++ presso Udemy

Una volta che sei soddisfatto delle tue abilità di programmazione C++ di base e sei pronto per passare al vero affare, ti consigliamo un tutorial avanzato, come questo. Il tutorial copre polimorfismo, modelli, gestione delle eccezioni, flussi, contenitori, algoritmi, stack e molto altro.

comp.lang.c Domande frequenti

A volte tutto ciò di cui hai bisogno è un ricco elenco di domande e risposte che puoi cercare rapidamente per risolvere i tuoi problemi. Questo non è un tutorial in sé, ma piuttosto un insieme strutturato di domande frequenti.

Annotazioni C++ (versione 10.9.2) di Frank Brokken

Questo tutorial basato sul Web è destinato a programmatori C avanzati (o programmatori Perl o Java, qualsiasi cosa considerata dotata di una "grammatica simile al C") che desiderano passare al C++. Continua dove finisce il linguaggio di programmazione C, come puntatori, allocazione di memoria e tipi composti, il che lo rende un'ottima guida alla programmazione C++.

Guida allo stile di Google C++

Man mano che scrivi programmi più elaborati mentre impari a programmare C++, potresti riscontrare rapidamente problemi di manutenibilità. È qui che le guide di stile dei programmatori C++ veterani tornano utili. Questa guida di stile è gestita da Google.


Se le esercitazioni C/C++ precedenti non sono sufficienti per te, sono disponibili buoni elenchi di esercitazioni moderati dalla community per l'apprendimento del C e per l'apprendimento del C++.

Posso imparare C e C++ leggendo libri?

I libri sono un ottimo modo per imparare in modo approfondito un linguaggio di programmazione. Con molte ottime spiegazioni su come funzionano le intricate funzionalità di un linguaggio di programmazione, la conoscenza di un buon libro su C o C++ può darti il ​​vantaggio durante l'utilizzo di questi linguaggi per i tuoi progetti.

C in a Nutshell: The Definitive Reference (2a edizione) di Peter Prinz e Tony Crawford

Sebbene questo libro includa una piccola introduzione al linguaggio di programmazione C, è più adatto come secondo libro se vuoi imparare a programmare in C. Questo libro fornisce suggerimenti, tecniche, esempi e consigli pratici che consentiranno agli sviluppatori avanzati di massimizzare il loro capacità.

Il libro è diviso in tre parti.

La prima descrive il linguaggio C nel senso stretto del termine; il secondo descrive la libreria standard e il terzo descrive il processo di compilazione e test dei programmi con gli strumenti della popolare raccolta di software GNU.

C in a Nutshell è il compagno perfetto per The C Programming Language di Brian W. Kernighan e Dennis Ritchie (noto anche come K&R) e destinato ad essere il libro di consultazione più richiesto sulla tua scrivania.

Il linguaggio di programmazione C di Brian W. Kernighan e Dennis Ritchie

Questa è la seconda edizione del testo originale di Kernighan & Ritchie.

Viene comunemente chiamato Nuovo Testamento in quanto include le modifiche incorporate dallo standard ANSI pur mantenendo la natura della prima edizione.

Il libro presuppone che il lettore abbia alcune conoscenze di programmazione di base. Quindi, se stai appena iniziando a programmare e C è la prima lingua, questo potrebbe non essere il libro ideale per te. Tuttavia, potresti trovare utili queste note condensate.

Questo è uno dei modi migliori per avere un'introduzione alla programmazione in C e un must, soprattutto se stai iniziando la tua raccolta di libri di programmazione.

Il linguaggio di programmazione C++ (4a edizione) di Bjarne Stroustrup

Bjarne Stroustrup è il designer di C++ e ha scritto molti ottimi libri sull'argomento.

Questo libro è diviso in tre parti.

La prima parte fornisce un'introduzione tutorial alla programmazione C++.

La seconda parte presenta una discussione sui problemi di progettazione e sviluppo software che sorgono in connessione con l'uso di C++ e la terza parte è un manuale di riferimento completo.

Con la popolarità del C++, si sono fatti avanti diversi distributori indipendenti di C++, ma il libro discute del "C++ puro;" ovvero non vengono utilizzate estensioni dipendenti dall'implementazione.

Uno dei modi migliori per imparare un linguaggio di programmazione è scrivere piccoli programmi rilevanti per l'oggetto che studi. Ci sono esercizi alla fine di ogni capitolo per applicare le nuove conoscenze apprese.

C++ efficace: 55 modi specifici per migliorare i tuoi programmi e progetti di Scott Meyers

La creazione di software di grandi dimensioni con C++ richiede design e disciplina. Se prendi sul serio il C++, questo libro è assolutamente da leggere.

È una guida per esperti per la progettazione di classi, funzioni, modelli e gerarchie di ereditarietà efficaci. Il libro discute anche di come il C++ sia diverso dagli altri linguaggi e di come fare le cose "alla maniera del C++".

C++ Primer (5a edizione) di Stanley B. Lippman

Il C++ Primer è un ottimo libro e renderà divertente l'apprendimento del C++. È davvero uno dei migliori libri di C++ in circolazione, ma presuppone molta familiarità con i concetti di programmazione e una competenza in C.

L'ultima edizione di questo libro è eccellente per i programmatori che vogliono ottenere il massimo dalle funzionalità nuove e avanzate.

Domande frequenti su C++ (2a edizione) di Marshall P. Cline

Questo è un libro fenomenale che contiene le risposte a circa 500 domande su programmazione, progettazione, analisi e test. Non è per i principianti, ma per i programmatori che hanno capito la sintassi del linguaggio che vogliono implementarli.

Se hai domande come "Cos'è un invariante di classe?", "Come dovrei usare le eccezioni?", "Cosa succede quando viene eseguito un distruttore?", allora questo è il libro che fa per te.

Efficace C++ moderno: 42 modi specifici per migliorare l'uso di C++11 e C++14 di Scott Meyers

Se hai già esperienza con C++, ma vuoi testare gli standard più recenti, leggi questo libro. Sarai sorpreso di quanto C++ si sia evoluto attraverso questi nuovi standard. Il libro illustra come utilizzare nel modo più efficace le funzionalità più recenti in C++. (Anche se lo standard C++ è ora fino a C++17, C++14 è ancora all'avanguardia in molti contesti di progetto.)

STL efficace: 50 modi specifici per migliorare l'utilizzo della libreria di modelli standard di Scott Meyers

Uno degli aspetti più sorprendenti di C++ è la sua Standard Template Library (STL). È una delle funzionalità più potenti, ma può essere piuttosto complessa. Questo libro fornisce 50 fantastici suggerimenti e oltre 100 algoritmi STL che esplorano diverse aree dell'STL, rendendolo più accessibile per gli sviluppatori che hanno appena iniziato con C++.

Correlati: I 10 errori C++ più comuni commessi dagli sviluppatori