Featured image of post ai-engineering-from-scratch

ai-engineering-from-scratch

rohitg00/ai-engineering-from-scratch

AI Engineering from Scratch — reference manual banner

MIT License 435 lessons 20 phases GitHub stars Website

1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

84% of students already use AI tools. Only 18% feel prepared to use them professionally. This curriculum closes that gap.

435 lessons. 20 phases. ~320 hours. Python, TypeScript, Rust, Julia. Every lesson ships a reusable artifact: a prompt, a skill, an agent, an MCP server. Free, open source, MIT.

You don’t just learn AI. You build it. End-to-end. By hand.

How this works

Most AI material teaches in scattered pieces. A paper here, a fine-tuning post there, a flashy agent demo somewhere else. The pieces rarely line up. You ship a chatbot but can’t explain its loss curve. You hook a function to an agent but can’t say what attention does inside the model that’s calling it.

This curriculum is the spine. 20 phases, 435 lessons, four languages: Python, TypeScript, Rust, Julia. Linear algebra at one end, autonomous swarms at the other. Every algorithm gets built from raw math first. Backprop. Tokenizer. Attention. Agent loop. By the time PyTorch shows up, you already know what it’s doing under the hood.

Each lesson runs the same loop: read the problem, derive the math, write the code, run the test, keep the artifact. No five-minute videos, no copy-paste deploys, no hand-holding. Free, open source, and built to run on your own laptop.

1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

The shape of the curriculum

Twenty phases stack on top of each other. Math is the floor. Agents and production are the roof. Skip ahead if you already know the lower layers, but don’t skip and then wonder why something at the top is breaking.

  %%{init: {'theme':'base','themeVariables':{'primaryColor':'#fafaf5','primaryTextColor':'#1a1a1a','primaryBorderColor':'#3553ff','lineColor':'#3553ff','fontFamily':'JetBrains Mono','fontSize':'12px'}}}%%
flowchart TB
  P0["Phase 0 — Setup & Tooling"] --> P1["Phase 1 — Math Foundations"]
  P1 --> P2["Phase 2 — ML Fundamentals"]
  P2 --> P3["Phase 3 — Deep Learning Core"]
  P3 --> P4["Phase 4 — Vision"]
  P3 --> P5["Phase 5 — NLP"]
  P3 --> P6["Phase 6 — Speech & Audio"]
  P3 --> P9["Phase 9 — RL"]
  P5 --> P7["Phase 7 — Transformers"]
  P7 --> P8["Phase 8 — GenAI"]
  P7 --> P10["Phase 10 — LLMs from Scratch"]
  P10 --> P11["Phase 11 — LLM Engineering"]
  P10 --> P12["Phase 12 — Multimodal"]
  P11 --> P13["Phase 13 — Tools & Protocols"]
  P13 --> P14["Phase 14 — Agent Engineering"]
  P14 --> P15["Phase 15 — Autonomous Systems"]
  P15 --> P16["Phase 16 — Multi-Agent & Swarms"]
  P14 --> P17["Phase 17 — Infrastructure & Production"]
  P15 --> P18["Phase 18 — Ethics & Alignment"]
  P16 --> P19["Phase 19 — Capstone Projects"]
  P17 --> P19
  P18 --> P19
1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

The shape of a lesson

Each lesson lives in its own folder, with the same structure across the entire curriculum:

1
2
3
4
5
phases/<NN>-<phase-name>/<NN>-<lesson-name>/
├── code/      runnable implementations (Python, TypeScript, Rust, Julia)
├── docs/
│   └── en.md  lesson narrative
└── outputs/   prompts, skills, agents, or MCP servers this lesson produces

Every lesson follows six beats. The Build It / Use It split is the spine — you implement the algorithm from scratch first, then run the same thing through the production library. You understand what the framework is doing because you wrote the smaller version yourself.

  %%{init: {'theme':'base','themeVariables':{'primaryColor':'#fafaf5','primaryTextColor':'#1a1a1a','primaryBorderColor':'#3553ff','lineColor':'#3553ff','fontFamily':'JetBrains Mono','fontSize':'13px'}}}%%
