{"id":48540829,"url":"https://github.com/ndxdeveloper/formation-c-ubuntu","last_synced_at":"2026-04-08T04:03:31.710Z","repository":{"id":338247575,"uuid":"1103906601","full_name":"NDXDeveloper/formation-c-ubuntu","owner":"NDXDeveloper","description":"Formation en français pour maîtriser le langage C sur Ubuntu/Linux - De la syntaxe à la programmation système, avec outillage DevOps moderne (CMake, CI/CD, eBPF)","archived":false,"fork":false,"pushed_at":"2026-02-13T19:25:26.000Z","size":3346,"stargazers_count":48,"open_issues_count":2,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-13T22:58:48.302Z","etag":null,"topics":["c","c-programming","ci-cd","cmake","devops","ebpf","embedded-systems","formation","francais","gcc","gdb","github-actions","linux","posix","pthreads","sanitizers","systems-programming","tutoriel","ubuntu","valgrind"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"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":"2025-11-25T13:47:47.000Z","updated_at":"2026-02-13T19:25:29.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/NDXDeveloper/formation-c-ubuntu","commit_stats":null,"previous_names":["ndxdeveloper/formation-c-ubuntu"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/NDXDeveloper/formation-c-ubuntu","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-c-ubuntu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-c-ubuntu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-c-ubuntu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-c-ubuntu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NDXDeveloper","download_url":"https://codeload.github.com/NDXDeveloper/formation-c-ubuntu/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NDXDeveloper%2Fformation-c-ubuntu/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31539233,"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":["c","c-programming","ci-cd","cmake","devops","ebpf","embedded-systems","formation","francais","gcc","gdb","github-actions","linux","posix","pthreads","sanitizers","systems-programming","tutoriel","ubuntu","valgrind"],"created_at":"2026-04-08T04:03:30.920Z","updated_at":"2026-04-08T04:03:31.698Z","avatar_url":"https://github.com/NDXDeveloper.png","language":null,"readme":"# 🔧 Maîtriser C sur Ubuntu : De la Syntaxe au Système\n\n![License](https://img.shields.io/badge/License-CC%20BY%204.0-blue.svg)\n![C Standard](https://img.shields.io/badge/C-C11%20%7C%20C17%20%7C%20C23-orange.svg)\n![Platform](https://img.shields.io/badge/Platform-Ubuntu%20%7C%20Linux-purple.svg)\n![Completion](https://img.shields.io/badge/Modules-9%2F9-green.svg)\n![Language](https://img.shields.io/badge/Langue-Français-blue.svg)\n\n**Une formation complète et moderne pour développeurs et DevOps souhaitant maîtriser le C sous Linux.**\n\n---\n\n## 📖 Table des matières\n\n- [À propos](#-%C3%A0-propos)\n- [Contenu](#-contenu-de-la-formation)\n- [Installation](#-d%C3%A9marrage-rapide)\n- [Utilisation](#-comment-utiliser-cette-formation)\n- [Parcours recommandés](#%EF%B8%8F-parcours-recommand%C3%A9s)\n- [Licence](#-licence)\n- [Contact](#%E2%80%8D-contact)\n\n---\n\n## 📋 À propos\n\nCette formation propose une approche complète du langage C dans l'écosystème Linux moderne. Du débutant à l'expert, vous apprendrez non seulement la syntaxe du langage, mais aussi l'outillage DevOps (CMake, CI/CD, sanitizers), la programmation système, et les technologies émergentes comme eBPF.\n\n**✨ Points clés :**\n- 📚 **9 modules progressifs** du niveau débutant au niveau expert\n- 🛠️ **Outillage moderne** : CMake, DevContainers, Sanitizers, clang-format\n- 🔥 **Focus DevOps** : CI/CD avec GitHub Actions, tests automatisés, packaging\n- 🐧 **Programmation système Linux** : processus, threads, sockets, IPC\n- ⚡ **Technologies avancées** : eBPF, atomics C11, optimisation\n- 🇫🇷 **En français** et gratuit (CC BY 4.0)\n\n**Durée estimée :** Variable selon le parcours (6 à 25 semaines) • **Niveau :** Tous niveaux\n\n---\n\n## 📚 Contenu de la formation\n\n\u003e 📑 **Consultez le [SOMMAIRE.md](/SOMMAIRE.md) complet pour la table des matières détaillée**\n\n### Les 9 Modules\n\n**Module 1 : L'Écosystème C sous Linux** *(Débutant)*\n- Introduction, normes C (C99, C11, C17, C23), configuration Ubuntu\n- **⭐ DevContainers** pour environnements reproductibles\n\n**Module 2 : Fondamentaux du Langage** *(Débutant)*\n- Types, opérateurs, structures de contrôle, fonctions\n- **⭐ clang-format** et bonnes pratiques\n\n**Module 3 : La Gestion de la Mémoire** *(Intermédiaire)*\n- Pointeurs, tableaux, chaînes, allocation dynamique\n- Stack vs Heap, fuites mémoire\n\n**Module 4 : Structures de Données et Modularité** *(Intermédiaire)*\n- struct, union, enum, listes chaînées, arbres\n- Organisation du code et compilation modulaire\n\n**Module 5 : Outillage DevOps et Automatisation** *(Avancé)*\n- **🔥 CMake en priorité**, GNU Make\n- Bibliothèques statiques/dynamiques\n- **⭐ Sanitizers, Valgrind, GDB, analyse statique**\n\n**Module 6 : Programmation Système Linux** *(Expert)*\n- I/O bas niveau, processus, signaux\n- **⭐ Threads POSIX, atomics C11**\n- Sockets, IPC avancé\n- **🔥 Introduction à eBPF** (observabilité moderne)\n\n**Module 7 : Techniques Avancées et Optimisation** *(Expert)*\n- Pointeurs avancés, macros, préprocesseur\n- Gestion d'erreurs robuste, sécurité\n- Optimisation, profiling, interopérabilité\n\n**Module 8 : C dans un Pipeline CI/CD** *(Bonus DevOps)*\n- Tests unitaires, frameworks (Criterion, Unity)\n- **🔥 GitHub Actions** pour projets C (template complet)\n- Cross-compilation, packaging (.deb, .rpm, Docker)\n\n**Module 9 : Projets de Synthèse** *(Optionnel)*\n- Analyse de code open-source (Git, Redis, Nginx)\n- Études de cas DevOps (CLI, monitoring, serveur web)\n\n### Annexes\n\n- **Standards C, man pages, livres de référence**\n- **Antisèches** : GCC, GDB, CMake, sanitizers\n- **Configurations** : .vimrc, VS Code, .devcontainer.json\n- **Glossaire** complet\n\n---\n\n## 🚀 Démarrage rapide\n\n### Prérequis\n\n- **Système** : Ubuntu 24.04 LTS ou toute distribution Linux récente\n- **Niveau** : Aucun prérequis pour les modules débutants\n- **Temps** : 30 min à 1h par jour recommandé\n\n### Installation de l'environnement\n\n```bash\n# Installation de la toolchain C\nsudo apt update  \nsudo apt install build-essential gcc gdb cmake valgrind clang-format  \n\n# Vérification\ngcc --version  \ncmake --version  \n```\n\n### Cloner cette formation\n\n```bash\ngit clone https://github.com/NDXDeveloper/formation-c-ubuntu.git  \ncd formation-c-ubuntu  \n```\n\n### Premier programme\n\n```bash\n# Créer un fichier hello.c\necho '#include \u003cstdio.h\u003e  \nint main(void) {  \n    printf(\"Hello, C World!\\\\n\");\n    return 0;\n}' \u003e hello.c\n\n# Compiler et exécuter\ngcc -Wall -Wextra -std=c17 hello.c -o hello\n./hello\n```\n\n---\n\n## 📁 Structure du projet\n\n```\nformation-c-ubuntu/\n├── README.md\n├── SOMMAIRE.md                          # Table des matières détaillée\n├── LICENSE\n├── 01-ecosysteme-c-linux/\n├── 02-configuration-environnement/\n├── 03-chaine-de-compilation/\n├── ...\n├── 35-debugging-code-complexe/\n├── annexes/\n│   ├── references-essentielles/\n│   ├── antiseches/\n│   ├── configuration-environnement/\n│   └── glossaire/\n├── parcours-recommandes/\n└── ressources-complementaires/\n```\n\n---\n\n## 🎯 Comment utiliser cette formation\n\n### 🌱 Débutant complet\n- 👉 Commencez par le [Module 1](/module-01-l-ecosysteme-c-sous-linux.md) et suivez l'ordre séquentiel\n- 👉 Prévoyez 18-25 semaines à temps partiel\n\n### 🔧 Développeur Backend → DevOps\n- 👉 Parcourez les modules 1-3, puis concentrez-vous sur les modules 5 (Outillage), 8 (CI/CD), et la section eBPF du module 6\n- 👉 Durée estimée : 8-12 semaines\n\n### ⚙️ SysAdmin → Ingénieur Système\n- 👉 Priorité absolue au module 6 (Programmation système Linux)\n- 👉 Complétez avec les modules 3, 5, et 7\n- 👉 Durée estimée : 12-16 semaines\n\n### 🎮 Embedded → Linux Embarqué\n- 👉 Modules 1-4 complets, puis module 7 (optimisation)\n- 👉 Ajoutez le module 8 pour la cross-compilation\n- 👉 Durée estimée : 10-14 semaines\n\n**💡 Conseil :** Créez un répertoire de pratique et testez chaque exemple de code !\n\n---\n\n## 🗓️ Parcours recommandés\n\n\u003e 📘 **Consultez les [Parcours Détaillés](/parcours-recommandes/README.md) pour des recommandations personnalisées**\n\n| Parcours | Modules prioritaires | Durée | Public cible |\n|----------|---------------------|-------|--------------|\n| 🚀 **Backend→DevOps** | 1-3, 5 🔥, 6 (eBPF), 8 🔥 | 8-12 sem. | Automatisation, observabilité |\n| 🐧 **SysAdmin→Système** | 1-3, 6 🔥, 5, 7 | 12-16 sem. | Compréhension bas niveau |\n| 🎮 **Embedded→Linux** | 1-4 🔥, 7 🔥, 8 (cross) | 10-14 sem. | Systèmes contraints |\n| 🌟 **Débutant→Expert** | 1→9 séquentiel | 18-25 sem. | Maîtrise complète |\n\n**Légende :** 🔥 = Essentiel pour ce parcours\n\n---\n\n## ⚙️ Technologies et outils couverts\n\n### Compilateurs et Build Systems\n- **GCC** (GNU Compiler Collection) - options, optimisation\n- **CMake** 🔥 - build system moderne (priorité)\n- **GNU Make** - comprendre les Makefile legacy\n\n### Debugging et Analyse\n- **Sanitizers** 🔥 (ASan, UBSan, TSan, LSan)\n- **Valgrind** (Memcheck, Helgrind, Cachegrind)\n- **GDB** - debugging interactif et avancé\n- **cppcheck, clang-tidy** - analyse statique\n\n### DevOps et CI/CD\n- **GitHub Actions** 🔥 - template complet pour projets C\n- **DevContainers** - environnements reproductibles\n- **Docker** - conteneurisation multi-stage\n- **gcov/lcov** - code coverage\n\n### Programmation Système\n- **POSIX Threads** (pthread)\n- **Sockets** (TCP/UDP)\n- **eBPF** 🔥 - observabilité et networking moderne\n- **IPC** - pipes, shared memory, mmap\n\n---\n\n## 🎓 Ce que vous saurez faire\n\nAprès cette formation, vous serez capable de :\n\n- ✅ **Écrire du C moderne** avec les standards C11/C17/C23\n- ✅ **Configurer un environnement de développement professionnel** (IDE, DevContainers, CI/CD)\n- ✅ **Déboguer efficacement** avec sanitizers, Valgrind, et GDB\n- ✅ **Créer des builds multiplateformes** avec CMake\n- ✅ **Développer des outils système** (CLI, agents de monitoring)\n- ✅ **Programmer des applications réseau** (serveurs TCP, HTTP)\n- ✅ **Maîtriser le multithreading** (threads POSIX, synchronisation, atomics)\n- ✅ **Utiliser eBPF** pour l'observabilité et le tracing\n- ✅ **Mettre en place un pipeline CI/CD complet** pour vos projets C\n- ✅ **Optimiser les performances** (profiling, cache awareness, SIMD)\n\n---\n\n## 🎯 Philosophie de la formation\n\nCette formation adopte une approche **pratique et moderne** :\n\n- **Qualité avant quantité** : Accent sur les outils et pratiques actuels (sanitizers, CMake, CI/CD)\n- **DevOps-first** : Intégration continue dès le début, pas seulement à la fin\n- **Sécurité par défaut** : `-Wall -Werror`, validation des entrées, code défensif\n- **Observabilité** : eBPF et outils modernes de monitoring\n- **Humilité** : Le C est un outil puissant, cette formation vous guide avec pragmatisme\n\n---\n\n## 📝 Licence\n\nCe projet est sous licence **CC BY 4.0** (Creative Commons Attribution 4.0 International).\n\n✅ Libre d'utiliser, modifier, partager (même commercialement) avec attribution.\n\n**Attribution suggérée :**\n```\nFormation C Ubuntu par Nicolas DEOUX  \nhttps://github.com/NDXDeveloper/formation-c-ubuntu  \nLicence CC BY 4.0  \n```\n\nVoir le fichier [LICENSE](LICENSE) pour les détails complets.\n\n---\n\n## 👨‍💻 Contact\n\n**Nicolas DEOUX**\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\n---\n\n## 🙏 Remerciements\n\nUn grand merci à la communauté C et Linux, aux mainteneurs de GCC, Valgrind, CMake, et à tous les contributeurs open-source qui rendent ces technologies accessibles.\n\n**Ressources qui ont inspiré cette formation :**\n- [The C Programming Language](https://en.wikipedia.org/wiki/The_C_Programming_Language) (K\u0026R)\n- [Advanced Programming in the UNIX Environment](https://stevens.netmeister.org/631/) (Stevens)\n- [Linux Kernel Documentation](https://www.kernel.org/doc/html/latest/)\n- [eBPF.io](https://ebpf.io/)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n\n**🔧 Bon apprentissage avec le C sous Linux ! 🐧**\n\n[![Follow](https://img.shields.io/github/followers/NDXDeveloper?style=social)](https://github.com/NDXDeveloper)\n\n**[⬆ Retour en haut](#-maîtriser-c-sur-ubuntu--de-la-syntaxe-au-système)**\n\n*Dernière mise à jour : Février 2026*\n\n\u003c/div\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndxdeveloper%2Fformation-c-ubuntu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fndxdeveloper%2Fformation-c-ubuntu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fndxdeveloper%2Fformation-c-ubuntu/lists"}