Rebuild familiar tools from scratch to master their internal structures
Start a journey to internalize concepts by reproducing the internal structures of familiar tools like web browsers and databases directly in code. This repository is a list that gathers tutorials for implementing the core of various technologies from the ground up. It is suitable for developers who want to understand how technology works, going beyond simply learning how to use it.
If you can't build it, you don't understand it
This repository is structured under Richard Feynman's philosophy that 'if you can't build it, you don't understand it.' It guides you through the process of simplifying complex technical systems to extract only the core logic and writing it directly in code. Instead of calling existing libraries or frameworks, you implement what happens behind the scenes yourself to gain deep insight into the technology. Each item provides tutorial links written in a specific language, allowing readers to select materials matching their primary language to proceed with learning.
From operating systems to AI models
The list covers almost every area of software development. It broadly handles system-level technologies such as web servers, databases, operating systems, and programming language interpreters, as well as application fields like 3D renderers, game engines, artificial intelligence models, and blockchains. Each category is further divided into sub-topics and implementation languages, making it easy to quickly find areas of interest. For example, in the 'Programming Languages' section, you can learn how to build compilers or interpreters in various languages such as Lisp, Haskell, and Python.
Language-specific tutorial structure
Each technology item includes tutorial links written in a specific programming language. Implementation examples are provided for major languages such as C, C++, Python, JavaScript, Go, Rust, and Java, allowing readers to start learning in a language they are familiar with. Some items exist in multiple language versions, enabling you to compare implementations of the same concept in different languages. This structure enables learning focused on algorithms and system design principles rather than language syntax.
Things to check before learning
This repository is a collection of tutorial links for learning, not finished software. You must check the difficulty and current status of each tutorial via the individual links, as not all materials guarantee the same quality or update frequency. Since some may not address the latest standards or security requirements for specific technologies, additional verification is required before applying them to production environments. Additionally, while this repository waives copyright for free use, the licenses of individual tutorial links follow each author's policy. The barrier to entry may be high for beginners without basic programming knowledge, so it is recommended to approach it after mastering basic syntax.