flowchart LR
  M["MOTTO<br/><sub>one-line core idea</sub>"] --> Pr["PROBLEM<br/><sub>concrete pain</sub>"]
  Pr --> C["CONCEPT<br/><sub>diagrams &amp; intuition</sub>"]
  C --> B["BUILD IT<br/><sub>raw math, no frameworks</sub>"]
  B --> U["USE IT<br/><sub>same thing in PyTorch / sklearn</sub>"]
  U --> S["SHIP IT<br/><sub>prompt · skill · agent · MCP</sub>"]

Getting started

Three ways in. Pick one.

Option A — read. Open any completed lesson on aiengineeringfromscratch.com or expand a phase under Contents. No setup, no cloning.

Option B — clone and run.

1
2
3
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
python phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py

Option C — find your level (recommended). Skip ahead intelligently. Inside Claude, Cursor, Codex, OpenClaw, Hermes, or any agent with the curriculum skills installed:

1
/find-your-level

Ten questions. Maps your knowledge to a starting phase, builds a personalized path with hour estimates. After each phase:

1
2
3
4
/check-understanding 3        # quiz yourself on phase 3
ls phases/03-deep-learning-core/05-loss-functions/outputs/
# ├── prompt-loss-function-selector.md
# └── prompt-loss-debugger.md

Prerequisites

  • You can write code (any language; Python helps).
  • You want to understand how AI actually works, not just call APIs.

Built-in agent skills (Claude, Cursor, Codex, OpenClaw, Hermes)

Skill What it does
/find-your-level Ten-question placement quiz. Maps your knowledge to a starting phase and produces a personalized path with hour estimates.
/check-understanding <phase> Per-phase quiz, eight questions, with feedback and specific lessons to review.
1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

Every lesson ships something

Other curricula end with “congratulations, you learned X.” Each lesson here ends with a reusable tool you can install or paste into your daily workflow.

FIG_001.A prompts
FIG_001 · A
PROMPTS
FIG_001.B skills
FIG_001 · B
SKILLS
FIG_001.C agents
FIG_001 · C
AGENTS
FIG_001.D MCP servers
FIG_001 · D
MCP SERVERS
Paste into any AI assistant for expert-level help on a narrow task. Drop into Claude, Cursor, Codex, OpenClaw, Hermes, or any agent that reads SKILL.md. Deploy as autonomous workers — you wrote the loop yourself in Phase 14. Plug into any MCP-compatible client. Built end-to-end in Phase 13.

Install the lot with python3 scripts/install_skills.py. Real tools, not homework. By the end of the curriculum, you have a portfolio of 435 artifacts you actually understand because you built them.

FIG_002 · A worked sample

Phase 14, lesson 1: the agent loop. ~120 lines of pure Python, no dependencies.

code/agent_loop.py   build it

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
def run(query, tools):
    history = [user(query)]
    for step in range(MAX_STEPS):
        msg = llm(history)
        if msg.tool_calls:
            for call in msg.tool_calls:
                result = tools[call.name](**call.args)
                history.append(tool_result(call.id, result))
            continue
        return msg.content
    raise StepLimitExceeded

outputs/skill-agent-loop.md   ship it

1
2
3
4
5
6
7
8
---
name: agent-loop
description: ReAct-style loop for any tool list
phase: 14
lesson: 01
---

Implement a minimal agent loop that...

outputs/prompt-debug-agent.md

1
2
3
You are an agent debugger. Given the trace
of an agent run, identify the step where
the agent went wrong and explain why...
1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

Contents

Twenty phases. Click any phase to expand its lesson list.

Phase 0: Setup & Tooling 12 lessons

Get your environment ready for everything that follows.

