build-your-own-x est une compilation open source (domaine public) de tutoriels pas-à-pas qui vous apprennent à recréer vos technologies favorites à partir de zéro. C’est une ressource éducative incontournable pour apprendre en pratiquant.
Ce qu’est Build your own X
- Une immense bibliothèque de guides : Elle répertorie des centaines de tutoriels pour construire vos propres versions de technologies variées : bases de données, moteurs 3D, systèmes d’exploitation, blockchain, IA, frameworks web, etc.
- Une philosophie d’apprentissage : Le projet s’inspire de la citation de Richard Feynman : « What I cannot create, I do not understand » (Ce que je ne peux pas créer, je ne le comprends pas). L’idée est que l’on maîtrise vraiment un sujet lorsqu’on est capable de le réimplémenter.
- Une ressource communautaire : Le dépôt GitHub compte plus de 523 000 étoiles et est alimenté par les contributions de la communauté (plus de 130 contributeurs). Les tutoriels sont triés par catégorie et par langage de programmation.
Ce que vous y trouverez
Le dépôt est organisé en catégories, chacune contenant des liens vers des tutoriels (souvent des articles, des séries de blogs ou des vidéos) pour un langage spécifique.
| Catégorie | Exemples de tutoriels inclus |
|---|---|
| 3D Renderer | Créer un moteur de ray tracing en C++ ou un logiciel de rendu 3D en Python |
| Blockchain / Cryptocurrency | Construire une blockchain en Go, Python ou JavaScript |
| Database | Réécrire Redis en C++ ou un système de base de données simple en Go |
| Emulator / Virtual Machine | Développer un émulateur Game Boy en C++ ou une machine virtuelle en C |
| Front-end Framework / Library | Reproduire React, Redux ou Angular en JavaScript |
| Game | Programmer un jeu comme Snake, Tetris ou un moteur de jeu complet |
| Git | Recréer les fonctionnalités de base de Git en Python ou Ruby |
| Neural Network | Construire un réseau de neurones de A à Z en Python (sans librairies) |
| Operating System | Écrire un noyau ou un bootloader en C/Assembleur |
| Programming Language | Concevoir son propre compilateur ou interpréteur (ex: un Lisp) |
| Text Editor | Créer un éditeur de texte en C ou Rust |
| Web Server | Implémenter un serveur HTTP en Python, Node.js ou Ruby |
| Et bien d’autres | Shell, moteur de recherche, client BitTorrent, visualisation de données… |
Pourquoi et comment l’utiliser ?
- Pour apprendre en profondeur : C’est une excellente ressource pour aller au-delà de l’utilisation des outils et comprendre leur fonctionnement interne.
- Pour découvrir de nouveaux langages : Chaque tutoriel est associé à un langage, ce qui permet d’apprendre en pratiquant sur un projet concret.
- Pour trouver l’inspiration : Vous pouvez explorer les projets pour trouver des idées de side projects ou de sujets d’étude.
- Libre et accessible : La ressource est entièrement gratuite et maintenue par une communauté.
github.com/codecrafters-io/build-your-own-x