[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-236":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":10,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},236,"build-your-own-x","codecrafters-io\u002Fbuild-your-own-x","codecrafters-io","Master programming by recreating your favorite technologies from scratch.","https:\u002F\u002Fcodecrafters.io",null,"Markdown",516335,48886,6749,260,0,414,2834,14355,2153,107,false,"master",[25,26,27,28,29,30],"awesome-list","free","programming","tutorial-code","tutorial-exercises","tutorials","2026-06-17 04:00:02","[![Banner](https:\u002F\u002Fcodecrafters.io\u002Fimages\u002Fnew-ccgithub-banner.png)](https:\u002F\u002Fcodecrafters.io\u002Fgithub-banner)\n\n## Build your own &lt;insert-technology-here&gt;\n\nThis repository is a compilation of well-written, step-by-step guides for re-creating our favorite technologies from scratch. \n\n> *What I cannot create, I do not understand — Richard Feynman.*\n\nIt's a great way to learn.\n\n* [3D Renderer](#build-your-own-3d-renderer)\n* [AI Model](#ai-model)\n* [Augmented Reality](#build-your-own-augmented-reality)\n* [BitTorrent Client](#build-your-own-bittorrent-client)\n* [Blockchain \u002F Cryptocurrency](#build-your-own-blockchain--cryptocurrency)\n* [Bot](#build-your-own-bot)\n* [Command-Line Tool](#build-your-own-command-line-tool)\n* [Database](#build-your-own-database)\n* [Docker](#build-your-own-docker)\n* [Emulator \u002F Virtual Machine](#build-your-own-emulator--virtual-machine)\n* [Front-end Framework \u002F Library](#build-your-own-front-end-framework--library)\n* [Game](#build-your-own-game)\n* [Git](#build-your-own-git)\n* [Memory Allocator](#build-your-own-memory-allocator)\n* [Network Stack](#build-your-own-network-stack)\n* [Neural Network](#build-your-own-neural-network)\n* [Operating System](#build-your-own-operating-system)\n* [Physics Engine](#build-your-own-physics-engine)\n* [Processor](#build-your-own-processor)\n* [Programming Language](#build-your-own-programming-language)\n* [Regex Engine](#build-your-own-regex-engine)\n* [Search Engine](#build-your-own-search-engine)\n* [Shell](#build-your-own-shell)\n* [Template Engine](#build-your-own-template-engine)\n* [Text Editor](#build-your-own-text-editor)\n* [Visual Recognition System](#build-your-own-visual-recognition-system)\n* [Voxel Engine](#build-your-own-voxel-engine)\n* [Web Browser](#build-your-own-web-browser)\n* [Web Server](#build-your-own-web-server)\n* [Uncategorized](#uncategorized)\n\n## Tutorials\n\n#### Build your own `Distributed Systems`\n* [**Java**: _Building Your Own Kafka-like System From Scratch: A Step-by-Step Guide_](https:\u002F\u002Fgithub.com\u002Fbuildthingsuseful\u002Fbuild-your-own-kafka)\n\n#### Build your own `3D Renderer`\n\n* [**C++**: _Introduction to Ray Tracing: a Simple Method for Creating 3D Images_](https:\u002F\u002Fwww.scratchapixel.com\u002Flessons\u002F3d-basic-rendering\u002Fintroduction-to-ray-tracing\u002Fhow-does-it-work)\n* [**C++**: _How OpenGL works: software rendering in 500 lines of code_](https:\u002F\u002Fgithub.com\u002Fssloy\u002Ftinyrenderer\u002Fwiki)\n* [**C++**: _Raycasting engine of Wolfenstein 3D_](http:\u002F\u002Flodev.org\u002Fcgtutor\u002Fraycasting.html)\n* [**C++**: _Physically Based Rendering:From Theory To Implementation_](http:\u002F\u002Fwww.pbr-book.org\u002F)\n* [**C++**: _Ray Tracing in One Weekend_](https:\u002F\u002Fraytracing.github.io\u002Fbooks\u002FRayTracingInOneWeekend.html)\n* [**C++**: _Rasterization: a Practical Implementation_](https:\u002F\u002Fwww.scratchapixel.com\u002Flessons\u002F3d-basic-rendering\u002Frasterization-practical-implementation\u002Foverview-rasterization-algorithm)\n* [**C# \u002F TypeScript \u002F JavaScript**: _Learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript_](https:\u002F\u002Fwww.davrous.com\u002F2013\u002F06\u002F13\u002Ftutorial-series-learning-how-to-write-a-3d-soft-engine-from-scratch-in-c-typescript-or-javascript\u002F)\n* [**Java \u002F JavaScript**: _Build your own 3D renderer_](https:\u002F\u002Favik-das.github.io\u002Fbuild-your-own-raytracer\u002F)\n* [**Java**: _How to create your own simple 3D render engine in pure Java_](http:\u002F\u002Fblog.rogach.org\u002F2015\u002F08\u002Fhow-to-create-your-own-simple-3d-render.html)\n* [**JavaScript \u002F Pseudocode**: _Computer Graphics from scratch_](http:\u002F\u002Fwww.gabrielgambetta.com\u002Fcomputer-graphics-from-scratch\u002Fintroduction.html)\n* [**Python**: _A 3D Modeller_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fa-3d-modeller.html)\n\n#### Build your own `AI Model`\n* [**Python**: _A Large Language Model (LLM)_](https:\u002F\u002Fgithub.com\u002Frasbt\u002FLLMs-from-scratch)\n* [**Python**: _Diffusion Models for Image Generation_](https:\u002F\u002Fhuggingface.co\u002Flearn\u002Fdiffusion-course\u002Fen\u002Funit1\u002F3)\n* [**Python**: _RAG for Document Search_](https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Frag-from-scratch)\n\n#### Build your own `Augmented Reality`\n\n* [**C#**: _How To: Augmented Reality App Tutorial for Beginners with Vuforia and Unity 3D_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=uXNjNcqW4kY) [video]\n* [**C#**: _How To Unity ARCore_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLKIKuXdn4ZMjuUAtdQfK1vwTZPQn_rgSv) [video]\n* [**C#**: _AR Portal Tutorial with Unity_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLPCqNOwwN794Gz5fzUSi1p4OqLU0HTmvn) [video]\n* [**C#**: _How to create a Dragon in Augmented Reality in Unity ARCore_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=qTSDPkPyPqs) [video]\n* [**C#**: _How to Augmented Reality AR Tutorial: ARKit Portal to the Upside Down_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Z5AmqMuNi08) [video]\n* [**Python**: _Augmented Reality with Python and OpenCV_](https:\u002F\u002Fbitesofcode.wordpress.com\u002F2017\u002F09\u002F12\u002Faugmented-reality-with-python-and-opencv-part-1\u002F)\n\n#### Build your own `BitTorrent Client`\n\n* [**C#**: _Building a BitTorrent client from scratch in C#_](https:\u002F\u002Fwww.seanjoflynn.com\u002Fresearch\u002Fbittorrent.html)\n* [**Go**: _Building a BitTorrent client from the ground up in Go_](https:\u002F\u002Fblog.jse.li\u002Fposts\u002Ftorrent\u002F)\n* [**Nim**: _Writing a Bencode Parser_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday02_bencode.html)\n* [**Node.js**: _Write your own bittorrent client_](https:\u002F\u002Fallenkim67.github.io\u002Fprogramming\u002F2016\u002F05\u002F04\u002Fhow-to-make-your-own-bittorrent-client.html)\n* [**Python**: _A BitTorrent client in Python 3.5_](http:\u002F\u002Fmarkuseliasson.se\u002Farticle\u002Fbittorrent-in-python\u002F)\n\n#### Build your own `Blockchain \u002F Cryptocurrency`\n\n* [**ATS**: _Functional Blockchain_](https:\u002F\u002Fbeta.observablehq.com\u002F@galletti94\u002Ffunctional-blockchain)\n* [**Crystal**: _Write your own blockchain and PoW algorithm using Crystal_](https:\u002F\u002Fmedium.com\u002F@bradford_hamilton\u002Fwrite-your-own-blockchain-and-pow-algorithm-using-crystal-d53d5d9d0c52)\n* [**Go**: _Building Blockchain in Go_](https:\u002F\u002Fjeiwan.net\u002Fposts\u002Fbuilding-blockchain-in-go-part-1\u002F)\n* [**Go**: _Code your own blockchain in less than 200 lines of Go_](https:\u002F\u002Fmedium.com\u002F@mycoralhealth\u002Fcode-your-own-blockchain-in-less-than-200-lines-of-go-e296282bcffc)\n* [**Java**: _Creating Your First Blockchain with Java_](https:\u002F\u002Fmedium.com\u002Fprogrammers-blockchain\u002Fcreate-simple-blockchain-java-tutorial-from-scratch-6eeed3cb03fa)\n* [**JavaScript**: _A cryptocurrency implementation in less than 1500 lines of code_](https:\u002F\u002Fgithub.com\u002Fconradoqg\u002Fnaivecoin)\n* [**JavaScript**: _Build your own Blockchain in JavaScript_](https:\u002F\u002Fgithub.com\u002Fnambrot\u002Fblockchain-in-js)\n* [**JavaScript**: _Learn & Build a JavaScript Blockchain_](https:\u002F\u002Fmedium.com\u002Fdigital-alchemy-holdings\u002Flearn-build-a-javascript-blockchain-part-1-ca61c285821e)\n* [**JavaScript**: _Creating a blockchain with JavaScript_](https:\u002F\u002Fgithub.com\u002FSavjeeTutorials\u002FSavjeeCoin)\n* [**JavaScript**: _How To Launch Your Own Production-Ready Cryptocurrency_](https:\u002F\u002Fhackernoon.com\u002Fhow-to-launch-your-own-production-ready-cryptocurrency-ab97cb773371)\n* [**JavaScript**: _Writing a Blockchain in Node.js_](https:\u002F\u002Fwww.smashingmagazine.com\u002F2020\u002F02\u002Fcryptocurrency-blockchain-node-js\u002F)\n* [**Kotlin**: _Let’s implement a cryptocurrency in Kotlin_](https:\u002F\u002Fmedium.com\u002F@vasilyf\u002Flets-implement-a-cryptocurrency-in-kotlin-part-1-blockchain-8704069f8580)\n* [**Python**: _Learn Blockchains by Building One_](https:\u002F\u002Fhackernoon.com\u002Flearn-blockchains-by-building-one-117428612f46)\n* [**Python**: _Build your own blockchain: a Python tutorial_](http:\u002F\u002Fecomunsing.com\u002Fbuild-your-own-blockchain)\n* [**Python**: _A Practical Introduction to Blockchain with Python_](http:\u002F\u002Fadilmoujahid.com\u002Fposts\u002F2018\u002F03\u002Fintro-blockchain-bitcoin-python\u002F)\n* [**Python**: _Let’s Build the Tiniest Blockchain_](https:\u002F\u002Fmedium.com\u002Fcrypto-currently\u002Flets-build-the-tiniest-blockchain-e70965a248b)\n* [**Ruby**: _Programming Blockchains Step-by-Step (Manuscripts Book Edition)_](https:\u002F\u002Fgithub.com\u002Fyukimotopress\u002Fprogramming-blockchains-step-by-step)\n* [**Scala**: _How to build a simple actor-based blockchain_](https:\u002F\u002Fmedium.freecodecamp.org\u002Fhow-to-build-a-simple-actor-based-blockchain-aac1e996c177)\n* [**TypeScript**: _Naivecoin: a tutorial for building a cryptocurrency_](https:\u002F\u002Flhartikk.github.io\u002F)\n* [**TypeScript**: _NaivecoinStake: a tutorial for building a cryptocurrency with the Proof of Stake consensus_](https:\u002F\u002Fnaivecoinstake.learn.uno\u002F)\n* [**Rust**: _Building A Blockchain in Rust & Substrate_](https:\u002F\u002Fhackernoon.com\u002Fbuilding-a-blockchain-in-rust-and-substrate-a-step-by-step-guide-for-developers-kc223ybp)\n\n\n#### Build your own `Bot`\n\n* [**Haskell**: _Roll your own IRC bot_](https:\u002F\u002Fwiki.haskell.org\u002FRoll_your_own_IRC_bot)\n* [**Node.js**: _Creating a Simple Facebook Messenger AI Bot with API.ai in Node.js_](https:\u002F\u002Ftutorials.botsfloor.com\u002Fcreating-a-simple-facebook-messenger-ai-bot-with-api-ai-in-node-js-50ae2fa5c80d)\n* [**Node.js**: _How to make a responsive telegram bot_](https:\u002F\u002Fwww.sohamkamani.com\u002Fblog\u002F2016\u002F09\u002F21\u002Fmaking-a-telegram-bot\u002F)\n* [**Node.js**: _Create a Discord bot_](https:\u002F\u002Fdiscordjs.guide\u002F)\n* [**Node.js**: _gifbot - Building a GitHub App_](https:\u002F\u002Fblog.scottlogic.com\u002F2017\u002F05\u002F22\u002Fgifbot-github-integration.html)\n* [**Node.js**: _Building A Simple AI Chatbot With Web Speech API And Node.js_](https:\u002F\u002Fwww.smashingmagazine.com\u002F2017\u002F08\u002Fai-chatbot-web-speech-api-node-js\u002F)\n* [**Python**: _How to Build Your First Slack Bot with Python_](https:\u002F\u002Fwww.fullstackpython.com\u002Fblog\u002Fbuild-first-slack-bot-python.html)\n* [**Python**: _How to build a Slack Bot with Python using Slack Events API & Django under 20 minute_](https:\u002F\u002Fmedium.com\u002Ffreehunch\u002Fhow-to-build-a-slack-bot-with-python-using-slack-events-api-django-under-20-minute-code-included-269c3a9bf64e)\n* [**Python**: _Build a Reddit Bot_](https:\u002F\u002Fpythonforengineers.com\u002Fblog\u002Fbuild-a-reddit-bot-part-1\u002F)\n* [**Python**: _How To Make A Reddit Bot_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=krTUf7BpTc0) [video]\n* [**Python**: _How To Create a Telegram Bot Using Python_](https:\u002F\u002Fwww.freecodecamp.org\u002Fnews\u002Fhow-to-create-a-telegram-bot-using-python\u002F)\n* [**Python**: _Create a Twitter Bot in Python Using Tweepy_](https:\u002F\u002Fmedium.freecodecamp.org\u002Fcreating-a-twitter-bot-in-python-with-tweepy-ac524157a607)\n* [**Python**: _Creating Reddit Bot with Python & PRAW_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLIFBTFgFpoJ9vmYYlfxRFV6U_XhG-4fpP) [video]\n* [**R**: _Build A Cryptocurrency Trading Bot with R_](https:\u002F\u002Ftowardsdatascience.com\u002Fbuild-a-cryptocurrency-trading-bot-with-r-1445c429e1b1)\n* [**Rust**: _A bot for Starcraft in Rust, C or any other language_](https:\u002F\u002Fhabr.com\u002Fen\u002Fpost\u002F436254\u002F)\n\n#### Build your own `Command-Line Tool`\n\n* [**Go**: _Visualize your local git contributions with Go_](https:\u002F\u002Fflaviocopes.com\u002Fgo-git-contributions\u002F)\n* [**Go**: _Build a command line app with Go: lolcat_](https:\u002F\u002Fflaviocopes.com\u002Fgo-tutorial-lolcat\u002F)\n* [**Go**: _Building a cli command with Go: cowsay_](https:\u002F\u002Fflaviocopes.com\u002Fgo-tutorial-cowsay\u002F)\n* [**Go**: _Go CLI tutorial: fortune clone_](https:\u002F\u002Fflaviocopes.com\u002Fgo-tutorial-fortune\u002F)\n* [**Nim**: _Writing a stow alternative to manage dotfiles_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday06_nistow.html)\n* [**Node.js**: _Create a CLI tool in Javascript_](https:\u002F\u002Fcitw.dev\u002Ftutorial\u002Fcreate-your-own-cli-tool)\n* [**Rust**: _Command line apps in Rust_](https:\u002F\u002Frust-cli.github.io\u002Fbook\u002Findex.html)\n* [**Rust**: _Writing a Command Line Tool in Rust_](https:\u002F\u002Fmattgathu.dev\u002F2017\u002F08\u002F29\u002Fwriting-cli-app-rust.html)\n* [**Zig**: _Build Your Own CLI App in Zig from Scratch_](https:\u002F\u002Frebuild-x.github.io\u002Fdocs\u002F#\u002F.\u002Fzig\u002Fterminal\u002Fcli)\n\n\n#### Build your own `Database`\n\n* [**C**: _Let's Build a Simple Database_](https:\u002F\u002Fcstack.github.io\u002Fdb_tutorial\u002F)\n* [**C++**: _Build Your Own Redis from Scratch_](https:\u002F\u002Fbuild-your-own.org\u002Fredis)\n* [**C#**: _Build Your Own Database_](https:\u002F\u002Fwww.codeproject.com\u002FArticles\u002F1029838\u002FBuild-Your-Own-Database)\n* [**Clojure**: _An Archaeology-Inspired Database_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fan-archaeology-inspired-database.html)\n* [**Crystal**: _Why you should build your own NoSQL Database_](https:\u002F\u002Fmedium.com\u002F@marceloboeira\u002Fwhy-you-should-build-your-own-nosql-database-9bbba42039f5)\n* [**Go**: _Build Your Own Database from Scratch: From B+Tree To SQL in 3000 Lines_](https:\u002F\u002Fbuild-your-own.org\u002Fdatabase\u002F)\n* [**Go**: _Code a database in 45 steps: a series of test-driven small coding puzzles_](https:\u002F\u002Ftrialofcode.org\u002Fdatabase\u002F)\n* [**Go**: _Build Your Own Redis from Scratch_](https:\u002F\u002Fwww.build-redis-from-scratch.dev\u002F)\n* [**JavaScript**: _Dagoba: an in-memory graph database_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fdagoba-an-in-memory-graph-database.html)\n* [**Python**: _DBDB: Dog Bed Database_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fdbdb-dog-bed-database.html)\n* [**Python**: _Write your own miniature Redis with Python_](http:\u002F\u002Fcharlesleifer.com\u002Fblog\u002Fbuilding-a-simple-redis-server-with-python\u002F)\n* [**Ruby**: _Build your own fast, persistent KV store in Ruby_](https:\u002F\u002Fdineshgowda.com\u002Fposts\u002Fbuild-your-own-persistent-kv-store\u002F)\n* [**Rust**: _Build your own Redis client and server_](https:\u002F\u002Ftokio.rs\u002Ftokio\u002Ftutorial\u002Fsetup)\n\n#### Build your own `Docker`\n\n* [**C**: _Linux containers in 500 lines of code_](https:\u002F\u002Fblog.lizzie.io\u002Flinux-containers-in-500-loc.html)\n* [**Go**: _Build Your Own Container Using Less than 100 Lines of Go_](https:\u002F\u002Fwww.infoq.com\u002Farticles\u002Fbuild-a-container-golang)\n* [**Go**: _Building a container from scratch in Go_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8fi7uSYlOdc) [video]\n* [**Python**: _A workshop on Linux containers: Rebuild Docker from Scratch_](https:\u002F\u002Fgithub.com\u002FFewbytes\u002Frubber-docker)\n* [**Python**: _A proof-of-concept imitation of Docker, written in 100% Python_](https:\u002F\u002Fgithub.com\u002Ftonybaloney\u002Fmocker)\n* [**Shell**: _Docker implemented in around 100 lines of bash_](https:\u002F\u002Fgithub.com\u002Fp8952\u002Fbocker)\n\n#### Build your own `Emulator \u002F Virtual Machine`\n\n* [**C**: _Home-grown bytecode interpreters_](https:\u002F\u002Fmedium.com\u002Fbumble-tech\u002Fhome-grown-bytecode-interpreters-51e12d59b25c)\n* [**C**: _Virtual machine in C_](http:\u002F\u002Fweb.archive.org\u002Fweb\u002F20200121100942\u002Fhttps:\u002F\u002Fblog.felixangell.com\u002Fvirtual-machine-in-c\u002F)\n* [**C**: _Write your Own Virtual Machine_](https:\u002F\u002Fjustinmeiners.github.io\u002Flc3-vm\u002F)\n* [**C**: _Writing a Game Boy emulator, Cinoop_](https:\u002F\u002Fcturt.github.io\u002Fcinoop.html)\n* [**C++**: _How to write an emulator (CHIP-8 interpreter)_](http:\u002F\u002Fwww.multigesture.net\u002Farticles\u002Fhow-to-write-an-emulator-chip-8-interpreter\u002F)\n* [**C++**: _Emulation tutorial (CHIP-8 interpreter)_](http:\u002F\u002Fwww.codeslinger.co.uk\u002Fpages\u002Fprojects\u002Fchip8.html)\n* [**C++**: _Emulation tutorial (GameBoy emulator)_](http:\u002F\u002Fwww.codeslinger.co.uk\u002Fpages\u002Fprojects\u002Fgameboy.html)\n* [**C++**: _Emulation tutorial (Master System emulator)_](http:\u002F\u002Fwww.codeslinger.co.uk\u002Fpages\u002Fprojects\u002Fmastersystem\u002Fmemory.html)\n* [**C++**: _NES Emulator From Scratch_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLrOv9FMX8xJHqMvSGB_9G9nZZ_4IgteYf) [video]\n* [**Common Lisp**: _CHIP-8 in Common Lisp_](http:\u002F\u002Fstevelosh.com\u002Fblog\u002F2016\u002F12\u002Fchip8-cpu\u002F)\n* [**JavaScript**: _GameBoy Emulation in JavaScript_](http:\u002F\u002Fimrannazar.com\u002FGameBoy-Emulation-in-JavaScript)\n* [**Python**: _Emulation Basics: Write your own Chip 8 Emulator\u002FInterpreter_](http:\u002F\u002Fomokute.blogspot.com.br\u002F2012\u002F06\u002Femulation-basics-write-your-own-chip-8.html)\n* [**Rust**: _0dmg: Learning Rust by building a partial Game Boy emulator_](https:\u002F\u002Fjeremybanks.github.io\u002F0dmg\u002F)\n\n#### Build your own `Front-end Framework \u002F Library`\n\n* [**JavaScript**: _WTF is JSX (Let's Build a JSX Renderer)_](https:\u002F\u002Fjasonformat.com\u002Fwtf-is-jsx\u002F)\n* [**JavaScript**: _A DIY guide to build your own React_](https:\u002F\u002Fgithub.com\u002Fhexacta\u002Fdidact)\n* [**JavaScript**: _Building React From Scratch_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=_MAD4Oly9yg) [video]\n* [**JavaScript**: _Gooact: React in 160 lines of JavaScript_](https:\u002F\u002Fmedium.com\u002F@sweetpalma\u002Fgooact-react-in-160-lines-of-javascript-44e0742ad60f)\n* [**JavaScript**: _Learn how React Reconciler package works by building your own lightweight React DOM_](https:\u002F\u002Fhackernoon.com\u002Flearn-you-some-custom-react-renderers-aed7164a4199)\n* [**JavaScript**: _Build Yourself a Redux_](https:\u002F\u002Fzapier.com\u002Fengineering\u002Fhow-to-build-redux\u002F)\n* [**JavaScript**: _Let’s Write Redux!_](https:\u002F\u002Fwww.jamasoftware.com\u002Fblog\u002Flets-write-redux\u002F)\n* [**JavaScript**: _Redux: Implementing Store from Scratch_](https:\u002F\u002Fegghead.io\u002Flessons\u002Freact-redux-implementing-store-from-scratch) [video]\n* [**JavaScript**: _Build Your own Simplified AngularJS in 200 Lines of JavaScript_](https:\u002F\u002Fblog.mgechev.com\u002F2015\u002F03\u002F09\u002Fbuild-learn-your-own-light-lightweight-angularjs\u002F)\n* [**JavaScript**: _Make Your Own AngularJS_](http:\u002F\u002Fteropa.info\u002Fblog\u002F2013\u002F11\u002F03\u002Fmake-your-own-angular-part-1-scopes-and-digest.html)\n* [**JavaScript**: _How to write your own Virtual DOM_](https:\u002F\u002Fmedium.com\u002F@deathmood\u002Fhow-to-write-your-own-virtual-dom-ee74acc13060)\n* [**JavaScript**: _Building a frontend framework, from scratch, with components (templating, state, VDOM)_](https:\u002F\u002Fmfrachet.github.io\u002Fcreate-frontend-framework\u002F)\n* [**JavaScript**: _Build your own React_](https:\u002F\u002Fpomb.us\u002Fbuild-your-own-react\u002F)\n* [**JavaScript**: _Building a Custom React Renderer_](https:\u002F\u002Fyoutu.be\u002FCGpMlWVcHok) [video]\n\n#### Build your own `Game`\n\n* [**C**: _Handmade Hero_](https:\u002F\u002Fhandmadehero.org\u002F)\n* [**C**: _How to Program an NES game in C_](https:\u002F\u002Fnesdoug.com\u002F)\n* [**C**: _Chess Engine In C_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLZ1QII7yudbc-Ky058TEaOstZHVbT-2hg) [video]\n* [**C**: _Let's Make: Dangerous Dave_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLSkJey49cOgTSj465v2KbLZ7LMn10bCF9) [video]\n* [**C**: _Learn Video Game Programming in C_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLT6WFYYZE6uLMcPGS3qfpYm7T_gViYMMt)\n  [video]\n* [**C**: _Coding A Sudoku Solver in C_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLkTXsX7igf8edTYU92nU-f5Ntzuf-RKvW) [video]\n* [**C**: _Coding a Rogue\u002FNethack RPG in C_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLkTXsX7igf8erbWGYT4iSAhpnJLJ0Nk5G) [video]\n* [**C**: _On Tetris and Reimplementation_](https:\u002F\u002Fbrennan.io\u002F2015\u002F06\u002F12\u002Ftetris-reimplementation\u002F)\n* [**C++**: _Breakout_](https:\u002F\u002Flearnopengl.com\u002FIn-Practice\u002F2D-Game\u002FBreakout)\n* [**C++**: _Beginning Game Programming v2.0_](http:\u002F\u002Flazyfoo.net\u002Ftutorials\u002FSDL\u002F)\n* [**C++**: _Tetris tutorial in C++ platform independent focused in game logic for beginners_](http:\u002F\u002Fjavilop.com\u002Fgamedev\u002Ftetris-tutorial-in-c-platform-independent-focused-in-game-logic-for-beginners\u002F)\n* [**C++**: _Remaking Cavestory in C++_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ETvApbD5xRo&list=PLNOBk_id22bw6LXhrGfhVwqQIa-M2MsLa) [video]\n* [**C++**: _Reconstructing Cave Story_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PL006xsVEsbKjSKBmLu1clo85yLrwjY67X) [video]\n* [**C++**: _Space Invaders from Scratch_](http:\u002F\u002Fnicktasios.nl\u002Fposts\u002Fspace-invaders-from-scratch-part-1.html)\n* [**C#**: _Learn C# by Building a Simple RPG_](http:\u002F\u002Fscottlilly.com\u002Flearn-c-by-building-a-simple-rpg-index\u002F)\n* [**C#**: _Creating a Roguelike Game in C#_](https:\u002F\u002Froguesharp.wordpress.com\u002F)\n* [**C#**: _Build a C#\u002FWPF RPG_](https:\u002F\u002Fscottlilly.com\u002Fbuild-a-cwpf-rpg\u002F)\n* [**Go**: _Games With Go_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLDZujg-VgQlZUy1iCqBbe5faZLMkA3g2x) [video]\n* [**Java**: _Code a 2D Game Engine using Java - Full Course for Beginners_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=025QFeZfeyM) [video]\n* [**Java**: _3D Game Development with LWJGL 3_](https:\u002F\u002Flwjglgamedev.gitbooks.io\u002F3d-game-development-with-lwjgl\u002Fcontent\u002F)\n* [**JavaScript**: _2D breakout game using Phaser_](https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FGames\u002FTutorials\u002F2D_breakout_game_Phaser)\n* [**JavaScript**: _How to Make Flappy Bird in HTML5 With Phaser_](http:\u002F\u002Fwww.lessmilk.com\u002Ftutorial\u002Fflappy-bird-phaser-1)\n* [**JavaScript**: _Developing Games with React, Redux, and SVG_](https:\u002F\u002Fauth0.com\u002Fblog\u002Fdeveloping-games-with-react-redux-and-svg-part-1\u002F)\n* [**JavaScript**: _Build your own 8-Ball Pool game from scratch_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=aXwCrtAo4Wc) [video]\n* [**JavaScript**: _How to Make Your First Roguelike_](https:\u002F\u002Fgamedevelopment.tutsplus.com\u002Ftutorials\u002Fhow-to-make-your-first-roguelike--gamedev-13677)\n* [**JavaScript**: _Think like a programmer: How to build Snake using only JavaScript, HTML & CSS_](https:\u002F\u002Fmedium.freecodecamp.org\u002Fthink-like-a-programmer-how-to-build-snake-using-only-javascript-html-and-css-7b1479c3339e)\n* [**Lua**: _BYTEPATH_](https:\u002F\u002Fgithub.com\u002FSSYGEN\u002Fblog\u002Fissues\u002F30)\n* [**Python**: _Developing Games With PyGame_](https:\u002F\u002Fpythonprogramming.net\u002Fpygame-python-3-part-1-intro\u002F)\n* [**Python**: _Making Games with Python & Pygame_](https:\u002F\u002Finventwithpython.com\u002Fmakinggames.pdf) [pdf]\n* [**Python**: _Roguelike Tutorial Revised_](http:\u002F\u002Frogueliketutorials.com\u002F)\n* [**Ruby**: _Developing Games With Ruby_](https:\u002F\u002Fleanpub.com\u002Fdeveloping-games-with-ruby\u002Fread)\n* [**Ruby**: _Ruby Snake_](https:\u002F\u002Fwww.diatomenterprises.com\u002Fgamedev-on-ruby-why-not\u002F)\n* [**Rust**: _Adventures in Rust: A Basic 2D Game_](https:\u002F\u002Fa5huynh.github.io\u002Fposts\u002F2018\u002Fadventures-in-rust\u002F)\n* [**Rust**: _Roguelike Tutorial in Rust + tcod_](https:\u002F\u002Ftomassedovic.github.io\u002Froguelike-tutorial\u002F)\n\n#### Build your own `Git`\n\n* [**Haskell**: _Reimplementing “git clone” in Haskell from the bottom up_](http:\u002F\u002Fstefan.saasen.me\u002Farticles\u002Fgit-clone-in-haskell-from-the-bottom-up\u002F)\n* [**JavaScript**: _Gitlet_](http:\u002F\u002Fgitlet.maryrosecook.com\u002Fdocs\u002Fgitlet.html)\n* [**JavaScript**: _Build GIT - Learn GIT_](https:\u002F\u002Fkushagra.dev\u002Fblog\u002Fbuild-git-learn-git\u002F)\n* [**Python**: _Just enough of a Git client to create a repo, commit, and push itself to GitHub_](https:\u002F\u002Fbenhoyt.com\u002Fwritings\u002Fpygit\u002F)\n* [**Python**: _Write yourself a Git!_](https:\u002F\u002Fwyag.thb.lt\u002F)\n* [**Python**: _ugit: Learn Git Internals by Building Git Yourself_](https:\u002F\u002Fwww.leshenko.net\u002Fp\u002Fugit\u002F)\n* [**Ruby**: _Rebuilding Git in Ruby_](https:\u002F\u002Frobots.thoughtbot.com\u002Frebuilding-git-in-ruby)\n\n#### Build your own `Memory Allocator`\n\n* [**C**: _Malloc is not magic -- Implementing your own memory allocator_](https:\u002F\u002Fmedium.com\u002Fp\u002Fe0354e914402)\n\n#### Build your own `Network Stack`\n\n* [**C**: _Beej's Guide to Network Programming_](http:\u002F\u002Fbeej.us\u002Fguide\u002Fbgnet\u002F)\n* [**C**: _Let's code a TCP\u002FIP stack_](http:\u002F\u002Fwww.saminiir.com\u002Flets-code-tcp-ip-stack-1-ethernet-arp\u002F)\n* [**C \u002F Python**: _Build your own VPN\u002FVirtual Switch_](https:\u002F\u002Fgithub.com\u002Fpeiyuanix\u002Fbuild-your-own-zerotier)\n* [**Ruby**: _How to build a network stack in Ruby_](https:\u002F\u002Fmedium.com\u002Fgeckoboard-under-the-hood\u002Fhow-to-build-a-network-stack-in-ruby-f73aeb1b661b)\n\n#### Build your own `Neural Network`\n\n* [**C#**: _Neural Network OCR_](https:\u002F\u002Fwww.codeproject.com\u002FArticles\u002F11285\u002FNeural-Network-OCR)\n* [**F#**: _Building Neural Networks in F#: Part 1_](https:\u002F\u002Fmedium.com\u002Fdata-science\u002Fbuilding-neural-networks-in-f-part-1-a2832ae972e6)\n* [**F#**: _Building Neural Networks in F#: Part 2_](https:\u002F\u002Fmedium.com\u002Fdata-science\u002Fbuilding-neural-networks-in-f-part-2-training-evaluation-5e3a68889da6)\n* [**Go**: _Build a multilayer perceptron with Golang_](https:\u002F\u002Fmade2591.github.io\u002Fposts\u002Fneuralnetwork)\n* [**Go**: _How to build a simple artificial neural network with Go_](https:\u002F\u002Fsausheong.github.io\u002Fposts\u002Fhow-to-build-a-simple-artificial-neural-network-with-go\u002F)\n* [**Go**: _Building a Neural Net from Scratch in Go_](https:\u002F\u002Fdatadan.io\u002Fblog\u002Fneural-net-with-go)\n* [**JavaScript \u002F Java**: _Neural Networks - The Nature of Code_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLRqwX-V7Uu6aCibgK1PTWWu9by6XFdCfh) [video]\n* [**JavaScript**: _Neural networks from scratch for JavaScript linguists (Part1 — The Perceptron)_](https:\u002F\u002Fhackernoon.com\u002Fneural-networks-from-scratch-for-javascript-linguists-part1-the-perceptron-632a4d1fbad2)\n* [**Python**: _A Neural Network in 11 lines of Python_](https:\u002F\u002Fiamtrask.github.io\u002F2015\u002F07\u002F12\u002Fbasic-python-network\u002F)\n* [**Python**: _Implement a Neural Network from Scratch_](https:\u002F\u002Fvictorzhou.com\u002Fblog\u002Fintro-to-neural-networks\u002F)\n* [**Python**: _Optical Character Recognition (OCR)_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Foptical-character-recognition-ocr.html)\n* [**Python**: _Traffic signs classification with a convolutional network_](https:\u002F\u002Fnavoshta.com\u002Ftraffic-signs-classification\u002F)\n* [**Python**: _Generate Music using LSTM Neural Network in Keras_](https:\u002F\u002Ftowardsdatascience.com\u002Fhow-to-generate-music-using-a-lstm-neural-network-in-keras-68786834d4c5)\n* [**Python**: _An Introduction to Convolutional Neural Networks_](https:\u002F\u002Fvictorzhou.com\u002Fblog\u002Fintro-to-cnns-part-1\u002F)\n* [**Python**: _Neural Networks: Zero to Hero_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ)\n* [**Python**: _SlowTorch: Implementation of PyTorch from the ground up in 100% pure Python_](https:\u002F\u002Fgithub.com\u002Fxames3\u002Fslowtorch)\n\n#### Build your own `Operating System`\n\n* [**Assembly**: _Writing a Tiny x86 Bootloader_](http:\u002F\u002Fjoebergeron.io\u002Fposts\u002Fpost_two.html)\n* [**Assembly**: _Baking Pi – Operating Systems Development_](http:\u002F\u002Fwww.cl.cam.ac.uk\u002Fprojects\u002Fraspberrypi\u002Ftutorials\u002Fos\u002Findex.html)\n* [**C**: _Building a software and hardware stack for a simple computer from scratch_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=ZjwvMcP3Nf0&list=PLU94OURih-CiP4WxKSMt3UcwMSDM3aTtX) [video]\n* [**C**: _Operating Systems: From 0 to 1_](https:\u002F\u002Ftuhdo.github.io\u002Fos01\u002F)\n* [**C**: _The little book about OS development_](https:\u002F\u002Flittleosbook.github.io\u002F)\n* [**C**: _Roll your own toy UNIX-clone OS_](http:\u002F\u002Fjamesmolloy.co.uk\u002Ftutorial_html\u002F)\n* [**C**: _Kernel 101 – Let’s write a Kernel_](https:\u002F\u002Farjunsreedharan.org\u002Fpost\u002F82710718100\u002Fkernel-101-lets-write-a-kernel)\n* [**C**: _Kernel 201 – Let’s write a Kernel with keyboard and screen support_](https:\u002F\u002Farjunsreedharan.org\u002Fpost\u002F99370248137\u002Fkernel-201-lets-write-a-kernel-with-keyboard)\n* [**C**: _Build a minimal multi-tasking kernel for ARM from scratch_](https:\u002F\u002Fgithub.com\u002Fjserv\u002Fmini-arm-os)\n* [**C**: _How to create an OS from scratch_](https:\u002F\u002Fgithub.com\u002Fcfenollosa\u002Fos-tutorial)\n* [**C**: _Malloc tutorial_](https:\u002F\u002Fdanluu.com\u002Fmalloc-tutorial\u002F)\n* [**C**: _Hack the virtual memory_](https:\u002F\u002Fblog.holbertonschool.com\u002Fhack-the-virtual-memory-c-strings-proc\u002F)\n* [**C**: _Learning operating system development using Linux kernel and Raspberry Pi_](https:\u002F\u002Fgithub.com\u002Fs-matyukevich\u002Fraspberry-pi-os)\n* [**C**: _Operating systems development for Dummies_](https:\u002F\u002Fmedium.com\u002F@lduck11007\u002Foperating-systems-development-for-dummies-3d4d786e8ac)\n* [**C++**: _Write your own Operating System_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M) [video]\n* [**C++**: _Writing a Bootloader_](http:\u002F\u002F3zanders.co.uk\u002F2017\u002F10\u002F13\u002Fwriting-a-bootloader\u002F)\n* [**Rust**: _Writing an OS in Rust_](https:\u002F\u002Fos.phil-opp.com\u002F)\n* [**Rust**: _Add RISC-V Rust Operating System Tutorial_](https:\u002F\u002Fosblog.stephenmarz.com\u002F)\n* [**(any)**: _Linux from scratch_](https:\u002F\u002Flinuxfromscratch.org\u002Flfs)\n\n#### Build your own `Physics Engine`\n\n* [**C**: _Video Game Physics Tutorial_](https:\u002F\u002Fwww.toptal.com\u002Fgame\u002Fvideo-game-physics-part-i-an-introduction-to-rigid-body-dynamics)\n* [**C++**: _Game physics series by Allen Chou_](http:\u002F\u002Fallenchou.net\u002Fgame-physics-series\u002F)\n* [**C++**: _How to Create a Custom Physics Engine_](https:\u002F\u002Fgamedevelopment.tutsplus.com\u002Fseries\u002Fhow-to-create-a-custom-physics-engine--gamedev-12715)\n* [**C++**: _3D Physics Engine Tutorial_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLEETnX-uPtBXm1KEr_2zQ6K_0hoGH6JJ0) [video]\n* [**JavaScript**: _How Physics Engines Work_](http:\u002F\u002Fbuildnewgames.com\u002Fgamephysics\u002F)\n* [**JavaScript**: _Broad Phase Collision Detection Using Spatial Partitioning_](http:\u002F\u002Fbuildnewgames.com\u002Fbroad-phase-collision-detection\u002F)\n* [**JavaScript**: _Build a simple 2D physics engine for JavaScript games_](https:\u002F\u002Fdeveloper.ibm.com\u002Ftutorials\u002Fwa-build2dphysicsengine\u002F?mhsrc=ibmsearch_a&mhq=2dphysic)\n\n#### Build your own `Processor`\n\n* [**Verilog**: _From Blinker to RISC-V_](https:\u002F\u002Fgithub.com\u002FBrunoLevy\u002Flearn-fpga\u002Ftree\u002Fmaster\u002FFemtoRV\u002FTUTORIALS\u002FFROM_BLINKER_TO_RISCV)\n\n#### Build your own `Programming Language`\n\n* [**(any)**: _mal - Make a Lisp_](https:\u002F\u002Fgithub.com\u002Fkanaka\u002Fmal#mal---make-a-lisp)\n* [**Assembly**: _Jonesforth_](https:\u002F\u002Fgithub.com\u002Fnornagon\u002Fjonesforth\u002Fblob\u002Fmaster\u002Fjonesforth.S)\n* [**C**: _Baby's First Garbage Collector_](http:\u002F\u002Fjournal.stuffwithstuff.com\u002F2013\u002F12\u002F08\u002Fbabys-first-garbage-collector\u002F)\n* [**C**: _Build Your Own Lisp: Learn C and build your own programming language in 1000 lines of code_](http:\u002F\u002Fwww.buildyourownlisp.com\u002F)\n* [**C**: _Writing a Simple Garbage Collector in C_](http:\u002F\u002Fmaplant.com\u002Fgc.html)\n* [**C**: _C interpreter that interprets itself._](https:\u002F\u002Fgithub.com\u002Flotabout\u002Fwrite-a-C-interpreter)\n* [**C**: _A C & x86 version of the \"Let's Build a Compiler\" by Jack Crenshaw_](https:\u002F\u002Fgithub.com\u002Flotabout\u002FLet-s-build-a-compiler)\n* [**C**: _A journey explaining how to build a compiler from scratch_](https:\u002F\u002Fgithub.com\u002FDoctorWkt\u002Facwj)\n* [**C++**: _Writing Your Own Toy Compiler Using Flex_](https:\u002F\u002Fgnuu.org\u002F2009\u002F09\u002F18\u002Fwriting-your-own-toy-compiler\u002F)\n* [**C++**: _How to Create a Compiler_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=eF9qWbuQLuw) [video]\n* [**C++**: _Kaleidoscope: Implementing a Language with LLVM_](https:\u002F\u002Fllvm.org\u002Fdocs\u002Ftutorial\u002FMyFirstLanguageFrontend\u002Findex.html)\n* [**F#**: _Understanding Parser Combinators_](https:\u002F\u002Ffsharpforfunandprofit.com\u002Fposts\u002Funderstanding-parser-combinators\u002F)\n* [**Elixir**: _Demystifying compilers by writing your own_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=zMJYoYwOCd4) [video]\n* [**Go**: _The Super Tiny Compiler_](https:\u002F\u002Fgithub.com\u002Fhazbo\u002Fthe-super-tiny-compiler)\n* [**Go**: _Lexical Scanning in Go_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=HxaD_trXwRE) [video]\n* [**Haskell**: _Let's Build a Compiler_](https:\u002F\u002Fg-ford.github.io\u002Fcradle\u002F)\n* [**Haskell**: _Write You a Haskell_](http:\u002F\u002Fdev.stephendiehl.com\u002Ffun\u002F)\n* [**Haskell**: _Write Yourself a Scheme in 48 Hours_](https:\u002F\u002Fen.wikibooks.org\u002Fwiki\u002FWrite_Yourself_a_Scheme_in_48_Hours)\n* [**Haskell**: _Write You A Scheme_](https:\u002F\u002Fwww.wespiser.com\u002Fwritings\u002Fwyas\u002Fhome.html)\n* [**Java**: _Crafting interpreters: A handbook for making programming languages_](http:\u002F\u002Fwww.craftinginterpreters.com\u002F)\n* [**Java**: _Creating JVM Language_](http:\u002F\u002Fjakubdziworski.github.io\u002Fcategories.html#Enkel-ref)\n* [**JavaScript**: _The Super Tiny Compiler_](https:\u002F\u002Fgithub.com\u002Fjamiebuilds\u002Fthe-super-tiny-compiler)\n* [**JavaScript**: _The Super Tiny Interpreter_](https:\u002F\u002Fgithub.com\u002Fkeyanzhang\u002Fthe-super-tiny-interpreter)\n* [**JavaScript**: _Little Lisp interpreter_](https:\u002F\u002Fmaryrosecook.com\u002Fblog\u002Fpost\u002Flittle-lisp-interpreter)\n* [**JavaScript**: _How to implement a programming language in JavaScript_](http:\u002F\u002Flisperator.net\u002Fpltut\u002F)\n* [**JavaScript**: _Let’s go write a Lisp_](https:\u002F\u002Fidiocy.org\u002Flets-go-write-a-lisp\u002Fpart-1.html)\n* [**OCaml**: _Writing a C Compiler_](https:\u002F\u002Fnorasandler.com\u002F2017\u002F11\u002F29\u002FWrite-a-Compiler.html)\n* [**OCaml**: _Writing a Lisp, the series_](https:\u002F\u002Fbernsteinbear.com\u002Fblog\u002Flisp\u002F)\n* [**Pascal**: _Let's Build a Compiler_](https:\u002F\u002Fcompilers.iecc.com\u002Fcrenshaw\u002F)\n* [**Python**: _A Python Interpreter Written in Python_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fa-python-interpreter-written-in-python.html)\n* [**Python**: _lisp.py: Make your own Lisp interpreter_](http:\u002F\u002Fkhamidou.com\u002Fcompilers\u002Flisp.py\u002F)\n* [**Python**: _How to Write a Lisp Interpreter in Python_](http:\u002F\u002Fnorvig.com\u002Flispy.html)\n* [**Python**: _Let’s Build A Simple Interpreter_](https:\u002F\u002Fruslanspivak.com\u002Flsbasi-part1\u002F)\n* [**Python**: _Make Your Own Simple Interpreted Programming Language_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=dj9CBS3ikGA&list=PLZQftyCk7_SdoVexSmwy_tBgs7P0b97yD&index=1) [video]\n* [**Python**: _From Source Code To Machine Code: Build Your Own Compiler From Scratch_](https:\u002F\u002Fbuild-your-own.org\u002Fcompiler\u002F)\n* [**Racket**: _Beautiful Racket: How to make your own programming languages with Racket_](https:\u002F\u002Fbeautifulracket.com\u002F)\n* [**Ruby**: _A Compiler From Scratch_](https:\u002F\u002Fwww.destroyallsoftware.com\u002Fscreencasts\u002Fcatalog\u002Fa-compiler-from-scratch)\n* [**Ruby**: _Markdown compiler from scratch in Ruby_](https:\u002F\u002Fblog.beezwax.net\u002F2017\u002F07\u002F07\u002Fwriting-a-markdown-compiler\u002F)\n* [**Rust**: _Learning Parser Combinators With Rust_](https:\u002F\u002Fbodil.lol\u002Fparser-combinators\u002F)\n* [**Swift**: _Building a LISP from scratch with Swift_](https:\u002F\u002Fwww.uraimo.com\u002F2017\u002F02\u002F05\u002Fbuilding-a-lisp-from-scratch-with-swift\u002F)\n* [**TypeScript**: _Build your own WebAssembly Compiler_](https:\u002F\u002Fblog.scottlogic.com\u002F2019\u002F05\u002F17\u002Fwebassembly-compiler.html)\n\n#### Build your own `Regex Engine`\n\n* [**C**: _A Regular Expression Matcher_](https:\u002F\u002Fwww.cs.princeton.edu\u002Fcourses\u002Farchive\u002Fspr09\u002Fcos333\u002Fbeautiful.html)\n* [**C**: _Regular Expression Matching Can Be Simple And Fast_](https:\u002F\u002Fswtch.com\u002F~rsc\u002Fregexp\u002Fregexp1.html)\n* [**Go**: _How to build a regex engine from scratch_](https:\u002F\u002Frhaeguard.github.io\u002Fposts\u002Fregex)\n* [**JavaScript**: _Build a Regex Engine in Less than 40 Lines of Code_](https:\u002F\u002Fnickdrane.com\u002Fbuild-your-own-regex\u002F)\n* [**JavaScript**: _How to implement regular expressions in functional javascript using derivatives_](http:\u002F\u002Fdpk.io\u002Fdregs\u002Ftoydregs)\n* [**JavaScript**: _Implementing a Regular Expression Engine_](https:\u002F\u002Fdeniskyashif.com\u002F2019\u002F02\u002F17\u002Fimplementing-a-regular-expression-engine\u002F) \n* [**Perl**: _How Regexes Work_](https:\u002F\u002Fperl.plover.com\u002FRegex\u002Farticle.html)\n* [**Python**: _Build Your Own Regular Expression Engines: Backtracking, NFA, DFA_](https:\u002F\u002Fbuild-your-own.org\u002Fb2a\u002Fr0_intro)\n* [**Scala**: _No Magic: Regular Expressions_](https:\u002F\u002Frcoh.svbtle.com\u002Fno-magic-regular-expressions)\n\n#### Build your own `Search Engine`\n\n* [**CSS**: _A search engine in CSS_](https:\u002F\u002Fstories.algolia.com\u002Fa-search-engine-in-css-b5ec4e902e97)\n* [**Python**: _Building a search engine using Redis and redis-py_](http:\u002F\u002Fwww.dr-josiah.com\u002F2010\u002F07\u002Fbuilding-search-engine-using-redis-and.html)\n* [**Python**: _Building a Vector Space Indexing Engine in Python_](https:\u002F\u002Fboyter.org\u002F2010\u002F08\u002Fbuild-vector-space-search-engine-python\u002F)\n* [**Python**: _Building A Python-Based Search Engine_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=cY7pE7vX6MU) [video]\n* [**Python**: _Making text search learn from feedback_](https:\u002F\u002Fmedium.com\u002Ffilament-ai\u002Fmaking-text-search-learn-from-feedback-4fe210fd87b0)\n* [**Python**: _Finding Important Words in Text Using TF-IDF_](https:\u002F\u002Fstevenloria.com\u002Ftf-idf\u002F)\n\n#### Build your own `Shell`\n\n* [**C**: _Tutorial - Write a Shell in C_](https:\u002F\u002Fbrennan.io\u002F2015\u002F01\u002F16\u002Fwrite-a-shell-in-c\u002F)\n* [**C**: _Let's build a shell!_](https:\u002F\u002Fgithub.com\u002Fkamalmarhubi\u002Fshell-workshop)\n* [**C**: _Writing a UNIX Shell_](https:\u002F\u002Findradhanush.github.io\u002Fblog\u002Fwriting-a-unix-shell-part-1\u002F)\n* [**C**: _Build Your Own Shell_](https:\u002F\u002Fgithub.com\u002Ftokenrove\u002Fbuild-your-own-shell)\n* [**C**: Write a shell in C](https:\u002F\u002Fdanishpraka.sh\u002Fposts\u002Fwrite-a-shell\u002F)\n* [**Go**: _Writing a simple shell in Go_](https:\u002F\u002Fsj14.gitlab.io\u002Fpost\u002F2018-07-01-go-unix-shell\u002F)\n* [**Rust**: _Build Your Own Shell using Rust_](https:\u002F\u002Fwww.joshmcguigan.com\u002Fblog\u002Fbuild-your-own-shell-rust\u002F)\n\n#### Build your own `Template Engine`\n\n* [**JavaScript**: _JavaScript template engine in just 20 lines_](http:\u002F\u002Fkrasimirtsonev.com\u002Fblog\u002Farticle\u002FJavascript-template-engine-in-just-20-line)\n* [**JavaScript**: _Understanding JavaScript Micro-Templating_](https:\u002F\u002Fmedium.com\u002Fwdstack\u002Funderstanding-javascript-micro-templating-f37a37b3b40e)\n* [**Python**: _Approach: Building a toy template engine in Python_](http:\u002F\u002Falexmic.net\u002Fbuilding-a-template-engine\u002F)\n* [**Python**: _A Template Engine_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fa-template-engine.html)\n* [**Ruby**: _How to write a template engine in less than 30 lines of code_](http:\u002F\u002Fbits.citrusbyte.com\u002Fhow-to-write-a-template-library\u002F)\n\n#### Build your own `Text Editor`\n\n* [**C**: _Build Your Own Text Editor_](https:\u002F\u002Fviewsourcecode.org\u002Fsnaptoken\u002Fkilo\u002F)\n* [**C++**: _Designing a Simple Text Editor_](http:\u002F\u002Fwww.fltk.org\u002Fdoc-1.1\u002Feditor.html)\n* [**Python**: _Python Tutorial: Make Your Own Text Editor_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=xqDonHEYPgA) [video]\n* [**Python**: _Create a Simple Python Text Editor!_](http:\u002F\u002Fwww.instructables.com\u002Fid\u002FCreate-a-Simple-Python-Text-Editor\u002F)\n* [**Ruby**: _Build a Collaborative Text Editor Using Rails_](https:\u002F\u002Fblog.aha.io\u002Ftext-editor\u002F)\n* [**Rust**: _Hecto: Build your own text editor in Rust_ ](https:\u002F\u002Fwww.flenker.blog\u002Fhecto\u002F)\n\n#### Build your own `Visual Recognition System`\n\n* [**Python**: _Developing a License Plate Recognition System with Machine Learning in Python_](https:\u002F\u002Fmedium.com\u002Fdevcenter\u002Fdeveloping-a-license-plate-recognition-system-with-machine-learning-in-python-787833569ccd)\n* [**Python**: _Building a Facial Recognition Pipeline with Deep Learning in Tensorflow_](https:\u002F\u002Fhackernoon.com\u002Fbuilding-a-facial-recognition-pipeline-with-deep-learning-in-tensorflow-66e7645015b8)\n\n#### Build your own `Voxel Engine`\n\n* [**C++**: _Let's Make a Voxel Engine_](https:\u002F\u002Fsites.google.com\u002Fsite\u002Fletsmakeavoxelengine\u002Fhome)\n\n#### Build your own `Web Browser`\n\n* [**Rust**: _Let's build a browser engine_](https:\u002F\u002Flimpet.net\u002Fmbrubeck\u002F2014\u002F08\u002F08\u002Ftoy-layout-engine-1.html)\n* [**Python**: _Browser Engineering_](https:\u002F\u002Fbrowser.engineering)\n\n#### Build your own `Web Server`\n\n* [**C#**: _Writing a Web Server from Scratch_](https:\u002F\u002Fwww.codeproject.com\u002FArticles\u002F859108\u002FWriting-a-Web-Server-from-Scratch)\n* [**Node.js**: _Build Your Own Web Server From Scratch In JavaScript_](https:\u002F\u002Fbuild-your-own.org\u002Fwebserver\u002F)\n* [**Node.js**: _Let's code a web server from scratch with NodeJS Streams_](https:\u002F\u002Fwww.codementor.io\u002F@ziad-saab\u002Flet-s-code-a-web-server-from-scratch-with-nodejs-streams-h4uc9utji)\n* [**Node.js**: _lets-build-express_](https:\u002F\u002Fgithub.com\u002Fantoaravinth\u002Flets-build-express)\n* [**PHP**: _Writing a webserver in pure PHP_](http:\u002F\u002Fstation.clancats.com\u002Fwriting-a-webserver-in-pure-php\u002F)\n* [**Python**: _A Simple Web Server_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fa-simple-web-server.html)\n* [**Python**: _Let’s Build A Web Server._](https:\u002F\u002Fruslanspivak.com\u002Flsbaws-part1\u002F)\n* [**Python**: _Web application from scratch_](https:\u002F\u002Fdefn.io\u002F2018\u002F02\u002F25\u002Fweb-app-from-scratch-01\u002F)\n* [**Python**: _Building a basic HTTP Server from scratch in Python_](http:\u002F\u002Fjoaoventura.net\u002Fblog\u002F2017\u002Fpython-webserver\u002F)\n* [**Python**: _Implementing a RESTful Web API with Python & Flask_](http:\u002F\u002Fblog.luisrei.com\u002Farticles\u002Fflaskrest.html)\n* [**Ruby**: _Building a simple websockets server from scratch in Ruby_](http:\u002F\u002Fblog.honeybadger.io\u002Fbuilding-a-simple-websockets-server-from-scratch-in-ruby\u002F)\n\n#### Uncategorized\n\n* [**(any)**: _From NAND to Tetris: Building a Modern Computer From First Principles_](http:\u002F\u002Fnand2tetris.org\u002F)\n* [**(any)**:  build-your-own-x-vibe-coding: BYOX-style tutorials adapted for vibe coding](https:\u002F\u002Fgithub.com\u002FinFaaa\u002Fbuild-your-own-x-vibe-coding)\n* [**Alloy**: _The Same-Origin Policy_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fthe-same-origin-policy.html)\n* [**C**: _How to Write a Video Player in Less Than 1000 Lines_](http:\u002F\u002Fdranger.com\u002Fffmpeg\u002Fffmpeg.html)\n* [**C**: _Learn how to write a hash table in C_](https:\u002F\u002Fgithub.com\u002Fjamesroutley\u002Fwrite-a-hash-table)\n* [**C**: _The very basics of a terminal emulator_](https:\u002F\u002Fwww.uninformativ.de\u002Fblog\u002Fpostings\u002F2018-02-24\u002F0\u002FPOSTING-en.html)\n* [**C**: _Write a System Call_](https:\u002F\u002Fbrennan.io\u002F2016\u002F11\u002F14\u002Fkernel-dev-ep3\u002F)\n* [**C**: _Sol - An MQTT broker from scratch_](https:\u002F\u002Fcodepr.github.io\u002Fposts\u002Fsol-mqtt-broker)\n* [**C++**: _Build your own VR headset for $200_](https:\u002F\u002Fgithub.com\u002Frelativty\u002FRelativ)\n* [**C++**: _How X Window Managers work and how to write one_](https:\u002F\u002Fseasonofcode.com\u002Fposts\u002Fhow-x-window-managers-work-and-how-to-write-one-part-i.html)\n* [**C++**: _Writing a Linux Debugger_](https:\u002F\u002Fblog.tartanllama.xyz\u002Fwriting-a-linux-debugger-setup\u002F)\n* [**C++**: _How a 64k intro is made_](http:\u002F\u002Fwww.lofibucket.com\u002Farticles\u002F64k_intro.html)\n* [**C++**: _Make your own Game Engine_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLlrATfBNZ98dC-V-N3m0Go4deliWHPFwT)\n* [**C#**: _C# Networking: Create a TCP chater server, TCP games, UDP Pong and more_](https:\u002F\u002F16bpp.net\u002Ftutorials\u002Fcsharp-networking)\n* [**C#**: _Loading and rendering 3D skeletal animations from scratch in C# and GLSL_](https:\u002F\u002Fwww.seanjoflynn.com\u002Fresearch\u002Fskeletal-animation.html)\n* [**Clojure**: _Building a spell-checker_](https:\u002F\u002Fbernhardwenzel.com\u002Farticles\u002Fclojure-spellchecker\u002F)\n* [**Go**: _Build A Simple Terminal Emulator In 100 Lines of Golang_](https:\u002F\u002Fishuah.com\u002F2021\u002F03\u002F10\u002Fbuild-a-terminal-emulator-in-100-lines-of-go\u002F)\n* [**Go**: _Let's Create a Simple Load Balancer_](https:\u002F\u002Fkasvith.me\u002Fposts\u002Flets-create-a-simple-lb-go\u002F)\n* [**Go**: _Video Encoding from Scratch_](https:\u002F\u002Fgithub.com\u002Fkevmo314\u002Fcodec-from-scratch)\n* [**Java**: _How to Build an Android Reddit App_](https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLgCYzUzKIBE9HUJU-upNvl3TRVAo9W47y) [video]\n* [**JavaScript**: _Build Your Own Module Bundler - Minipack_](https:\u002F\u002Fgithub.com\u002Fronami\u002Fminipack)\n* [**JavaScript**: _Learn JavaScript Promises by Building a Promise from Scratch_](https:\u002F\u002Flevelup.gitconnected.com\u002Funderstand-javascript-promises-by-building-a-promise-from-scratch-84c0fd855720)\n* [**JavaScript**: _Implementing promises from scratch (TDD way)_](https:\u002F\u002Fwww.mauriciopoppe.com\u002Fnotes\u002Fcomputer-science\u002Fcomputation\u002Fpromises\u002F)\n* [**JavaScript**: _Implement your own — call(), apply() and bind() method in JavaScript_](https:\u002F\u002Fblog.usejournal.com\u002Fimplement-your-own-call-apply-and-bind-method-in-javascript-42cc85dba1b)\n* [**JavaScript**: _JavaScript Algorithms and Data Structures_](https:\u002F\u002Fgithub.com\u002Ftrekhleb\u002Fjavascript-algorithms)\n* [**JavaScript**: _Build a ride hailing app with React Native_](https:\u002F\u002Fpusher.com\u002Ftutorials\u002Fride-hailing-react-native)\n* [**JavaScript**: _Build Your Own AdBlocker in (Literally) 10 Minutes_](https:\u002F\u002Flevelup.gitconnected.com\u002Fbuilding-your-own-adblocker-in-literally-10-minutes-1eec093b04cd)\n* [**Kotlin**: _Build Your Own Cache_](https:\u002F\u002Fgithub.com\u002Fkezhenxu94\u002Fcache-lite)\n* [**Lua**: _Building a CDN from Scratch to Learn about CDN_](https:\u002F\u002Fgithub.com\u002Fleandromoreira\u002Fcdn-up-and-running)\n* [**Nim**: _Writing a Redis Protocol Parser_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday12_resp.html)\n* [**Nim**: _Writing a Build system_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday11_buildsystem.html)\n* [**Nim**: _Writing a MiniTest Framework_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday08_minitest.html)\n* [**Nim**: _Writing a DMIDecode Parser_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday01_dmidecode.html)\n* [**Nim**: _Writing a INI Parser_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday05_iniparser.html)\n* [**Nim**: _Writing a Link Checker_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday04_asynclinkschecker.html)\n* [**Nim**: _Writing a URL Shortening Service_](https:\u002F\u002Fxmonader.github.io\u002Fnimdays\u002Fday07_shorturl.html)\n* [**Node.js**: _Build a static site generator in 40 lines with Node.js_](https:\u002F\u002Fwww.webdevdrops.com\u002Fen\u002Fbuild-static-site-generator-nodejs-8969ebe34b22\u002F)\n* [**Node.js**: _Building A Simple Single Sign On(SSO) Server And Solution From Scratch In Node.js._](https:\u002F\u002Fcodeburst.io\u002Fbuilding-a-simple-single-sign-on-sso-server-and-solution-from-scratch-in-node-js-ea6ee5fdf340)\n* [**Node.js**: _How to create a real-world Node CLI app with Node_](https:\u002F\u002Fmedium.freecodecamp.org\u002Fhow-to-create-a-real-world-node-cli-app-with-node-391b727bbed3)\n* [**Node.js**: _Build a DNS Server in Node.js_](https:\u002F\u002Fengineerhead.github.io\u002Fdns-server\u002F)\n* [**Node.js**: _Build a Synchronization Engine with Node.js and Y.js_](https:\u002F\u002Fgreenvitriol.com\u002Fposts\u002Fsync-engine-for-everyone)\n* [**PHP**: _Write your own MVC from scratch in PHP_ ](https:\u002F\u002Fchaitya62.github.io\u002F2018\u002F04\u002F29\u002FWriting-your-own-MVC-from-Scratch-in-PHP.html)\n* [**PHP**: _Make your own blog_](https:\u002F\u002Filovephp.jondh.me.uk\u002Fen\u002Ftutorial\u002Fmake-your-own-blog)\n* [**PHP**: _Modern PHP Without a Framework_](https:\u002F\u002Fkevinsmith.io\u002Fmodern-php-without-a-framework)\n* [**PHP**: _Code a Web Search Engine in PHP_](https:\u002F\u002Fboyter.org\u002F2013\u002F01\u002Fcode-for-a-search-engine-in-php-part-1\u002F)\n* [**Python**: _Build a Deep Learning Library_](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=o64FV-ez6Gw) [video]\n* [**Python**: _How to Build a Kick-Ass Mobile Document Scanner in Just 5 Minutes_](https:\u002F\u002Fwww.pyimagesearch.com\u002F2014\u002F09\u002F01\u002Fbuild-kick-ass-mobile-document-scanner-just-5-minutes\u002F)\n* [**Python**: _Continuous Integration System_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fa-continuous-integration-system.html)\n* [**Python**: _Recommender Systems in Python: Beginner Tutorial_](https:\u002F\u002Fwww.datacamp.com\u002Fcommunity\u002Ftutorials\u002Frecommender-systems-python)\n* [**Python**: _Write SMS-spam detector with Scikit-learn_](https:\u002F\u002Fmedium.com\u002F@kopilov.vlad\u002Fdetect-sms-spam-in-kaggle-with-scikit-learn-5f6afa7a3ca2)\n* [**Python**: _A Simple Content-Based Recommendation Engine in Python_](http:\u002F\u002Fblog.untrod.com\u002F2016\u002F06\u002Fsimple-similar-products-recommendation-engine-in-python.html)\n* [**Python**: _Stock Market Predictions with LSTM in Python_](https:\u002F\u002Fwww.datacamp.com\u002Fcommunity\u002Ftutorials\u002Flstm-python-stock-market)\n* [**Python**: _Building a simple Generative Adversarial Network (GAN) using Tensorflow_](https:\u002F\u002Fblog.paperspace.com\u002Fimplementing-gans-in-tensorflow\u002F)\n* [**Python**: _Learn ML Algorithms by coding: Decision Trees_](https:\u002F\u002Flethalbrains.com\u002Flearn-ml-algorithms-by-coding-decision-trees-439ac503c9a4)\n* [**Python**: _JSON Decoding Algorithm_](https:\u002F\u002Fgithub.com\u002Fcheery\u002Fjson-algorithm)\n* [**Python**: _Build your own Git plugin with python_](https:\u002F\u002Fjoshburns-xyz.vercel.app\u002Fposts\u002Fbuild-your-own-git-plugin)\n* [**Ruby**: _A Pedometer in the Real World_](http:\u002F\u002Faosabook.org\u002Fen\u002F500L\u002Fa-pedometer-in-the-real-world.html)\n* [**Ruby**: _Creating a Linux Desktop application with Ruby_](https:\u002F\u002Firidakos.com\u002Ftutorials\u002F2018\u002F01\u002F25\u002Fcreating-a-gtk-todo-application-with-ruby)\n* [**Rust**: _Building a DNS server in Rust_](https:\u002F\u002Fgithub.com\u002FEmilHernvall\u002Fdnsguide\u002Fblob\u002Fmaster\u002FREADME.md)\n* [**Rust**: _Writing Scalable Chat Service from Scratch_](https:\u002F\u002Fnbaksalyar.github.io\u002F2015\u002F07\u002F10\u002Fwriting-chat-in-rust.html)\n* [**Rust**: _WebGL + Rust: Basic Water Tutorial_](https:\u002F\u002Fwww.chinedufn.com\u002F3d-webgl-basic-water-tutorial\u002F)\n* [**TypeScript**: _Tiny Package Manager: Learns how npm or Yarn works_](https:\u002F\u002Fgithub.com\u002Fg-plane\u002Ftiny-package-manager)\n\n## Contribute \n* Submissions welcome, just send a PR, or [create an issue](https:\u002F\u002Fgithub.com\u002Fcodecrafters-io\u002Fbuild-your-own-x\u002Fissues\u002Fnew)\n* Help us review [pending submissions](https:\u002F\u002Fgithub.com\u002Fcodecrafters-io\u002Fbuild-your-own-x\u002Fissues) by leaving comments and \"reactions\"\n\n## Origins & License\n\n[![CC0](https:\u002F\u002Fmirrors.creativecommons.org\u002Fpresskit\u002Fbuttons\u002F88x31\u002Fsvg\u002Fcc-zero.svg)](https:\u002F\u002Fcreativecommons.org\u002Fpublicdomain\u002Fzero\u002F1.0\u002F)\n\nThis repository is the work of [many contributors](https:\u002F\u002Fgithub.com\u002Fcodecrafters-io\u002Fbuild-your-own-x\u002Fgraphs\u002Fcontributors). It was started by [Daniel Stefanovic](https:\u002F\u002Fgithub.com\u002Fdanistefanovic), and is now maintained by [CodeCrafters, Inc.](https:\u002F\u002Fcodecrafters.io) To the extent possible under law, [CodeCrafters, Inc.](https:\u002F\u002Fcodecrafters.io) has waived all copyright and related or neighboring rights to this work.\n","该项目旨在通过从零开始重现你最喜欢的技术，来掌握编程技巧。它提供了详细的、分步骤的指南，涵盖了从构建3D渲染器到创建自己的区块链等多种技术。每个教程都设计得易于理解且实用，帮助学习者深入了解底层原理和技术实现细节。适合于想要深入理解特定技术工作原理的开发者、学生以及任何对计算机科学基础感兴趣的个人使用。",2,"2026-06-17 02:31:47","top_all"]