# Lesson Type Lang
01 Dev Environment Build Python, TypeScript, Rust
02 Git & Collaboration Learn
03 GPU Setup & Cloud Build Python
04 APIs & Keys Build Python, TypeScript
05 Jupyter Notebooks Build Python
06 Python Environments Build Python
07 Docker for AI Build Python
08 Editor Setup Build
09 Data Management Build Python
10 Terminal & Shell Learn
11 Linux for AI Learn
12 Debugging & Profiling Build Python
Phase 1 — Math Foundations  22 lessons  The intuition behind every AI algorithm, through code.
# Lesson Type Lang
01 Linear Algebra Intuition Learn Python, Julia
02 Vectors, Matrices & Operations Build Python, Julia
03 Matrix Transformations & Eigenvalues Build Python, Julia
04 Calculus for ML: Derivatives & Gradients Learn Python
05 Chain Rule & Automatic Differentiation Build Python
06 Probability & Distributions Learn Python
07 Bayes’ Theorem & Statistical Thinking Build Python
08 Optimization: Gradient Descent Family Build Python
09 Information Theory: Entropy, KL Divergence Learn Python
10 Dimensionality Reduction: PCA, t-SNE, UMAP Build Python
11 Singular Value Decomposition Build Python, Julia
12 Tensor Operations Build Python
13 Numerical Stability Build Python
14 Norms & Distances Build Python
15 Statistics for ML Build Python
16 Sampling Methods Build Python
17 Linear Systems Build Python
18 Convex Optimization Build Python
19 Complex Numbers for AI Learn Python
20 The Fourier Transform Build Python
21 Graph Theory for ML Build Python
22 Stochastic Processes Learn Python
Phase 2 — ML Fundamentals  18 lessons  Classical ML — still the backbone of most production AI.
Phase 3 — Deep Learning Core  13 lessons  Neural networks from first principles. No frameworks until you build one.
Phase 4 — Computer Vision  28 lessons  From pixels to understanding — image, video, 3D, VLMs, and world models.
Phase 5 — NLP: Foundations to Advanced  29 lessons  Language is the interface to intelligence.
Phase 6 — Speech & Audio  17 lessons  Hear, understand, speak.
Phase 7 — Transformers Deep Dive  14 lessons  The architecture that changed everything.
Phase 8 — Generative AI  14 lessons  Create images, video, audio, 3D, and more.
# Lesson Type Lang
01 Generative Models: Taxonomy & History Learn Python
02 Autoencoders & VAE Build Python
03 GANs: Generator vs Discriminator Build Python
04 Conditional GANs & Pix2Pix Build Python
05 StyleGAN Build Python
06 Diffusion Models — DDPM from Scratch Build Python
07 Latent Diffusion & Stable Diffusion Build Python
08 ControlNet, LoRA & Conditioning Build Python
09 Inpainting, Outpainting & Editing Build Python
10 Video Generation Build Python
11 Audio Generation Build Python
12 3D Generation Build Python
13 Flow Matching & Rectified Flows Build Python
14 Evaluation: FID, CLIP Score Build Python
Phase 9 — Reinforcement Learning  12 lessons  The foundation of RLHF and game-playing AI.
# Lesson Type Lang
01 MDPs, States, Actions & Rewards Learn Python
02 Dynamic Programming Build Python
03 Monte Carlo Methods Build Python
04 Q-Learning, SARSA Build Python
05 Deep Q-Networks (DQN) Build Python
06 Policy Gradients — REINFORCE Build Python
07 Actor-Critic — A2C, A3C Build Python
08 PPO Build Python
09 Reward Modeling & RLHF Build Python
10 Multi-Agent RL Build Python
11 Sim-to-Real Transfer Build Python
12 RL for Games Build Python
Phase 10 — LLMs from Scratch  22 lessons  Build, train, and understand large language models.
Phase 11 — LLM Engineering  17 lessons  Put LLMs to work in production.
# Lesson Type Lang
01 Prompt Engineering: Techniques & Patterns Build Python
02 Few-Shot, CoT, Tree-of-Thought Build Python
03 Structured Outputs Build Python, TypeScript
04 Embeddings & Vector Representations Build Python
05 Context Engineering Build Python, TypeScript
06 RAG: Retrieval-Augmented Generation Build Python, TypeScript
07 Advanced RAG: Chunking, Reranking Build Python
08 Fine-Tuning with LoRA & QLoRA Build Python
09 Function Calling & Tool Use Build Python
10 Evaluation & Testing Build Python
11 Caching, Rate Limiting & Cost Build Python
12 Guardrails & Safety Build Python
13 Building a Production LLM App Build Python
14 Model Context Protocol (MCP) Build Python
15 Prompt Caching & Context Caching Build Python
16 LangGraph: State Machines for Agents Build Python
17 Agent Framework Tradeoffs Learn Python
Phase 12 — Multimodal AI  25 lessons  See, hear, read, and reason across modalities — from ViT patches to computer-use agents.
Phase 13 — Tools & Protocols  23 lessons  The interfaces between AI and the real world.
# Lesson Type Lang
01 The Tool Interface Learn Python
02 Function Calling Deep Dive Build Python
03 Parallel and Streaming Tool Calls Build Python
04 Structured Output Build Python
05 Tool Schema Design Learn Python
06 MCP Fundamentals Learn Python
07 Building an MCP Server Build Python
08 Building an MCP Client Build Python
09 MCP Transports Learn Python
10 MCP Resources and Prompts Build Python
11 MCP Sampling Build Python
12 MCP Roots and Elicitation Build Python
13 MCP Async Tasks Build Python
14 MCP Apps Build Python
15 MCP Security I — Tool Poisoning Learn Python
16 MCP Security II — OAuth 2.1 Build Python
17 MCP Gateways and Registries Learn Python
18 MCP Auth in Production — DCR + JWKS on iii Build Python
19 A2A Protocol Build Python
20 OpenTelemetry GenAI Build Python
21 LLM Routing Layer Learn Python
22 Skills and Agent SDKs Learn Python
23 Capstone — Tool Ecosystem Build Python
Phase 14 — Agent Engineering  42 lessons  Build agents from first principles — loop, memory, planning, frameworks, benchmarks, production, workbench.
# Lesson Type Lang
01 The Agent Loop Build Python
02 ReWOO and Plan-and-Execute Build Python
03 Reflexion and Verbal Reinforcement Learning Build Python
04 Tree of Thoughts and LATS Build Python
05 Self-Refine and CRITIC Build Python
06 Tool Use and Function Calling Build Python
07 Memory — Virtual Context and MemGPT Build Python
08 Memory Blocks and Sleep-Time Compute Build Python
09 Hybrid Memory — Mem0 Vector + Graph + KV Build Python
10 Skill Libraries and Lifelong Learning — Voyager Build Python
11 Planning with HTN and Evolutionary Search Build Python
12 Anthropic’s Workflow Patterns Build Python
13 LangGraph — Stateful Graphs and Durable Execution Build Python
14 AutoGen v0.4 — Actor Model Build Python
15 CrewAI — Role-Based Crews and Flows Build Python
16 OpenAI Agents SDK — Handoffs, Guardrails, Tracing Build Python
17 Claude Agent SDK — Subagents and Session Store Build Python
18 Agno and Mastra — Production Runtimes Learn Python, TypeScript
19 Benchmarks — SWE-bench, GAIA, AgentBench Learn Python
20 Benchmarks — WebArena and OSWorld Learn Python
21 Computer Use — Claude, OpenAI CUA, Gemini Build Python
22 Voice Agents — Pipecat and LiveKit Build Python
23 OpenTelemetry GenAI Semantic Conventions Build Python
24 Agent Observability — Langfuse, Phoenix, Opik Learn Python
25 Multi-Agent Debate and Collaboration Build Python
26 Failure Modes — Why Agents Break Build Python
27 Prompt Injection and the PVE Defense Build Python
28 Orchestration Patterns — Supervisor, Swarm, Hierarchical Build Python
29 Production Runtimes — Queue, Event, Cron Learn Python
30 Eval-Driven Agent Development Build Python
31 Agent Workbench: Why Capable Models Still Fail Learn Python
32 The Minimal Agent Workbench Build Python
33 Agent Instructions as Executable Constraints Build Python
34 Repo Memory and Durable State Build Python
35 Initialization Scripts for Agents Build Python
36 Scope Contracts and Task Boundaries Build Python
37 Runtime Feedback Loops Build Python
38 Verification Gates Build Python
39 Reviewer Agent: Separate Builder from Marker Build Python
40 Multi-Session Handoff Build Python
41 The Workbench on a Real Repo Build Python
42 Capstone: Ship a Reusable Agent Workbench Pack Build Python

