Une formation complète et moderne pour développeurs et DevOps souhaitant maîtriser le C sous Linux.
Cette 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.
✨ Points clés :
- 📚 9 modules progressifs du niveau débutant au niveau expert
- 🛠️ Outillage moderne : CMake, DevContainers, Sanitizers, clang-format
- 🔥 Focus DevOps : CI/CD avec GitHub Actions, tests automatisés, packaging
- 🐧 Programmation système Linux : processus, threads, sockets, IPC
- ⚡ Technologies avancées : eBPF, atomics C11, optimisation
- 🇫🇷 En français et gratuit (CC BY 4.0)
Durée estimée : Variable selon le parcours (6 à 25 semaines) • Niveau : Tous niveaux
📑 Consultez le SOMMAIRE.md complet pour la table des matières détaillée
Module 1 : L'Écosystème C sous Linux (Débutant)
- Introduction, normes C (C99, C11, C17, C23), configuration Ubuntu
- ⭐ DevContainers pour environnements reproductibles
Module 2 : Fondamentaux du Langage (Débutant)
- Types, opérateurs, structures de contrôle, fonctions
- ⭐ clang-format et bonnes pratiques
Module 3 : La Gestion de la Mémoire (Intermédiaire)
- Pointeurs, tableaux, chaînes, allocation dynamique
- Stack vs Heap, fuites mémoire
Module 4 : Structures de Données et Modularité (Intermédiaire)
- struct, union, enum, listes chaînées, arbres
- Organisation du code et compilation modulaire
Module 5 : Outillage DevOps et Automatisation (Avancé)
- 🔥 CMake en priorité, GNU Make
- Bibliothèques statiques/dynamiques
- ⭐ Sanitizers, Valgrind, GDB, analyse statique
Module 6 : Programmation Système Linux (Expert)
- I/O bas niveau, processus, signaux
- ⭐ Threads POSIX, atomics C11
- Sockets, IPC avancé
- 🔥 Introduction à eBPF (observabilité moderne)
Module 7 : Techniques Avancées et Optimisation (Expert)
- Pointeurs avancés, macros, préprocesseur
- Gestion d'erreurs robuste, sécurité
- Optimisation, profiling, interopérabilité
Module 8 : C dans un Pipeline CI/CD (Bonus DevOps)
- Tests unitaires, frameworks (Criterion, Unity)
- 🔥 GitHub Actions pour projets C (template complet)
- Cross-compilation, packaging (.deb, .rpm, Docker)
Module 9 : Projets de Synthèse (Optionnel)
- Analyse de code open-source (Git, Redis, Nginx)
- Études de cas DevOps (CLI, monitoring, serveur web)
- Standards C, man pages, livres de référence
- Antisèches : GCC, GDB, CMake, sanitizers
- Configurations : .vimrc, VS Code, .devcontainer.json
- Glossaire complet
- Système : Ubuntu 22.04+ ou toute distribution Linux récente
- Niveau : Aucun prérequis pour les modules débutants
- Temps : 30 min à 1h par jour recommandé
# Installation de la toolchain C
sudo apt update
sudo apt install build-essential gcc gdb cmake valgrind clang-format
# Vérification
gcc --version
cmake --versiongit clone https://github.com/NDXDeveloper/formation-c-ubuntu.git
cd formation-c-ubuntu# Créer un fichier hello.c
echo '#include <stdio.h>
int main(void) {
printf("Hello, C World!\\n");
return 0;
}' > hello.c
# Compiler et exécuter
gcc -Wall -Wextra hello.c -o hello
./helloformation-c-ubuntu/
├── README.md
├── SOMMAIRE.md # Table des matières détaillée
├── LICENSE
├── 01-ecosysteme-c-linux/
├── 02-configuration-environnement/
├── 03-chaine-de-compilation/
├── ...
├── 35-debugging-code-complexe/
├── annexes/
│ ├── references-essentielles/
│ ├── antiseches/
│ ├── configuration-environnement/
│ └── glossaire/
├── parcours-recommandes/
└── ressources-complementaires/
- 👉 Commencez par le Module 1 et suivez l'ordre séquentiel
- 👉 Prévoyez 18-25 semaines à temps partiel
- 👉 Parcourez les modules 1-3, puis concentrez-vous sur les modules 5 (Outillage), 8 (CI/CD), et la section eBPF du module 6
- 👉 Durée estimée : 8-12 semaines
- 👉 Priorité absolue au module 6 (Programmation système Linux)
- 👉 Complétez avec les modules 3, 5, et 7
- 👉 Durée estimée : 12-16 semaines
- 👉 Modules 1-4 complets, puis module 7 (optimisation)
- 👉 Ajoutez le module 8 pour la cross-compilation
- 👉 Durée estimée : 10-14 semaines
💡 Conseil : Créez un répertoire de pratique et testez chaque exemple de code !
📘 Consultez les Parcours Détaillés pour des recommandations personnalisées
| Parcours | Modules prioritaires | Durée | Public cible |
|---|---|---|---|
| 🚀 Backend→DevOps | 1-3, 5 🔥, 6 (eBPF), 8 🔥 | 8-12 sem. | Automatisation, observabilité |
| 🐧 SysAdmin→Système | 1-3, 6 🔥, 5, 7 | 12-16 sem. | Compréhension bas niveau |
| 🎮 Embedded→Linux | 1-4 🔥, 7 🔥, 8 (cross) | 10-14 sem. | Systèmes contraints |
| 🌟 Débutant→Expert | 1→9 séquentiel | 18-25 sem. | Maîtrise complète |
Légende : 🔥 = Essentiel pour ce parcours
- GCC (GNU Compiler Collection) - options, optimisation
- CMake 🔥 - build system moderne (priorité)
- GNU Make - comprendre les Makefile legacy
- Sanitizers 🔥 (ASan, UBSan, TSan, LSan)
- Valgrind (Memcheck, Helgrind, Cachegrind)
- GDB - debugging interactif et avancé
- cppcheck, clang-tidy - analyse statique
- GitHub Actions 🔥 - template complet pour projets C
- DevContainers - environnements reproductibles
- Docker - conteneurisation multi-stage
- gcov/lcov - code coverage
- POSIX Threads (pthread)
- Sockets (TCP/UDP)
- eBPF 🔥 - observabilité et networking moderne
- IPC - pipes, shared memory, mmap
Après cette formation, vous serez capable de :
- ✅ Écrire du C moderne avec les standards C11/C17/C23
- ✅ Configurer un environnement de développement professionnel (IDE, DevContainers, CI/CD)
- ✅ Déboguer efficacement avec sanitizers, Valgrind, et GDB
- ✅ Créer des builds multiplateformes avec CMake
- ✅ Développer des outils système (CLI, agents de monitoring)
- ✅ Programmer des applications réseau (serveurs TCP, HTTP)
- ✅ Maîtriser le multithreading (threads POSIX, synchronisation, atomics)
- ✅ Utiliser eBPF pour l'observabilité et le tracing
- ✅ Mettre en place un pipeline CI/CD complet pour vos projets C
- ✅ Optimiser les performances (profiling, cache awareness, SIMD)
Cette formation adopte une approche pratique et moderne :
- Qualité avant quantité : Accent sur les outils et pratiques 2025 (sanitizers, CMake, CI/CD)
- DevOps-first : Intégration continue dès le début, pas seulement à la fin
- Sécurité par défaut :
-Wall -Werror, validation des entrées, code défensif - Observabilité : eBPF et outils modernes de monitoring
- Humilité : Le C est un outil puissant, cette formation vous guide avec pragmatisme
Ce projet est sous licence CC BY 4.0 (Creative Commons Attribution 4.0 International).
✅ Libre d'utiliser, modifier, partager (même commercialement) avec attribution.
Attribution suggérée :
Formation C Ubuntu par Nicolas DEOUX
https://github.com/NDXDeveloper/formation-c-ubuntu
Licence CC BY 4.0
Voir le fichier LICENSE pour les détails complets.
Nicolas DEOUX
- 📧 NDXDev@gmail.com
- 🐙 GitHub
Un grand merci à la communauté C et Linux, aux mainteneurs de GCC, Valgrind, CMake, et à tous les contributeurs open-source qui rendent ces technologies accessibles.
Ressources qui ont inspiré cette formation :
- The C Programming Language (K&R)
- Advanced Programming in the UNIX Environment (Stevens)
- Linux Kernel Documentation
- eBPF.io