Comment apprendre les langages C et C++ : la liste ultime

Publié: 2022-03-11

Le langage de programmation C a été initialement développé et implémenté sur le système d'exploitation UNIX par Dennis Ritchie. Le langage C, qui est assez simple, n'est lié à aucun matériel ou système particulier. Cela permet à un utilisateur d'écrire plus facilement des programmes qui s'exécuteront sans beaucoup (ou aucun) de changements sur pratiquement toutes les machines.

Le langage C est souvent appelé langage informatique de niveau intermédiaire car il combine les éléments des langages de haut niveau avec le fonctionnalisme du langage d'assemblage. La programmation en C permet la manipulation de bits, d'octets et d'adresses, ce qui donne au programmeur plus de contrôle sur le comportement exact du programme et un accès plus direct aux mécanismes du matériel sous-jacent.

C a été créé, influencé et testé sur le terrain par des programmeurs en activité. Le résultat final est que C donne au programmeur ce que le programmeur veut.

C++ est une version améliorée du langage C. C++ inclut tout ce qui fait partie de C et ajoute la prise en charge de la programmation orientée objet (POO). En outre, C++ contient également de nombreuses améliorations et fonctionnalités qui en font un "meilleur C", indépendant de la programmation orientée objet.

Le langage C++ est en fait extensible puisque nous pouvons définir de nouveaux types de manière à ce qu'ils agissent exactement comme les types prédéfinis qui font partie du langage standard.

Si vous utilisez simplement C++ comme un meilleur C, vous n'utiliserez pas toute sa puissance. Comme tout outil de qualité, le C++ doit être utilisé comme il a été conçu pour être utilisé afin d'exploiter sa richesse. Certaines des nouvelles fonctionnalités incluent l'encapsulation, les appels de fonctions en ligne, les opérateurs de surcharge, l'héritage et le polymorphisme.

Pourquoi voudrais-je apprendre le C ou le C++ ?

C et C++ sont toujours deux des langages de programmation les plus populaires. La syntaxe et les concepts de C, en particulier, ont résisté à l'épreuve du temps, et vous pouvez les voir être appliqués à d'autres langages de programmation populaires, même les plus modernes, tels que Go.

Même si vous allez créer des applications Web ou des composants Web frontaux sophistiqués pour le reste de votre vie, apprendre C vous aidera à comprendre comment les logiciels et le matériel interagissent réellement.

De plus, C et C++ sont partout.

C en particulier alimente beaucoup plus de technologie que nous ne le pensons.

D'un autre côté, certains de vos logiciels préférés - peut-être même le navigateur Web sur lequel vous lisez cet article - sont basés sur C++. Connaître le C est une bonne base, mais dans de nombreux cas, le développement de logiciels nécessitera que vous appreniez le C++ et ses paradigmes.

Si vous souhaitez développer des logiciels qui doivent tirer le meilleur parti des performances et des capacités d'un ordinateur (des jeux de bureau haut de gamme, des outils de productivité sophistiqués ou des programmes complexes à forte intensité de calcul, par exemple) ou si vous souhaitez simplement un langage de programmation qui vous permet interagir directement avec le matériel d'un ordinateur, C et C++ sont les langages qu'il vous faut.

Alors, pourquoi ne voudriez-vous pas apprendre le C++ ou le C ? Ce n'est pas comme il y a 25 ans, quand vous auriez dû investir dans un compilateur propriétaire pour démarrer - aujourd'hui, vous pouvez certainement apprendre le C++ gratuitement.

Comment puis-je commencer avec C et C++ ?

Pour commencer avec C ou C++, ce que vous voudrez dans la plupart des cas, à tout le moins, est un compilateur, bien que de nos jours, vous puissiez également apprendre le C en ligne en expérimentant un peu avec des projets C "hello world" dans le navigateur.

Les compilateurs sont des programmes qui peuvent être exécutés via des interfaces de ligne de commande (CLI). Ils lisent l'intégralité du programme et le convertissent en code objet, qui est une traduction du code source du programme sous une forme que l'ordinateur peut exécuter directement.

Pour vous faciliter la vie, vous pouvez opter pour des IDE complets qui peuvent rendre votre expérience avec C ou C++ encore plus agréable.

les fenêtres

Il y a beaucoup de bons compilateurs disponibles sur Windows.

Sous Windows, Visual Studio fournit un compilateur C++.

Le compilateur peut également construire des programmes C.

Visual Studio est livré avec son propre IDE puissant et riche en fonctionnalités, ce qui en fait un choix judicieux pour tous ceux qui débutent avec C ou C++ ou ceux qui ciblent principalement la plate-forme Windows.

Si vous recherchez quelque chose de plus conforme aux normes, GCC (MinGW) pourrait être ce dont vous avez besoin. L'IDE Codeblocks fonctionne exceptionnellement bien dans cette configuration.

Clang, aussi, est maintenant un choix formidable sur Windows - il est même utilisé pour construire Google Chrome de nos jours.