Each Phase 14 workbench lesson (31-42) ships a mission.md briefing the agent before it opens the full lesson docs.

Phase 15 — Autonomous Systems  22 lessons  Long-horizon agents, self-improvement, and the 2026 safety stack.
Phase 16 — Multi-Agent & Swarms  25 lessons  Coordination, emergence, and collective intelligence.
Phase 17 — Infrastructure & Production  28 lessons  Ship AI to the real world.
# Lesson Type Lang
01 Managed LLM Platforms — Bedrock, Azure OpenAI, Vertex AI Learn Python
02 Inference Platform Economics — Fireworks, Together, Baseten, Modal Learn Python
03 GPU Autoscaling on Kubernetes — Karpenter, KAI Scheduler Learn Python
04 vLLM Serving Internals — PagedAttention, Continuous Batching, Chunked Prefill Learn Python
05 EAGLE-3 Speculative Decoding in Production Learn Python
06 SGLang and RadixAttention for Prefix-Heavy Workloads Learn Python
07 TensorRT-LLM on Blackwell with FP8 and NVFP4 Learn Python
08 Inference Metrics — TTFT, TPOT, ITL, Goodput, P99 Learn Python
09 Production Quantization — AWQ, GPTQ, GGUF, FP8, NVFP4 Learn Python
10 Cold Start Mitigation for Serverless LLMs Learn Python
11 Multi-Region LLM Serving and KV Cache Locality Learn Python
12 Edge Inference — ANE, Hexagon, WebGPU, Jetson Learn Python
13 LLM Observability Stack Selection Learn Python
14 Prompt Caching and Semantic Caching Economics Learn Python
15 Batch APIs — the 50% Discount as Industry Standard Learn Python
16 Model Routing as a Cost-Reduction Primitive Learn Python
17 Disaggregated Prefill/Decode — NVIDIA Dynamo and llm-d Learn Python
18 vLLM Production Stack with LMCache KV Offloading Learn Python
19 AI Gateways — LiteLLM, Portkey, Kong, Bifrost Learn Python
20 Shadow, Canary, and Progressive Deployment Learn Python
21 A/B Testing LLM Features — GrowthBook and Statsig Learn Python
22 Load Testing LLM APIs — k6, LLMPerf, GenAI-Perf Build Python
23 SRE for AI — Multi-Agent Incident Response Learn Python
24 Chaos Engineering for LLM Production Learn Python
25 Security — Secrets, PII Scrubbing, Audit Logs Learn Python
26 Compliance — SOC 2, HIPAA, GDPR, EU AI Act, ISO 42001 Learn Python
27 FinOps for LLMs — Unit Economics and Multi-Tenant Attribution Learn Python
28 Self-Hosted Serving Selection — llama.cpp, Ollama, TGI, vLLM, SGLang Learn Python
Phase 18 — Ethics, Safety & Alignment  30 lessons  Build AI that helps humanity. Not optional.
# Lesson Type Lang
01 Instruction-Following as Alignment Signal Learn Python
02 Reward Hacking & Goodhart’s Law Learn Python
03 Direct Preference Optimization Family Learn Python
04 Sycophancy as RLHF Amplification Learn Python
05 Constitutional AI & RLAIF Learn Python
06 Mesa-Optimization & Deceptive Alignment Learn Python
07 Sleeper Agents — Persistent Deception Learn Python
08 In-Context Scheming in Frontier Models Learn Python
09 Alignment Faking Learn Python
10 AI Control — Safety Despite Subversion Learn Python
11 Scalable Oversight & Weak-to-Strong Learn Python
12 Red-Teaming: PAIR & Automated Attacks Build Python
13 Many-Shot Jailbreaking Learn Python
14 ASCII Art & Visual Jailbreaks Build Python
15 Indirect Prompt Injection Build Python
16 Red-Team Tooling: Garak, Llama Guard, PyRIT Build Python
17 WMDP & Dual-Use Capability Evaluation Learn Python
18 Frontier Safety Frameworks — RSP, PF, FSF Learn
19 Model Welfare Research Learn Python
20 Bias & Representational Harm Build Python
21 Fairness Criteria: Group, Individual, Counterfactual Learn Python
22 Differential Privacy for LLMs Build Python
23 Watermarking: SynthID, Stable Signature, C2PA Build Python
24 Regulatory Frameworks: EU, US, UK, Korea Learn
25 EchoLeak & CVEs for AI Learn Python
26 Model, System & Dataset Cards Build Python
27 Data Provenance & Training-Data Governance Learn Python
28 Alignment Research Ecosystem: MATS, Redwood, Apollo, METR Learn
29 Moderation Systems: OpenAI, Perspective, Llama Guard Build Python
30 Dual-Use Risk: Cyber, Bio, Chem, Nuclear Learn
Phase 19 — Capstone Projects  17 projects  2026 end-to-end shippable products, 20-40 hours each.
# Project Combines Lang
01 Terminal-Native Coding Agent P0 P5 P7 P10 P11 P13 P14 P15 P17 P18 TypeScript, Python
02 RAG over Codebase (Cross-Repo Semantic Search) P5 P7 P11 P13 P17 Python, TypeScript
03 Real-Time Voice Assistant (ASR → LLM → TTS) P6 P7 P11 P13 P14 P17 Python, TypeScript
04 Multimodal Document QA (Vision-First) P4 P5 P7 P11 P12 P17 Python, TypeScript
05 Autonomous Research Agent (AI-Scientist Class) P0 P2 P3 P7 P10 P14 P15 P16 P18 Python
06 DevOps Troubleshooting Agent for Kubernetes P11 P13 P14 P15 P17 P18 Python, TypeScript
07 End-to-End Fine-Tuning Pipeline P2 P3 P7 P10 P11 P17 P18 Python
08 Production RAG Chatbot (Regulated Vertical) P5 P7 P11 P12 P17 P18 Python, TypeScript
09 Code Migration Agent (Repo-Level Upgrade) P5 P7 P11 P13 P14 P15 P17 Python, TypeScript
10 Multi-Agent Software Engineering Team P11 P13 P14 P15 P16 P17 Python, TypeScript
11 LLM Observability & Eval Dashboard P11 P13 P17 P18 TypeScript, Python
12 Video Understanding Pipeline (Scene → QA) P4 P6 P7 P11 P12 P17 Python, TypeScript
13 MCP Server with Registry and Governance P11 P13 P14 P17 P18 Python, TypeScript
14 Speculative-Decoding Inference Server P3 P7 P10 P17 Python
15 Constitutional Safety Harness + Red-Team Range P10 P11 P13 P14 P18 Python
16 GitHub Issue-to-PR Autonomous Agent P11 P13 P14 P15 P17 Python, TypeScript
17 Personal AI Tutor (Adaptive, Multimodal) P5 P6 P11 P12 P14 P17 P18 Python, TypeScript
1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

