Langages de programmation
C++ moderne : du premier programme à la concurrence et aux templates
Maîtrisez le C++17/20 avec RAII, la sémantique de déplacement, la STL, les concepts, les ranges, les threads et le principe du « zéro surcoût »
Ce que vous apprendrez
- Écrire du C++ moderne et idiomatique avec auto, la boucle for basée sur les intervalles et les structured bindings dès le premier jour
- Maîtriser les conteneurs, itérateurs et algorithmes de la STL qui résolvent 90 % des problèmes réels
- Appliquer RAII et les pointeurs intelligents pour gérer la mémoire et les ressources sans fuites ni doubles libérations
- Utiliser la sémantique de déplacement, le perfect forwarding et les catégories de valeur pour écrire du code attentif à son coût
- Construire des composants génériques avec les templates, les concepts et l'évaluation à la compilation via constexpr
- Écrire des programmes concurrents et sûrs avec les threads, les mutex, les atomiques, std::async et les futures
- Composer des pipelines de données avec les ranges de C++20, std::variant et std::optional
- Raisonner sur la pile, le tas, la durée de vie des objets et le principe du « zéro surcoût »
- Lire et déboguer des bases de code C++ existantes dans les domaines de l'embarqué, du jeu vidéo et des logiciels système
- Vous orienter dans la chaîne d'outils — compilateurs, standards et C++ ISO — avec une réelle aisance pratique
Programme
Contenu du cours
6 sections · 43 leçons. Dépliez chaque section pour voir son contenu.
1. Premier code : sortie, variables et la forme d'un programme C++
- ▸ De C avec classes à ISO C++ Aperçu
- · Hello, World et l'anatomie d'une unité de traduction
- · Variables, initialisation et mot-clé auto
- · Les types fondamentaux et leurs tailles
- · Opérateurs arithmétiques, de comparaison et logiques
- · Chaînes de caractères, concaténation et lecture depuis l'utilisateur
2. Flux de contrôle : décisions, boucles et filtrage par motif
- · Où C++ se trouve vraiment aujourd'hui
- · If, Else If et l'opérateur ternaire
- · L'instruction switch et le fallthrough
- · Les boucles while et do-while
- · La boucle for et la boucle for basée sur une plage
- · Break, Continue et sortie anticipée
3. Fonctions, portée et ce qu'elles touchent
- · Le principe zéro surcoût et ses désagréments
- · Déclarer et appeler des fonctions
- · Passe par valeur, référence et référence const
- · Arguments par défaut et surcharge de fonctions
- · Lambdas : des fonctions qui voyagent
- · Portée, durée de vie, et pourquoi les pointeurs locaux mordent
4. Collections : tableaux, vecteurs, maps et les conteneurs de la STL
- · Benchmarks, Footguns et le Coût de la Puissance
- · Tableaux C classiques et std::array
- · std::vector : le conteneur par défaut
- · std::map et std::unordered_map
- · Tuples, Paires et Liaisons Structurées
- · Itérateurs et la bibliothèque d'algorithmes
5. Concurrence, ressources et C++ asynchrone
- · Le standard, les compilateurs et la réalité de la chaîne d'outils
- · Threads et Workers Joinables
- · Mutexes, Lock Guards et la race condition
- · std::async, Futures, et la récupération des valeurs
- · Opérations Atomic et Compteurs Lock-Free
- · Pointeurs intelligents : unique_ptr, shared_ptr et weak_ptr
- · Sécurité des exceptions et déroulement de la pile
6. Templates, génériques et la boîte à outils C++20
- · Le modèle mémoire : pile, tas et durée de vie des objets
- · Fonctions template et déduction de type
- · Modèles de classe et l'état d'esprit STL
- · Concepts : contraindre les templates de manière lisible
- · Les Ranges et les Algorithmes en Style Pipeline
- · std::variant, std::optional et les types sommes
- · constexpr et évaluation à la compilation
- · RAII : la meilleure idée que le C++ ait jamais eue
- · Templates, concepts et calcul à la compilation
- · Sémantique de déplacement et le coût d'une copie
- · Patrons de conception réinventés en C++ moderne
- · Domaines spécialisés : Embarqué, Temps Réel et HPC
À propos de ce cours
Le C++ fait tourner le monde que vous ne voyez pas. Le moteur de jeu qui fait le rendu de votre jeu préféré, la plateforme de trading haute fréquence qui liquide des milliards d'opérations avant midi, l'onglet du navigateur dans lequel vous lisez ces lignes, le firmware du système de freinage de votre voiture, la base de données qui conserve le solde de votre compte en banque, le système de guidage de la fusée qui vient de poser un propulseur sur une barge : tout cela, c'est du C++. Un demi-siècle après que Bjarne Stroustrup a greffé les classes sur le C, le langage n'est pas seulement bien vivant : il est le géant silencieux de l'informatique moderne, celui vers lequel on se tourne quand les nanosecondes comptent et que l'abstraction ne doit rien coûter. Bien le maîtriser est l'une des compétences les plus rentables qu'un programmeur puisse acquérir.
Ce cours vous emmène de votre toute première unité de traduction jusqu'à la boîte à outils du C++20 moderne, à travers six sections ciblées, sans faire l'impasse sur ce qui compte vraiment. Chaque section de code s'ouvre sur une courte leçon conceptuelle — l'histoire, la vue d'ensemble, le « pourquoi » derrière la fonctionnalité — puis vous plonge aussitôt dans du code concret qui met l'idée en pratique. Vous écrirez des sorties console, des variables, les types fondamentaux et les opérateurs qui les relient, puis vous parcourrez les structures de contrôle, les fonctions, les lambdas et les conteneurs de la STL que tout ingénieur C++ utilise au quotidien. Vous écrirez vos propres threads, mutex, atomiques, pointeurs intelligents et du code robuste face aux exceptions ; vous construirez des composants génériques avec les templates et les concepts, et vous composerez des données avec les ranges, std::variant, std::optional et constexpr. Le cours se termine ensuite par une série de leçons conceptuelles plus poussées — RAII, les templates et le calcul à la compilation, la sémantique de déplacement, les patrons de conception réinventés en C++ moderne et les domaines spécialisés que le C++ domine — qui relient tout ce que vous avez construit à la seule question qui définit le langage : qu'est-ce que cela coûte réellement à l'exécution ?
Ce cours s'adresse aux programmeurs qui veulent faire du C++ un véritable outil professionnel : les personnes en reconversion venant de Python ou de Java, les étudiants en informatique dont les cursus ont survolé les fonctionnalités modernes, les développeurs de systèmes embarqués et de jeux vidéo qui montent en compétence, et les autodidactes prêts à aborder le langage qui fait tourner l'infrastructure. Il vous faut des bases en programmation dans n'importe quel langage ; aucune expérience préalable du C ou du C++ n'est requise. À la fin, vous lirez couramment des bases de code en C++ moderne, vous écrirez du code idiomatique fondé sur RAII, vous raisonnerez sur la propriété et la durée de vie des objets, vous utiliserez les templates et les concepts sans crainte, et vous livrerez des programmes concurrents qui ne plantent pas à 3 heures du matin.
Ce qui distingue ce cours, c'est son refus d'enseigner le C++ comme une pièce de musée. Nous ne commençons pas par les pointeurs bruts et les tableaux de char pour nous en excuser plus tard ; nous commençons par auto, les vecteurs, la boucle for basée sur les intervalles et les pointeurs intelligents, puis nous retirons les couches une à une pour montrer ce qu'il y a en dessous et pourquoi cela compte. Vous apprendrez le langage tel qu'il s'écrit dans le code de production de 2026, avec le contexte historique nécessaire pour comprendre les pièges dangereux et le jugement d'ingénieur pour les éviter. Inscrivez-vous dès maintenant et commencez à écrire du C++ comme l'écrivent vraiment celles et ceux qui maintiennent les compilateurs, les noyaux et les systèmes de trading.
À qui s'adresse ce cours
- Les développeurs Python, Java ou JavaScript qui ajoutent un langage système à leur boîte à outils
- Les étudiants en informatique dont le cursus a fait l'impasse sur les fonctionnalités modernes du C++
- Les ingénieurs en systèmes embarqués, robotique et firmware prêts à aller au-delà du C
- Les développeurs de jeux vidéo, programmeurs graphiques et contributeurs de moteurs qui montent en compétence
- Les programmeurs autodidactes qui préparent des entretiens en backend, HFT ou programmation système
Prérequis
- Une expérience de base en programmation dans n'importe quel langage (variables, boucles, fonctions)
- Un ordinateur sous Windows, macOS ou Linux avec au moins 4 Go de RAM
- La volonté d'installer un compilateur C++ moderne comme GCC, Clang ou MSVC
- Être à l'aise avec un terminal ou une invite de commandes pour lancer les commandes de compilation
- Aucune connaissance préalable du C ou du C++ n'est requise : nous construisons tout à partir des principes fondamentaux
Avis des étudiants
Aucun avis pour le moment
Les avis des étudiants inscrits apparaîtront ici.