D'autres IDE multiplateformes existent, tels que Eclipse CDT, Jetbrains CLion et Netbeans, qui fournissent des environnements de développement C et C++ entièrement fonctionnels. Dernièrement, cependant, ceux-ci sont éclipsés (pardonnez l'ironie) par Visual Studio Code, qui est également disponible pour les environnements Linux et Mac.

Linux

Si vous êtes sous Linux, GCC est probablement déjà installé dans votre distribution. Si ce n'est pas le cas, l'installation ne devrait se résumer qu'à une seule commande :

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

L'IDE Codeblocks et Eclipse CDT fonctionnent aussi bien sous Linux que sous Windows.

Mac / Mac OS X / OS X / macOS

Sur un Mac, vous pouvez utiliser Clang ou GCC, les deux sont disponibles gratuitement. Bien que GCC prenne en charge un plus large éventail de normes C et C++, Clang fonctionnera correctement dans la plupart des cas.

Clang devrait déjà être installé.

Vous pouvez installer GCC en utilisant Homebrew :

 brew install gcc

Vous pouvez utiliser XCode, un excellent IDE qui fait partie des outils de développement Mac OS.

Quels sont les bons tutoriels pour apprendre le C et le C++ ?

Les didacticiels sont un excellent moyen de se familiariser avec un nouveau langage de programmation. Même si vous n'êtes pas très familier avec la programmation elle-même. Les tutoriels suivants vous apprendront les concepts les plus importants.

Programmation C chez LearnVern

Ce cours en ligne complet sur la programmation en C est idéal pour les débutants, qui n'ont pas nécessairement d'expérience en programmation. Il part des bases mêmes du C et de la programmation en général et couvre des sujets avancés, tels que l'allocation dynamique de mémoire, la gestion de fichiers, etc.

C++ pour les programmeurs C chez Coursera

Si vous êtes déjà familiarisé avec le C et que vous souhaitez vous initier au C++, ce cours en deux parties est fait pour vous. Ce cours met vraiment en évidence les différences entre ces deux langages et vous montre comment tirer le meilleur parti de C++.

Fondamentaux du C++ chez Pluralsight

D'un autre côté, si vous voulez commencer par les bases de C++ et l'apprendre à partir de zéro, PluralSight a juste le tutoriel pour vous. Il s'adresse à ceux qui veulent être plus efficaces avec C++.

Programmation en C pour les débutants chez Udemy

Ce cours en ligne de programmation C est adapté aux débutants et parfait pour tous ceux qui souhaitent se lancer avec C sur l'une des trois plates-formes populaires (Windows, Linux et Mac OS X).

Tutoriel C++ pour les débutants complets chez Udemy

Ce cours s'adresse à tous ceux qui ont des connaissances de base en informatique mais qui souhaitent maintenant entrer dans le domaine de la programmation. C'est sans doute la meilleure façon d'apprendre le C++ comme langue maternelle. De plus, si vous trouvez le développement de jeux intéressant, c'est le cours par lequel vous voulez commencer.

Formation avancée en programmation C++ chez Udemy

Une fois que vous êtes satisfait de vos compétences de base en programmation C++ et prêt à passer à la réalité, vous aurez besoin d'un didacticiel avancé, comme celui-ci. Le didacticiel couvre le polymorphisme, les modèles, la gestion des exceptions, les flux, les conteneurs, les algorithmes, les piles et bien plus encore.

Comp.lang.c Foire aux questions

Parfois, tout ce dont vous avez besoin est une riche liste de questions et de réponses que vous pouvez consulter rapidement pour résoudre vos problèmes. Ce n'est pas un tutoriel en soi, mais plutôt un ensemble structuré de questions fréquemment posées.

Annotations C++ (version 10.9.2) par Frank Brokken

Ce didacticiel Web est destiné aux programmeurs C avancés (ou aux programmeurs Perl ou Java - tout ce qui est considéré comme ayant une "grammaire de type C") qui souhaitent passer à C++. Il continue là où le langage de programmation C se termine, par exemple au niveau des pointeurs, de l'allocation de mémoire et des types composés, ce qui en fait un très bon guide de programmation C++.

Guide de style Google C++

Au fur et à mesure que vous écrivez des programmes plus élaborés pendant que vous apprenez la programmation C++, vous pouvez rapidement rencontrer des problèmes de maintenabilité. C'est là que les guides de style des programmeurs C++ chevronnés sont utiles. Ce guide de style est géré par Google.


Si les didacticiels C/C++ ci-dessus ne vous suffisent pas, il existe de bonnes listes de didacticiels modérés par la communauté pour apprendre le C et pour apprendre le C++.

Puis-je apprendre le C et le C++ en lisant des livres ?

Les livres sont un excellent moyen d'apprendre en profondeur un langage de programmation. Avec de nombreuses explications sur le fonctionnement complexe des fonctionnalités d'un langage de programmation, les connaissances d'un bon livre sur C ou C ++ peuvent vous donner l'avantage lors de l'utilisation de ces langages pour vos projets.

C in a Nutshell: The Definitive Reference (2e édition) par Peter Prinz et Tony Crawford