The toolkit

Every lesson produces a reusable artifact. By the end you have:

1
2
3
outputs/
├── prompts/      prompt templates for every AI task
└── skills/       SKILL.md files for AI coding agents

Install them with python3 scripts/install_skills.py. Plug them into Claude, Cursor, Codex, OpenClaw, Hermes, or any MCP-compatible agent. Real tools, not homework.

Install every course skill into your agent

The repo ships 378 skills and 99 prompts under phases/**/outputs/. scripts/install_skills.py walks every artifact, parses YAML frontmatter, and copies the matching files into a target directory in the layout your agent expects.

1
2
3
4
5
6
7
python3 scripts/install_skills.py ~/.claude/skills                 # every skill, nested layout
python3 scripts/install_skills.py ./out --type all                 # skills + prompts + agents
python3 scripts/install_skills.py ./out --phase 14                 # one phase only
python3 scripts/install_skills.py ./out --tag rag                  # filter by tag
python3 scripts/install_skills.py ./out --layout flat              # flat files
python3 scripts/install_skills.py ./out --dry-run                  # preview without writing
python3 scripts/install_skills.py ./out --force                    # overwrite existing files

By default the script refuses to overwrite an existing destination and exits with code 1 after listing every colliding path. Use --dry-run to preview collisions or --force to overwrite. Every non-dry-run run writes a manifest.json in the target with the full inventory grouped by type and phase. Pick the layout your agent reads:

