Build Your Own X
Master programming by recreating your favorite technologies from scratch.
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
Tutorials
C++: How OpenGL works: software rendering in 500 lines of code
, course of computer graphics teaching how Opengl and rendering works, teaching how to build a simpler version of OpenGL.
Python: A Large Language Model (LLM)
Implementing a ChatGPT-like LLM from scratch, step by step
C#: How To Unity ARCore
[video]
C: Let's Build a Simple Database
, thanks to cstack
C++: Build Your Own Redis from Scratch
by James Smith
Crystal: Why you should build your own NoSQL Database
Brief overview of NoSQL databases and the spectrum of schema, along with a very basic implementation of a NoSQL database using the Crystal programming language.
Shell: Docker implemented in around 100 lines of bash
Docker implemented in around 100 lines of bash.
C: Write your Own Virtual Machine
by Justin Meiners and Ryan Pendleton
C++: How to write an emulator (CHIP-8 interpreter)
A guide to developing a CHIP-8 interpreter in C/C++.
C++: Emulation tutorial (GameBoy emulator)
Another series of posts documenting the building of an emulator.
C: Handmade Hero
Videos on making a game from start to finish, source code for $15.
C: Chess Engine In C
[video]
Go: Games With Go
[video]
Python: Neural Networks: Zero to Hero
Build neural networks and language models from first principles.
C: Operating Systems: From 0 to 1
Bootstrap yourself to write an OS from scratch by Do Hoang Tu
C: The little book about OS development
by Erik Helin and Adam Renberg
C: Roll your own toy UNIX-clone OS
by James Molloy
C: How to create an OS from scratch
How to create an OS from scratch
C: Learning operating system development using Linux kernel and Raspberry Pi
Learning operating system development using Linux kernel and Raspberry Pi
C: Operating systems development for Dummies
by Leo Whitehead
C++: Writing a Bootloader
by Alex Parker
Rust: Writing an OS in Rust
A blog series creating a small operating system in Rust
Rust: Add RISC-V Rust Operating System Tutorial
by Stephen Marz
C: Video Game Physics Tutorial
Part I: Intro to Rigid Body Dynamics.
Verilog: From Blinker to RISC-V
Learning FPGA, yosys, nextpnr, and RISC-V
C: Writing a Simple Garbage Collector in C
by Matthew Plant
C: C interpreter that interprets itself.
Write a simple interpreter of C. Inspired by c4 and largely based on it.
C: A journey explaining how to build a compiler from scratch
A Compiler Writing Journey
Go: Lexical Scanning in Go
[video]
JavaScript: The Super Tiny Compiler
snowman: Possibly the smallest compiler ever
Python: How to Write a Lisp Interpreter in Python
and (An ((Even Better) Lisp) Interpreter (in Python)) - a couple of famous articles by Peter Norvig.
Python: Let’s Build A Simple Interpreter
Series of articles explaining the basics of compilers and interpreters and how to build one.
Racket: Beautiful Racket: How to make your own programming languages with Racket
by Matthew Butterick
C: Regular Expression Matching Can Be Simple And Fast
On non-backtracking engines. A follow up includes comparisons of RE2 and PCRE performance.
C: Tutorial - Write a Shell in C
by Stephen Brennan
Rust: Let's build a browser engine
by Matt Brubeck
Python: Browser Engineering
by Pavel Panchekha and Chris Harrelson
C++: Writing a Linux Debugger
by Sy Brand
C++: Make your own Game Engine
For the engine programmers and the insane: save yourself some trouble and watch this instead of making yet another game engine ^^
Go: Video Encoding from Scratch
~120-line Go weekend project building a simple video encoder from scratch (YUV420P → RLE → DEFLATE).
JavaScript: Build Your Own Module Bundler - Minipack
📦 A simplified example of a modern module bundler written in JavaScript
JavaScript: JavaScript Algorithms and Data Structures
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
Related lists in Learn
See categoryAwesome C++
fffaraz/awesome-cpp
A curated list of awesome C++ (or C) frameworks, libraries, resources, and shiny things. Inspired by awesome-... stuff.
Awesome Algorithms
tayllan/awesome-algorithms
A curated list of awesome places to learn and/or practice algorithms.
Awesome Low Level Design
ashishps1/awesome-low-level-design
Learn Low Level Design (LLD) and prepare for interviews using free resources.
Awesome English
yvoronoy/awesome-english
A collection of awesome study resources for learners of English.
Awesome Product Management
dend/awesome-product-management
🚀 A curated list of awesome resources for product/program managers to learn and grow.
awesome-speaking
matteofigus/awesome-speaking
Resources about public speaking