Build-Your-Own-X: A Curated Collection of Resources for Mastering Programming Skills

Build-Your-Own-X: A Curated Collection of Resources for Mastering Programming Skills 112

Build-Your-Own-X curates detailed, step-by-step guides for rebuilding popular technologies from scratch. Emphasizing learning by doing, it helps you deeply understand technologies through hands-on creation—an excellent way to learn programming.

#Ai工具箱 #Ai开源项目

Build-Your-Own-X: A Curated Collection of Resources for Mastering Programming SkillsIntroduction

What is build-your-own-x?

The repository called build-your-own-x collects many great detailed, step-by-step guides and tutorials collections on recreating various technologies from scratch, helping people learn by building all kinds of popular technologies from zero. The idea comes from a quote by Richard Feynman: "What I cannot create, I do not understand," meaning you have to build it yourself to truly understand how a technology works. Emphasizing deep understanding of technology through creation is a great way to learn programming.

build-your-own-x

Main Content of Own-X

3D Related

  • 3D Renderer: There are introductions tutorials on ray tracing to draw 3D images in C++, as well as tutorials on writing 3D software engines in C#, TypeScript, or JS.

  • Augmented Reality (AR): There are C# AR introduction tutorial with Vuforia and Unity 3D, and C# tutorial on ARKit (with video).

Network and Distributed Related

  • BitTorrent Client: There are tutorial on how to make your own BitTorrent client.

  • Blockchain / Cryptocurrency: For example, a tutorial on building a Proof-of-Stake-based cryptocurrency called NaivecoinStake with TypeScript.

  • Network Stack: Content on building your own network stack.

Robot Related

  • Chatbot: There is a tutorial on making a simple Facebook Messenger AI bot with Node.js (using API.ai), as well as a tutorial on building a Slack bot in 20 minutes using Python with the Slack Events API and Django.

  • Command Line Tool Related: Tutorial on building your own command line tool.

Database Related

  • Database Building: For example, a tutorial on building a database from scratch in Go, covering persistence, indexing, concurrency, and these aspects.

  • Container Related: Tutorial on building your own Docker.

  • Emulator / Virtual Machine Related: Tutorial on building your own emulator or virtual machine.

Front-end Framework / Library Related

  • React Related: A tutorial on learning how the React Reconciler works by building a lightweight React DOM, as well as a tutorial on building a front-end framework from scratch with components (templates, state, VDOM).

Game Related

  • Various Game Development: There is a tutorial on building cross-platform Tetris in C++ (mainly covering beginner game logic), a tutorial on building Snake in JS, HTML, and CSS, as well as a tutorial on building games in Python with Pygame.

  • Version Control Related: Tutorial on building a simple Git client in Python, capable of creating repositories, committing, and pushing code to GitHub.

  • Network Protocol Stack Related: Content on building your own network stack.

Neural Network Related

  • Neural Network Building: For example, building a neural network in JS for JS programmers (starting with perceptrons, part one), a tutorial on building a regular expression engine in Python (with different approaches including backtracking, NFA, DFA), and a tutorial on building a neural network from scratch in JS.

Operating System Related

  • Operating System Development: A video tutorial on building the hardware/software stack in C for a simple computer, including writing a Kernel 201 with keyboard and screen support, as well as a tutorial on learning to build an operating system with the Linux kernel and Raspberry Pi.

  • Physics Engine Related: Tutorial on building your own physics engine.

Programming Language Related

  • Various Language Building: Tutorial on building your own Lisp in C (under 1000 lines), "Let's Build a Compiler" with C and x86, a handbook for building interpreters in Java, building a compiler from source to machine code in Python, building your own programming language in Racket, etc.

  • Regular Expression Engine Related: Tutorial on building regex in JS using a functional approach (with derivatives), and a tutorial on building your own regex engine in Python (with backtracking, NFA, DFA).

  • Search Engine Related: Tutorial on building your own search engine.

  • Shell Related: Tutorial on building your own Shell.

  • Template Engine Related: Tutorial on building your own template engine.

  • Text Editor Related: Tutorial on building your own text editor.

Visual Recognition System Related

  • License Plate Recognition: Tutorial on license plate recognition with Python and machine learning.

  • Face Recognition: Tutorial on the face recognition pipeline with Python and Tensorflow.

  • Voxel Engine Related: Tutorial on building your own voxel engine.

  • Web Browser Related: Tutorial on building your own browser.

  • Web Server Related: Tutorial on building your own server.

Other

  • From NAND to Tetris: Content on building a modern computer from first principles.

  • vibe coding Style Tutorial: BYOX tutorial done in the vibe coding style.

  • C# Networking Related: Includes C# networking tutorials such as building a TCP chat server, TCP game, UDP ping-pong, etc.

  • C# 3D Animation Related: Tutorial on loading and rendering 3D skeletal animations from scratch in C# and GLSL.

  • JavaScript Related: For example, implementing the call(), apply(), and bind() methods in JS.

  • Node.js Related: Includes tutorial on building a simple Single Sign-On (SSO) server and solution from scratch in Node.js.

  • Python Related: For example, building a simple mobile document scanner in Python in 5 minutes, and a tutorial on building a simple Generative Adversarial Network (GAN) with Tensorflow.

The Own-X repository is suitable for people who want to learn the underlying principles of technology by doing. Whether you are just starting out or have been programming for a long time, you can find content that fits you.

Tools related to Build-Your-Own-X: A Curated Collection of Resources for Mastering Programming Skills