--layout Path written
skills <target>/<name>/SKILL.md (Claude / Cursor convention)
by-phase <target>/phase-NN/<name>.md
flat <target>/<name>.md

Drop the agent workbench into your own repo

The Phase 14 capstone ships a reusable Agent Workbench pack (AGENTS.md, schemas, init / verify / handoff scripts). Scaffold it into any repo with:

1
2
3
4
python3 scripts/scaffold_workbench.py path/to/your-repo            # full pack + seeds
python3 scripts/scaffold_workbench.py path/to/your-repo --minimal  # skip docs/
python3 scripts/scaffold_workbench.py path/to/your-repo --dry-run  # preview only
python3 scripts/scaffold_workbench.py path/to/your-repo --force    # overwrite

You get the seven workbench surfaces wired up, a starter task_board.json, and a fresh agent_state.json at schema_version: 1. From there: edit the task, edit AGENTS.md, run scripts/init_agent.py, hand the contract to your agent. The pack source lives at phases/14-agent-engineering/42-agent-workbench-capstone/outputs/agent-workbench-pack/.

Browse the entire course as JSON

scripts/build_catalog.py walks every phase, every lesson, every artifact on disk and writes catalog.json at the repo root. One file, every course truth.

1
2
3
python3 scripts/build_catalog.py               # writes <repo>/catalog.json
python3 scripts/build_catalog.py --stdout      # to stdout, do not touch repo
python3 scripts/build_catalog.py --out path/to/file.json