Bien que ce livre inclue une petite introduction au langage de programmation C, il convient mieux comme deuxième livre si vous voulez apprendre à coder en C. Ce livre fournit des astuces, des techniques, des exemples et des conseils pratiques qui permettront aux développeurs avancés de maximiser leur capacités.

Le livre est divisé en trois parties.

Le premier décrit le langage C au sens strict du terme ; la seconde décrit la bibliothèque standard et la troisième décrit le processus de compilation et de test des programmes avec les outils de la collection de logiciels GNU populaire.

C in a Nutshell est le compagnon idéal du langage de programmation C de Brian W. Kernighan et Dennis Ritchie (également connu sous le nom de K&R) et est destiné à être le livre de référence le plus recherché sur votre bureau.

Le langage de programmation C par Brian W. Kernighan et Dennis Ritchie

Il s'agit de la deuxième édition du texte original de Kernighan & Ritchie.

Il est communément appelé le Nouveau Testament car il inclut les modifications incorporées par la norme ANSI tout en conservant la nature de la première édition.

Le livre suppose que le lecteur a quelques connaissances de base en programmation. Donc, si vous commencez tout juste à programmer et que le C est le premier langage, ce n'est peut-être pas le livre idéal pour vous. Cependant, vous pourriez trouver ces notes condensées à ce sujet intéressantes.

C'est l'un des meilleurs moyens d'obtenir une introduction à la programmation en C, et un incontournable, surtout si vous démarrez votre propre collection de livres de programmation.

Le langage de programmation C++ (4e édition) par Bjarne Stroustrup

Bjarne Stroustrup est le concepteur de C++ et a écrit de nombreux livres sur le sujet.

Ce livre est divisé en trois parties.

La première partie fournit un didacticiel d'introduction à la programmation C++.

La deuxième partie présente une discussion sur les problèmes de conception et de développement de logiciels liés à l'utilisation de C++, et la troisième partie est un manuel de référence complet.

Avec la popularité du C++, plusieurs distributeurs indépendants de C++ se sont manifestés, mais le livre parle de "C++ pur" ; c'est-à-dire qu'aucune extension dépendante de l'implémentation n'est utilisée.

L'une des meilleures façons d'apprendre un langage de programmation consiste à écrire de petits programmes pertinents pour l'élément que vous étudiez. Il y a des exercices à la fin de chaque chapitre pour appliquer vos connaissances nouvellement acquises.

C++ efficace : 55 façons spécifiques d'améliorer vos programmes et conceptions par Scott Meyers

Construire de gros logiciels avec C++ demande de la conception et de la discipline. Si vous êtes sérieux au sujet de C++, ce livre est une lecture incontournable.

Il s'agit d'un guide d'expert pour la conception de classes, de fonctions, de modèles et de hiérarchies d'héritage efficaces. Le livre explique également en quoi C++ est différent des autres langages et comment faire les choses "à la manière C++".

C++ Primer (5e édition) par Stanley B. Lippman

Le C++ Primer est un excellent livre et rendra l'apprentissage du C++ amusant. C'est vraiment l'un des meilleurs livres C++, mais il suppose une grande connaissance des concepts de programmation et une maîtrise du C.

La dernière édition de ce livre est excellente pour les programmeurs qui souhaitent tirer le meilleur parti des fonctionnalités nouvelles et avancées.

FAQ C++ (2e édition) par Marshall P. Cline

Il s'agit d'un livre phénoménal qui contient des réponses à environ 500 questions sur la programmation, la conception, l'analyse et les tests. Ce n'est pas pour les débutants, mais pour les programmeurs qui ont compris la syntaxe du langage et qui veulent les implémenter.

Si vous avez des questions comme « Qu'est-ce qu'un invariant de classe ? », « Comment dois-je utiliser les exceptions ? », « Que se passe-t-il lorsqu'un destructeur est exécuté ? », alors ce livre est fait pour vous.

C++ moderne efficace : 42 façons spécifiques d'améliorer votre utilisation de C++11 et C++14 par Scott Meyers

Si vous avez déjà de l'expérience avec C++, mais que vous souhaitez tester les normes les plus récentes, lisez ce livre. Vous serez surpris de voir à quel point le C++ a évolué grâce à ces nouvelles normes. Le livre explique comment tirer le meilleur parti des nouvelles fonctionnalités de C++. (Même si la norme C++ est maintenant jusqu'à C++17, C++14 est toujours à la pointe dans de nombreux contextes de projet.)

STL efficace : 50 façons spécifiques d'améliorer votre utilisation de la bibliothèque de modèles standard par Scott Meyers

L'un des aspects les plus étonnants de C++ est sa bibliothèque de modèles standard (STL). C'est l'une des fonctionnalités les plus puissantes, mais elle peut être assez complexe. Ce livre fournit 50 astuces géniales et plus de 100 algorithmes STL qui explorent différents domaines de la STL, la rendant plus accessible aux développeurs qui débutent avec C++.

En relation: Top 10 des erreurs C++ les plus courantes commises par les développeurs