00:00:00Savez-vous ce qui est plus frustrant que de bĂątir un projet ? Ne pas savoir quoi bĂątir.
00:00:04à un moment donné de votre parcours de développeur, vous atteignez cette phase étrange.
00:00:08Créer une éniÚme application CRUD avec un framework JavaScript devient ennuyeux,
00:00:11mais crĂ©er un systĂšme d'exploitation Ă partir de zĂ©ro semble impossible. Vous ĂȘtes coincĂ© entre les deux.
00:00:16Vous ne voulez pas de la facilité. Vous ne voulez pas de l'impossible. Vous voulez juste quelque chose de significatif.
00:00:21Un défi suffisant pour progresser, mais pas trop accablant pour ne pas abandonner à mi-chemin.
00:00:26Croyez-moi, je suis passé par là . Dans cette vidéo, je vais donc vous donner d'excellentes idées de projets.
00:00:32Je les ai divisées en trois niveaux. Niveau un : bùtir vos fondations. Niveau deux : stockage,
00:00:38bases de données et systÚmes de données. Et niveau trois : systÚmes avancés et architecture interne.
00:00:44Si vous réalisez ces projets, vous ne ferez pas que mieux coder. Vous commencerez à penser comme un
00:00:49ingénieur. Commençons par le niveau un. Le premier projet consiste à créer votre propre serveur HTTP
00:00:55de A Ă Z. Si vous regardez ceci, vous savez probablement ce qu'est un serveur HTTP. Chaque fois que vous ouvrez
00:01:01un site web ou appelez une API, une requĂȘte et une rĂ©ponse s'Ă©changent en coulisses.
00:01:06Mais jusqu'ici, vous n'avez interagi avec cela qu'à travers des frameworks comme Express. Créer votre propre mini
00:01:12serveur HTTP vous force à comprendre ce qui se passe réellement en dessous. Vous apprendrez comment les sockets TCP
00:01:19envoient et reçoivent des donnĂ©es, comment les requĂȘtes HTTP sont analysĂ©es, comment les rĂ©ponses sont formatĂ©es, et comment
00:01:25gĂ©rer plusieurs requĂȘtes simultanĂ©ment. Si vous vous sentez dĂ©jĂ dĂ©passĂ© par la maniĂšre de
00:01:30réaliser ces projets, j'ai une petite solution pour vous à la fin de cette vidéo. Ne
00:01:35manquez pas ça. Passons maintenant au deuxiÚme projet : créer votre propre shell. Vous avez utilisé
00:01:40des commandes comme cd, ls, pwd des centaines de fois. Mais avez-vous déjà pensé à ce qui traite
00:01:46rĂ©ellement ces commandes ? En crĂ©ant votre propre shell, vous concevez ce systĂšme vous-mĂȘme. Vous apprendrez
00:01:52à lire et analyser les entrées utilisateur, à exécuter des processus, à gérer les appels systÚme,
00:01:58et à comprendre les concepts de l'OS comme les processus et les commandes. En bùtissant votre propre shell de zéro,
00:02:04vous comprendrez l'informatique en profondeur. Maintenant, les choses deviennent intéressantes. Voyons
00:02:09quels sont les projets du niveau deux. Le premier projet ici est de créer votre propre Redis. Redis est un
00:02:15entrepÎt de données en mémoire utilisé comme cache, base de données, courtier de messages, etc. C'est incroyablement rapide. Mais
00:02:21tant que vous n'en aurez pas construit un vous-mĂȘme, vous ne comprendrez pas vraiment pourquoi. En implĂ©mentant votre propre clone
00:02:26de Redis, vous apprendrez le fonctionnement des structures de données en mémoire. Vous implémenterez les commandes de base.
00:02:32Vous comprendrez le protocole Redis. Vous gérerez efficacement plusieurs connexions clients à l'aide de boucles
00:02:38d'événements. Ce ne sont que des points saillants. Il y a encore beaucoup de choses que vous apprendrez une fois que vous
00:02:43commencerez. Vous réaliserez que l'ingénierie logicielle est bien plus que la simple création d'applications CRUD.
00:02:48Le projet suivant est de créer votre propre GIT. Vous utilisez GIT tous les jours. Mais savez-vous vraiment comment il fonctionne ?
00:02:54Lorsque vous construisez vous-mĂȘme un systĂšme de contrĂŽle de version simplifiĂ©, tout devient clair. Vous comprendrez
00:03:00comment les commits sont stockés en interne. Vous implémenterez le hachage et le stockage adressable par contenu.
00:03:05Vous organiserez les instantanés de fichiers en arbres de commits. Et il y a tellement plus à apprendre et à implémenter.
00:03:11Et l'avantage de construire à partir de zéro, c'est que vous pouvez le modifier pour qu'il fonctionne comme vous le souhaitez.
00:03:16Enfin, notre troisiÚme projet est de créer votre propre base de données SQLite. SQLite est un moteur de
00:03:22base de données sans serveur qui stocke tout dans un seul fichier. Contrairement à MySQL ou Postgres, il n'y a pas
00:03:29de processus serveur séparé. C'est léger mais incroyablement puissant. En construisant votre propre version,
00:03:34vous comprendrez comment les données sont organisées via des structures comme les B-trees. Vous analyserez et exécuterez
00:03:39des requĂȘtes simples. Vous implĂ©menterez l'indexation pour une rĂ©cupĂ©ration plus rapide. En tant que dĂ©veloppeur, on n'Ă©chappe pas
00:03:45aux bases de données. Mais une fois que vous aurez compris l'interne, vous ferez partie des rares développeurs avertis.
00:03:52Au niveau trois, nous allons plus loin. Le premier projet ici est de créer votre propre mini langage de programmation.
00:03:58Oui, votre propre langage. Vous créerez quelque chose qui lit du code, le comprend et exécute
00:04:04des instructions. MĂȘme si cela semble intimidant, c'est l'un des projets les plus gratifiants que vous puissiez rĂ©aliser.
00:04:10Vous apprendrez et implémenterez des outils comme un lexer, un parseur et un arbre de syntaxe abstraite. Surtout, vous
00:04:17comprendrez comment fonctionnent réellement les interpréteurs et les compilateurs. C'est un projet génial car vous
00:04:22comprendrez enfin comment nous communiquons vraiment avec les ordinateurs. Et vous pourrez vous vanter d'avoir créé
00:04:27un langage de programmation en le nommant comme vous voulez. Le deuxiÚme projet consiste à créer votre propre
00:04:32client BitTorrent. C'est ici que les systÚmes distribués entrent en jeu. BitTorrent est un systÚme de partage de fichiers
00:04:38en pair-Ă -pair oĂč les utilisateurs tĂ©lĂ©chargent des fragments de fichiers depuis plusieurs pairs au lieu d'un seul serveur.
00:04:44En bĂątissant cela, vous implĂ©menterez la dĂ©couverte de pairs, gĂ©rerez les connexions entre nĆuds, diviserez les fichiers en
00:04:50fragments, assurerez l'intégrité des fichiers et gérerez la communication distribuée. Ce n'est pas un projet facile.
00:04:57Je parie que vous n'avez mĂȘme pas compris la moitiĂ© de ce que je viens de dire. Mais cela vous enseigne comment les
00:05:02systÚmes distribués à grande échelle fonctionnent réellement. Et enfin, notre dernier projet est de créer votre propre
00:05:08assistant de code. Quelque chose de similaire à Claude Code. Les outils d'IA modernes sont géniaux, mais sous le capot,
00:05:14ce sont des systÚmes intégrant des modÚles de langage avec une architecture logicielle traditionnelle. En en
00:05:20construisant un, vous intégrerez une API de LLM dans une application. Vous analyserez et indexerez les fichiers du projet
00:05:27pour fournir du contexte. Vous gérerez les prompts et contrÎlerez les réponses. Vous concevrez un systÚme qui
00:05:32mĂȘle l'IA aux principes rĂ©els d'ingĂ©nierie. Une fois que vous travaillerez dessus, vous comprendrez
00:05:38comment ces outils de codage par IA populaires fonctionnent vraiment. Et pas seulement ça : comme l'IA est trÚs
00:05:44en vogue aujourd'hui, c'est un projet stimulant qui peut vraiment vous faire sortir du lot. Soyons
00:05:50honnĂȘtes : certains de ces projets sont difficiles. CrĂ©er son propre Redis, Git ou client BitTorrent n'est pas
00:05:55quelque chose que l'on finit tranquillement en un week-end. Vous allez bloquer. Vous allez douter de vous. Parfois,
00:06:01vous ne saurez mĂȘme pas si vous l'implĂ©mentez correctement. Et c'est gĂ©nĂ©ralement lĂ que la plupart des gens
00:06:05abandonnent. Pour remédier à cela, il existe une plateforme appelée CodeCrafters. C'est une plateforme d'apprentissage
00:06:11par projet oĂč vous reconstruisez des outils comme Redis, SQLite, des serveurs DNS ou HTTP, Ă©tape par Ă©tape. Ils ne vous
00:06:19donnent pas la solution. Ils vous donnent des tests et des jalons structurés. Et vous implémentez tout
00:06:23vous-mĂȘme. Je l'ai personnellement utilisĂ©e pour ces projets. Et honnĂȘtement, avoir cette direction
00:06:29structurée a fait la différence entre abandonner et finir. Donc, si vous aimez ces idées de projets mais
00:06:34voulez ĂȘtre guidĂ© tout en faisant le vrai travail, je laisserai un lien en description. Mais que vous utilisiez
00:06:39une plateforme ou que vous soyez en solo, l'important est de construire par vous-mĂȘme. Si vous avez aussi
00:06:45écumé Internet à la recherche du prochain projet à bùtir, j'espÚre que cela vous a éclairé.
00:06:51Cela peut paraßtre effrayant au début, mais l'eau froide ne se réchauffe que lorsqu'on y plonge. Si vous avez aimé
00:06:57ce genre de vidéo, n'oubliez pas de liker, de vous abonner, et dites-moi par quel projet vous allez commencer.
00:07:02On se voit dans la prochaine.