The catalog is filesystem-derived, not README-derived, so counts always match what is actually on disk. Use it for site builds, downstream tooling, or to verify the README counts have not drifted. Schema is documented at the top of the script.

A GitHub Action (.github/workflows/curriculum.yml) rebuilds catalog.json on every PR and fails the build if the committed file is stale. After editing any lesson, run python3 scripts/build_catalog.py and commit the result, or CI will reject the PR. The same workflow runs audit_lessons.py in warn-only mode (so existing drift does not block contributors).

Smoke-check every lesson’s Python code

scripts/lesson_run.py byte-compiles every .py file under each lesson’s code/ directory. Default mode is syntax-check only — no execution, no API keys, no heavy ML deps required. Catches the regressions contributors introduce most often (bad indentation, broken f-strings, stray edits).

1
2
3
4
5
python3 scripts/lesson_run.py                  # syntax-check the whole curriculum
python3 scripts/lesson_run.py --phase 14       # one phase only
python3 scripts/lesson_run.py --json           # JSON report on stdout
python3 scripts/lesson_run.py --strict         # exit 1 if any lesson fails
python3 scripts/lesson_run.py --execute        # actually run, 10s timeout per lesson

--execute runs each lesson’s code/main.py (or the first .py file) with a 10-second timeout. Lessons whose entry file starts with a # requires: pkg1, pkg2 comment listing non-stdlib deps are skipped with reason needs <deps>. The script is opt-in and not wired into CI.

