<div align="center">

<img src="assets/banner.svg" width="100%" alt="CodeCrafterz"/>

# 🗺️ Learning Paths

**Curated journeys through CodeCrafterz — from beginner to expert.**<br/>
Pick a path, follow it in order, and you'll build genuine deep understanding.

</div>

---

> *The goal isn't to collect tutorials. It's to collect understanding.*

---

## 🛤️ Available Paths

| Path | Focus | Difficulty |
|:---|:---|:---:|
| [Systems Programmer](#-path-1-systems-programmer) | OS, kernel, memory, compilers | ⭐⭐⭐⭐⭐ |
| [AI / ML Engineer](#-path-2-ai--ml-engineer) | Neural nets, LLMs, transformers | ⭐⭐⭐⭐ |
| [Web Developer](#-path-3-web-developer) | Frontend, backend, servers | ⭐⭐ |
| [Game Developer](#-path-4-game-developer) | 2D/3D games, engines, physics | ⭐⭐⭐ |
| [Blockchain Developer](#-path-5-blockchain-developer) | Crypto, consensus, smart contracts | ⭐⭐⭐ |
| [Security Engineer](#-path-6-security-engineer) | Auth, crypto, network protocols | ⭐⭐⭐⭐ |
| [Database Engineer](#-path-7-database-engineer) | Storage engines, indexing, caching | ⭐⭐⭐⭐ |
| [Language Designer](#-path-8-language-designer) | Lexers, parsers, type systems | ⭐⭐⭐⭐ |

---

## 💻 Path 1: Systems Programmer

*Master the lowest levels of computing. Understand what really happens when you run code.*

### Prerequisites
- Comfortable with C or C++
- Basic understanding of how computers work

### Curriculum

| Step | Tutorial | Language | Why |
|:---:|:---|:---:|:---|
| 1 | [Tutorial — Write a Shell in C](https://brennan.io/2015/01/16/write-a-shell-in-c/) | C | Understand process management, fork/exec |
| 2 | [Malloc is not magic — Implementing your own memory allocator](https://medium.com/p/e0354e914402) | C | Understand the heap, sbrk, free lists |
| 3 | [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/) | C | Understand B-Trees, pages, persistence |
| 4 | [Write your Own Virtual Machine](https://justinmeiners.github.io/lc3-vm/) | C | Understand bytecode, registers, dispatch |
| 5 | [The little book about OS development](https://littleosbook.github.io/) | C | Understand bootloaders, GDT, paging |
| 6 | [Kernel 101 – Let's write a Kernel](https://arjunsreedharan.org/post/82710718100/kernel-101-lets-write-a-kernel) | C | Understand the kernel, interrupts |
| 7 | [Writing an OS in Rust](https://os.phil-opp.com/) | Rust | Apply it all — VGA, heap, threading |
| 8 | [Build Your Own Lisp](http://www.buildyourownlisp.com/) | C | Understand language internals, GC |

**Estimated time: 3–6 months of evenings/weekends**

---

## 🤖 Path 2: AI / ML Engineer

*Understand AI from the ground up — no black boxes.*

### Prerequisites
- Python proficiency
- Basic calculus (derivatives, chain rule)
- Some linear algebra

### Curriculum

| Step | Tutorial | Why |
|:---:|:---|:---|
| 1 | [A Neural Network in 11 lines of Python](https://iamtrask.github.io/2015/07/12/basic-python-network/) | Start with the basics, gradient descent |
| 2 | [Implement a Neural Network from Scratch](https://victorzhou.com/blog/intro-to-neural-networks/) | Forward/backward pass, loss functions |
| 3 | [An Introduction to Convolutional Neural Networks](https://victorzhou.com/blog/intro-to-cnns-part-1/) | Understand convolution, pooling |
| 4 | [Neural Networks: Zero to Hero](https://www.youtube.com/playlist?list=PLAqhIrjkxbuWI23v9cThsA9GvCAUhRvKZ) | Karpathy's masterclass — micrograd to GPT |
| 5 | [Word2Vec from Scratch with NumPy](https://towardsdatascience.com/word2vec-from-scratch-with-numpy-8786ddd49b37) | Understand embeddings |
| 6 | [Building a Transformer from Scratch](https://peterbloem.nl/blog/transformers) | Understand attention, positional encoding |
| 7 | [Let's build the GPT Tokenizer](https://www.youtube.com/watch?v=zduSFxRajkE) | Understand BPE tokenization |
| 8 | [Build GPT: Reproduce GPT-2 from Scratch](https://www.youtube.com/watch?v=l8pRSuU81PU) | The whole transformer architecture |
| 9 | [RAG for Document Search from Scratch](https://github.com/langchain-ai/rag-from-scratch) | Practical LLM application |
| 10 | [A Large Language Model (LLM) from Scratch](https://github.com/rasbt/LLMs-from-scratch) | Full LLM training pipeline |

**Estimated time: 2–4 months of focused study**

---

## 🌐 Path 3: Web Developer

*Understand the web stack from the ground up.*

### Prerequisites
- Basic JavaScript/Python
- Some familiarity with HTTP

### Curriculum

| Step | Tutorial | Language | Why |
|:---:|:---|:---:|:---|
| 1 | [Let's Build A Web Server](https://ruslanspivak.com/lsbaws-part1/) | Python | Understand TCP, sockets, HTTP |
| 2 | [Build Your Own Web Server From Scratch In JavaScript](https://build-your-own.org/webserver/) | Node.js | HTTP parsing, request handling |
| 3 | [How to write your own Virtual DOM](https://medium.com/@deathmood/how-to-write-your-own-virtual-dom-ee74acc13060) | JavaScript | Understand diffing, reconciliation |
| 4 | [Build your own React](https://pomb.us/build-your-own-react/) | JavaScript | Hooks, fibers, concurrent mode |
| 5 | [Build Yourself a Redux](https://zapier.com/engineering/how-to-build-redux/) | JavaScript | Unidirectional data flow |
| 6 | [Build Your Own Module Bundler — Minipack](https://github.com/ronami/minipack) | JavaScript | Understand Webpack, ESM |
| 7 | [Implementing a RESTful Web API with Python & Flask](http://blog.luisrei.com/articles/flaskrest.html) | Python | REST API design |
| 8 | [Building A Simple Single Sign On (SSO) Server From Scratch](https://codeburst.io/building-a-simple-single-sign-on-sso-server-and-solution-from-scratch-in-node-js-ea6ee5fdf340) | Node.js | Auth flows, sessions |

**Estimated time: 1–2 months**

---

## 🎮 Path 4: Game Developer

*From simple scripts to full game engines.*

### Prerequisites
- Any programming language
- Basic math (vectors, trigonometry)

### Curriculum

| Step | Tutorial | Language | Why |
|:---:|:---|:---:|:---|
| 1 | [Think like a programmer: Build Snake](https://medium.freecodecamp.org/think-like-a-programmer-how-to-build-snake-using-only-javascript-html-and-css-7b1479c3339e) | JavaScript | Game loop, canvas basics |
| 2 | [How to Make Flappy Bird in HTML5 With Phaser](http://www.lessmilk.com/tutorial/flappy-bird-phaser-1) | JavaScript | Physics, sprites, collision |
| 3 | [Breakout — LearnOpenGL](https://learnopengl.com/In-Practice/2D-Game/Breakout) | C++ | OpenGL, rendering pipeline |
| 4 | [How Physics Engines Work](http://buildnewgames.com/gamephysics/) | JavaScript | AABB, collision response |
| 5 | [Space Invaders from Scratch](http://nicktasios.nl/posts/space-invaders-from-scratch-part-1.html) | C++ | Entity systems, game states |
| 6 | [Roguelike Tutorial Revised](http://rogueliketutorials.com/) | Python | FOV, pathfinding, procedural generation |
| 7 | [Code a 2D Game Engine using Java](https://www.youtube.com/watch?v=025QFeZfeyM) | Java | Full engine architecture |
| 8 | [Handmade Hero](https://handmadehero.org/) | C | The complete game development masterclass |

**Estimated time: 3–6 months**

---

## ⛓️ Path 5: Blockchain Developer

*Understand distributed consensus from first principles.*

### Prerequisites
- Any programming language
- Basic cryptography understanding

### Curriculum

| Step | Tutorial | Language | Why |
|:---:|:---|:---:|:---|
| 1 | [Let's Build the Tiniest Blockchain](https://medium.com/crypto-currently/lets-build-the-tiniest-blockchain-e70965a248b) | Python | Core concepts: blocks, hashing |
| 2 | [Learn Blockchains by Building One](https://hackernoon.com/learn-blockchains-by-building-one-117428612f46) | Python | Proof of Work, nodes |
| 3 | [Build your own Blockchain in JavaScript](https://github.com/nambrot/blockchain-in-js) | JavaScript | Networking, consensus |
| 4 | [Building Blockchain in Go](https://jeiwan.net/posts/building-blockchain-in-go-part-1/) | Go | Full UTXO model |
| 5 | [Naivecoin: a tutorial for building a cryptocurrency](https://lhartikk.github.io/) | TypeScript | P2P networking, wallets |
| 6 | [NaivecoinStake: Proof of Stake](https://naivecoinstake.learn.uno/) | TypeScript | PoS, validators, slashing |
| 7 | [Building A Blockchain in Rust & Substrate](https://hackernoon.com/building-a-blockchain-in-rust-and-substrate-a-step-by-step-guide-for-developers-kc223ybp) | Rust | Production-grade blockchain |

**Estimated time: 1–3 months**

---

## 🔐 Path 6: Security Engineer

*Understand security systems by building them.*

### Prerequisites
- Networking fundamentals
- Basic cryptography

### Curriculum

| Step | Tutorial | Why |
|:---:|:---|:---|
| 1 | [Let's code a TCP/IP stack](http://www.saminiir.com/lets-code-tcp-ip-stack-1-ethernet-arp/) | Raw sockets, ARP, TCP handshake |
| 2 | [Build your own VPN/Virtual Switch](https://github.com/peiyuanix/build-your-own-zerotier) | TLS, tunneling, routing |
| 3 | [Write a System Call](https://brennan.io/2016/11/14/kernel-dev-ep3/) | System call interface, privilege levels |
| 4 | [Build JWT Authentication from Scratch](https://blog.logrocket.com/jwt-authentication-from-scratch/) | Token-based auth, signing |
| 5 | [Building A Simple Single Sign On (SSO) Server](https://codeburst.io/building-a-simple-single-sign-on-sso-server-and-solution-from-scratch-in-node-js-ea6ee5fdf340) | Federation, OAuth |
| 6 | [Build a DNS Server in Node.js](https://engineerhead.github.io/dns-server/) | DNS protocol, caching |
| 7 | [Writing a Linux Debugger](https://blog.tartanllama.xyz/writing-a-linux-debugger-setup/) | ptrace, breakpoints, memory inspection |

---

## 🗄️ Path 7: Database Engineer

*From simple KV stores to full relational databases.*

### Curriculum

| Step | Tutorial | Language | Concept |
|:---:|:---|:---:|:---|
| 1 | [Write your own miniature Redis with Python](http://charlesleifer.com/blog/building-a-simple-redis-server-with-python/) | Python | In-memory KV, RESP protocol |
| 2 | [Build your own fast, persistent KV store in Ruby](https://dineshgowda.com/posts/build-your-own-persistent-kv-store/) | Ruby | Persistence, append-only logs |
| 3 | [DBDB: Dog Bed Database](http://aosabook.org/en/500L/dbdb-dog-bed-database.html) | Python | Tree structures, update-in-place |
| 4 | [Let's Build a Simple Database](https://cstack.github.io/db_tutorial/) | C | B-Tree, SQL parsing, cursor |
| 5 | [Build Your Own Redis from Scratch](https://build-your-own.org/redis) | C++ | Event loop, TTL, data structures |
| 6 | [Build Your Own Database from Scratch: From B+Tree To SQL](https://build-your-own.org/database/) | Go | B+Tree, WAL, transactions |
| 7 | [Implementing Raft Consensus Algorithm](https://eli.thegreenplace.net/2020/implementing-raft-part-0-introduction/) | Python | Distributed consensus, leader election |

---

## 🗣️ Path 8: Language Designer

*Design and implement your own programming language.*

### Curriculum

| Step | Tutorial | Language | Why |
|:---:|:---|:---:|:---|
| 1 | [The Super Tiny Compiler](https://github.com/jamiebuilds/the-super-tiny-compiler) | JavaScript | Core compiler pipeline in 200 lines |
| 2 | [Let's Build A Simple Interpreter](https://ruslanspivak.com/lsbasi-part1/) | Python | Lexer, parser, AST, interpreter |
| 3 | [Build Your Own Lisp](http://www.buildyourownlisp.com/) | C | REPL, evaluation, environments |
| 4 | [Crafting Interpreters](http://www.craftinginterpreters.com/) | Java | Full tree-walk and bytecode interpreter |
| 5 | [Baby's First Garbage Collector](http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/) | C | Mark-sweep, GC roots |
| 6 | [Kaleidoscope: Implementing a Language with LLVM](https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/index.html) | C++ | JIT compilation, LLVM IR |
| 7 | [Write You a Haskell](http://dev.stephendiehl.com/fun/) | Haskell | Type inference, lambda calculus |

---

<div align="center">

*Back to [README](README.md) · [Full Tutorial Index](README.md#-navigate)*

**Maintained by [Vignesh Warrier](https://github.com/vignesh2027)**

</div>
