{"id":48540539,"url":"https://github.com/ndxdeveloper/formation-cpp-moderne-ubuntu","last_synced_at":"2026-04-08T04:02:46.652Z","repository":{"id":343548624,"uuid":"1176319517","full_name":"NDXDeveloper/formation-cpp-moderne-ubuntu","owner":"NDXDeveloper","description":"Formation complète C++ moderne (C++11 → C++26) sur Ubuntu. Du débutant à l'expert, avec focus DevOps et Cloud Native. 17 modules, 48 chapitres, ~305 sections.","archived":false,"fork":false,"pushed_at":"2026-03-20T11:47:10.000Z","size":3838,"stargazers_count":37,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-03-21T04:04:10.037Z","etag":null,"topics":["cloud-native","cmake","cplusplus","cpp","cpp20","cpp23","cpp26","devops","docker","formation","francais","grpc","linux","system-programming","tutoriel","ubuntu"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NDXDeveloper.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-08T22:34:08.000Z","updated_at":"2026-03-20T11:47:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/NDXDeveloper/formation-cpp-moderne-ubuntu","commit_stats":null,"previous_names":["ndxdeveloper/formation-cpp-moderne-ubuntu"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/NDXDeveloper/formation-cpp-moderne-ubuntu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-cpp-moderne-ubuntu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-cpp-moderne-ubuntu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-cpp-moderne-ubuntu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-cpp-moderne-ubuntu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NDXDeveloper","download_url":"https://codeload.github.com/NDXDeveloper/formation-cpp-moderne-ubuntu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-cpp-moderne-ubuntu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31539230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"online","status_checked_at":"2026-04-08T02:00:06.127Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud-native","cmake","cplusplus","cpp","cpp20","cpp23","cpp26","devops","docker","formation","francais","grpc","linux","system-programming","tutoriel","ubuntu"],"created_at":"2026-04-08T04:02:35.420Z","updated_at":"2026-04-08T04:02:46.640Z","avatar_url":"https://github.com/NDXDeveloper.png","language":"C++","readme":"# 🚀 Formation C++ Moderne sur Ubuntu\n\n![License](https://img.shields.io/badge/License-CC%20BY%204.0-blue.svg)\n![C++ Version](https://img.shields.io/badge/C%2B%2B-11%20→%2026-00599C.svg)\n![Ubuntu](https://img.shields.io/badge/Ubuntu-24.04%2B-E95420.svg)\n![Modules](https://img.shields.io/badge/Modules-17%2F17-green.svg)\n![Langue](https://img.shields.io/badge/Langue-Français-blue.svg)\n\n**Un parcours progressif pour apprendre le C++ moderne, de la syntaxe de base au déploiement Cloud Native.**\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/cpp-logo.png\" alt=\"C++ Logo\" width=\"200\"/\u003e\n\u003c/p\u003e\n\n---\n\n## 📖 Navigation\n\n- [À propos](#-à-propos)\n- [Pour qui ?](#-pour-qui-)\n- [Contenu](#-contenu-de-la-formation)\n- [Démarrage](#-démarrage-rapide)\n- [Parcours suggéré](#-parcours-suggéré)\n- [Licence](#-licence)\n- [Auteur](#-auteur)\n\n---\n\n## 📋 À propos\n\nCette formation est née d'un constat simple : beaucoup de ressources C++ sont soit trop académiques, soit déconnectées des pratiques modernes de développement. J'ai essayé de créer quelque chose de différent — un guide qui vous accompagne du premier `Hello World` jusqu'au déploiement d'applications en conteneurs.\n\nCe n'est pas une référence exhaustive du langage (il y a cppreference pour ça !), mais plutôt un chemin balisé pour devenir opérationnel en C++ dans un environnement Linux/DevOps moderne.\n\n**✨ Ce que vous trouverez :**\n\n| | |\n|---|---|\n| 📚 **17 modules progressifs** | Du débutant absolu à l'expert |\n| 🐧 **Focus Ubuntu/Linux** | Toolchain, debugging, profiling natif |\n| 🔧 **C++ moderne** | C++11 → C++26, smart pointers, move semantics, concepts |\n| 🐳 **Approche DevOps** | Docker, CI/CD, gRPC, observabilité |\n| 📦 **Tooling complet** | CMake 3.31+, Conan 2.0, Ninja, ccache/sccache |\n| 🇫🇷 **En français** | Et gratuit (CC BY 4.0) |\n\n**⏱️ Durée estimée :** 120-170 heures selon votre rythme et niveau initial\n\n---\n\n## 🎯 Pour qui ?\n\nCette formation s'adresse à plusieurs profils :\n\n| Profil | Point d'entrée suggéré |\n|--------|------------------------|\n| 🌱 **Débutant en programmation** | Partie I — Commencez par le début ! |\n| 🔄 **Dev Python/Java/JS → C++** | Module 2 — Les fondamentaux ont des pièges |\n| 🐧 **Sysadmin / DevOps** | Partie V — Docker, CI/CD, CLI tools |\n| 🔙 **Retour au C++ après des années** | Module 4 — Le C++ moderne a beaucoup changé |\n| 📈 **Dev C++ → niveau supérieur** | Partie VI — Optimisation, patterns, sécurité |\n\n---\n\n## 📚 Contenu de la formation\n\n### Vue d'ensemble\n\n```\nPARTIE I   : Fondations (Modules 1-3)  \nPARTIE II  : C++ Moderne (Modules 4-6)  \nPARTIE III : Programmation Système Linux (Modules 7-8)  \nPARTIE IV  : Tooling et Build Systems (Modules 9-11)  \nPARTIE V   : DevOps et Cloud Native (Modules 12-13)  \nPARTIE VI  : Sujets Avancés (Modules 14-16)  \nPARTIE VII : Projet et Professionnalisation (Module 17)  \n```\n\n### Les 17 modules\n\n| # | Module | Niveau | Thèmes clés |\n|---|--------|--------|-------------|\n| 1 | Environnement de développement | 🌱 Débutant | GCC 15, Clang 20, ccache, IDE, ELF |\n| 2 | Fondamentaux du langage | 🌱 Débutant | Types, fonctions, mémoire |\n| 3 | Programmation Orientée Objet | 🌱 Débutant | Classes, RAII, Rule of Five |\n| 4 | C++ Moderne (C++11→26) | 🌿 Intermédiaire | Smart pointers, move semantics, lambdas, C++26 |\n| 5 | Librairie Standard (STL) | 🌿 Intermédiaire | Conteneurs, algorithmes, ranges, templates |\n| 6 | Gestion des erreurs | 🌿 Intermédiaire | Exceptions, std::expected, Contrats C++26 |\n| 7 | Programmation Système | 🌳 Avancé | Threads, sockets TCP/UDP, epoll, io_uring, Asio, gRPC, signaux, IPC |\n| 8 | Parsing et formats | 🌳 Avancé | JSON, YAML, TOML, XML, regex (CTRE/RE2/PCRE2), Protobuf, FlatBuffers, Cap'n Proto, MessagePack |\n| 9 | Build Systems | 🌳 Avancé | CMake 3.31+, Ninja, Conan 2.0 |\n| 10 | Débogage et profiling | 🌳 Avancé | GDB, Valgrind, perf, sanitizers |\n| 11 | Tests et qualité | 🌳 Avancé | Google Test, couverture, benchmark |\n| 12 | Création d'outils CLI | 🌳 Avancé | CLI11, fmt |\n| 13 | C++ et DevOps | 🌳 Avancé | Docker, CI/CD, observabilité |\n| 14 | Optimisation | 🏔️ Expert | Cache CPU, SIMD, PGO, LTO |\n| 15 | Interopérabilité | 🏔️ Expert | pybind11, Rust/cxx, WebAssembly |\n| 16 | Patterns et sécurité | 🏔️ Expert | Design patterns, fuzzing, Safety Profiles |\n| 17 | Architecture projet | 🏔️ Expert | Standards, pre-commit, collaboration |\n\n📑 **Table des matières détaillée :** [SOMMAIRE.md](SOMMAIRE.md)\n\n---\n\n## 🚀 Démarrage rapide\n\n### Prérequis\n\n- Ubuntu 24.04+ (ou WSL2 sous Windows)\n- ~10 Go d'espace disque\n- Motivation et curiosité 🙂\n\n### Installation de la toolchain minimale\n\n```bash\n# Mise à jour du système\nsudo apt update \u0026\u0026 sudo apt upgrade -y\n\n# Installation des outils essentiels\nsudo apt install -y build-essential cmake ninja-build gdb git\n```\n\n### Installation de GCC 14/15 (C++23 / C++26)\n\nSur Ubuntu 24.04, GCC 13 est installé par défaut. Les exemples de cette formation utilisent des fonctionnalités C++23 et C++26 qui nécessitent GCC 14 ou 15 :\n\n```bash\n# Ajouter le PPA pour GCC 14/15\nsudo add-apt-repository -y ppa:ubuntu-toolchain-r/test  \nsudo apt update  \n\n# Installer GCC 14 et 15\nsudo apt install -y g++-14 g++-15\n\n# Outils d'inspection binaire et de développement\nsudo apt install -y binutils nasm valgrind strace ltrace\n```\n\n### Vérification\n\n```bash\ng++ --version      # GCC 13 (par défaut)  \ng++-14 --version   # GCC 14 — support C++23 complet (std::ranges::to, etc.)  \ng++-15 --version   # GCC 15 — support C++23/C++26 (std::print, contracts, etc.)  \ncmake --version  \n```\n\n### Cloner cette formation\n\n```bash\ngit clone https://github.com/NDXDeveloper/formation-cpp-moderne-ubuntu.git  \ncd formation-cpp-moderne-ubuntu  \n```\n\n### Premier programme\n\n```cpp\n// hello.cpp\n#include \u003cprint\u003e  // C++23\n\nint main() {\n    std::println(\"Bienvenue dans le C++ moderne ! 🚀\");\n    return 0;\n}\n```\n\n```bash\n# Compilation (nécessite GCC 14+ pour std::print)\ng++-15 -std=c++23 -o hello hello.cpp\n./hello\n```\n\n\u003e 💡 **Pas GCC 15 ?** Pas de panique, le Module 1 vous guide pas à pas pour configurer votre environnement et installer la bonne version.\n\n---\n\n## 🗓️ Parcours suggéré\n\n### Option A : Parcours complet (~170h)\n\nSuivez les modules dans l'ordre. Comptez 4-6 mois à raison de 1-2h par jour.\n\n### Option B : Parcours accéléré pour devs expérimentés (~60h)\n\n```\nSemaine 1-2 : Modules 4-6 (C++ moderne, STL, erreurs)  \nSemaine 3-4 : Modules 9-11 (CMake, debugging, tests)  \nSemaine 5-6 : Modules 12-13 (CLI, DevOps)  \n```\n\n### Option C : Focus DevOps/SRE (~40h)\n\n```\nModule 1  → Toolchain  \nModule 8  → JSON/YAML/Protobuf  \nModule 9  → CMake  \nModule 12 → Outils CLI  \nModule 13 → Docker, CI/CD, Observabilité  \n```\n\n---\n\n## 📁 Structure du projet\n\n```\nformation-cpp-moderne-ubuntu/\n├── README.md                          # Ce fichier\n├── SOMMAIRE.md                        # Table des matières détaillée\n├── LICENSE                            # CC BY 4.0\n│\n├── partie-01-fondations.md\n├── partie-02-cpp-moderne.md\n├── ...\n├── module-01-environnement-developpement-linux.md\n├── module-02-fondamentaux-langage.md\n├── ...\n│\n├── 01-introduction-cpp-linux/\n│   ├── README.md\n│   ├── 01-histoire-evolution-cpp.md\n│   └── ...\n├── 02-toolchain-ubuntu/\n├── 03-types-variables-operateurs/\n│   ├── README.md\n│   ├── 01-typage-statique-inference.md\n│   ├── 01.1-auto.md\n│   └── ...\n├── ...\n├── 48-ressources/\n├── conclusion/\n│\n└── assets/\n    ├── images/\n    └── examples/\n```\n\n---\n\n## ❓ Questions fréquentes\n\n**Q : Faut-il des connaissances préalables ?**\n\u003e Non pour les parties I et II. Une familiarité avec un langage de programmation aide, mais n'est pas obligatoire.\n\n**Q : Pourquoi Ubuntu spécifiquement ?**\n\u003e La majorité des serveurs en production tournent sous Linux. Ubuntu est accessible et bien documenté. Les concepts s'appliquent à toutes les distributions.\n\n**Q : Cette formation remplace-t-elle un cours universitaire ?**\n\u003e Non, et ce n'est pas l'objectif. Elle est complémentaire — plus orientée pratique et industrie, moins théorique.\n\n**Q : Le contenu est-il à jour ?**\n\u003e La formation couvre C++26 (en cours de ratification en 2026), avec GCC 15 et Clang 20 comme compilateurs de référence. CMake 3.31+, Conan 2.x et les Safety Profiles sont traités dans leur état de mars 2026.\n\n**Q : Puis-je utiliser ce contenu pour enseigner ?**\n\u003e Oui ! La licence CC BY 4.0 le permet, avec attribution.\n\n---\n\n## 📝 Licence\n\nCe projet est sous licence **Creative Commons Attribution 4.0 International (CC BY 4.0)**.\n\n✅ Vous êtes libre de :\n- **Partager** — copier et redistribuer le contenu\n- **Adapter** — modifier, transformer et créer à partir du contenu\n- Pour toute utilisation, y compris commerciale\n\n📌 **À condition de** créditer l'auteur :\n\n```\nFormation C++ Moderne sur Ubuntu par Nicolas DEOUX  \nhttps://github.com/NDXDeveloper/formation-cpp-moderne-ubuntu  \nLicence CC BY 4.0  \n```\n\n---\n\n## 👨‍💻 Auteur\n\n**Nicolas DEOUX**\n\n- 📧 [NDXDev@gmail.com](mailto:NDXDev@gmail.com)\n- 💼 [LinkedIn](https://www.linkedin.com/in/nicolas-deoux-ab295980/)\n- 🐙 [GitHub](https://github.com/NDXDeveloper)\n\nCette formation représente des centaines d'heures de travail. Si elle vous est utile, un petit message ou une étoile ⭐ sur le repo fait toujours plaisir !\n\n---\n\n## 🙏 Remerciements\n\nCette formation n'existerait pas sans les ressources exceptionnelles de la communauté C++ :\n\n- 📖 [cppreference.com](https://en.cppreference.com/) — La référence incontournable\n- 📚 [Effective C++](https://www.aristeia.com/books.html) de Scott Meyers\n- 🎥 [CppCon](https://www.youtube.com/user/CppCon) — Des centaines de talks de qualité\n- 🛠️ [Compiler Explorer](https://godbolt.org/) — L'outil indispensable\n\nMerci aussi à tous les développeurs qui partagent leur savoir en open source. C'est ce qui rend cette industrie unique.\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**🎉 Bon apprentissage ! 🎉**\n\n*Le C++ a la réputation d'être difficile. C'est en partie vrai — mais c'est aussi un langage incroyablement puissant et gratifiant à maîtriser. Prenez votre temps, pratiquez, et n'hésitez pas à relire les sections complexes plusieurs fois.*\n\n*Bonne route !*\n\n---\n\n[![GitHub Stars](https://img.shields.io/github/stars/NDXDeveloper/formation-cpp-moderne-ubuntu?style=social)](https://github.com/NDXDeveloper/formation-cpp-moderne-ubuntu)\n\n**[⬆ Retour en haut](#-formation-c-moderne-sur-ubuntu)**\n\n*Dernière mise à jour : Mars 2026*\n\n\u003c/div\u003e \n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndxdeveloper%2Fformation-cpp-moderne-ubuntu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndxdeveloper%2Fformation-cpp-moderne-ubuntu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndxdeveloper%2Fformation-cpp-moderne-ubuntu/lists"}