Stdlib only, Python 3.10+. Set LINK_CHECK_SKIP=domain1,domain2 to override the default skip-list (twitter.com, x.com, linkedin.com, instagram.com, medium.com — domains that aggressively block automated HEAD/GET).

Where to start

Background Start at Estimated time
New to programming and AI Phase 0 — Setup ~306 hours
Know Python, new to ML Phase 1 — Math Foundations ~270 hours
Know ML, new to deep learning Phase 3 — Deep Learning Core ~200 hours
Know deep learning, want LLMs and agents Phase 10 — LLMs from Scratch ~100 hours
Senior engineer, only want agent engineering Phase 14 — Agent Engineering ~60 hours
1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

Why this matters now

FIG_003 · A
THE INDUSTRY SIGNAL
FIG_003 · B
FOUNDATIONAL PAPERS COVERED

“The hottest new programming language is English.”
Andrej Karpathy (tweet)

“Software engineering is being remade in front of our eyes.”
Boris Cherny, creator of Claude Code

“Models will keep getting better. The skill that compounds is knowing what to build.”
— Industry consensus, 2026

  • Attention Is All You Need — Vaswani et al., 2017 → Phase 7
  • Language Models are Few-Shot Learners (GPT-3) → Phase 10
  • Denoising Diffusion Probabilistic ModelsPhase 8
  • InstructGPT / RLHFPhase 10
  • Direct Preference OptimizationPhase 10
  • Chain-of-Thought PromptingPhase 11
  • ReAct: Reasoning + Acting in LLMsPhase 14
  • Model Context Protocol — Anthropic → Phase 13
1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

Contributing

Goal Read
Contribute a lesson or fix CONTRIBUTING.md
Fork for your team or school FORKING.md
Lesson template LESSON_TEMPLATE.md
Track progress ROADMAP.md
Glossary glossary/terms.md
Code of conduct CODE_OF_CONDUCT.md

Before submitting a lesson, run the invariant check:

1
2
3
python3 scripts/audit_lessons.py           # full curriculum
python3 scripts/audit_lessons.py --phase 14  # single phase
python3 scripts/audit_lessons.py --json    # CI-friendly output

Exit code is non-zero when any rule fails. Rules (L001–L010) validate directory shape, docs/en.md presence + H1, code/ non-emptiness, quiz.json schema (rejects the legacy q/choices/answer keys that caused issue #102), and relative links inside lesson docs.

1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

Free, MIT-licensed, 435 lessons. The curriculum is maintained on sponsorship alone. Cash only.

Reach (verified 2026-05-14): 55,593 monthly visitors · 90,709 page views · 7.5K stars · Twitter/X is the #1 acquisition channel.

Tier $/mo What you get
Backer $25 Name in BACKERS.md
Bronze $250 Text-only row in README sponsor block + launch-day tweet
Silver $750 Small logo in README + listed as one supported provider in API lessons
Gold $2,000 Medium logo in README + sponsor page + quarterly X / LinkedIn co-feature
Platinum $5,000 Hero logo above the fold + one dedicated integration lesson, max 1 partner

Full rate card, hard rules, pricing anchors, and reach data: SPONSORS.md. Sign up via GitHub Sponsors.

1
░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒░░░▒▒▒

Star history

Star history

If this manual helped you, star the repo. It keeps the project alive.

License

MIT. Use it however you want — fork it, teach it, sell it, ship it. Attribution appreciated, not required.

Maintained by Rohit Ghumare and the community.

@ghumare64  ·  aiengineeringfromscratch.com  ·  Report / Suggest
Built with Hugo
Theme Stack designed by Jimmy