Implement model internals, retrieval pipelines, and agent runtimes. Test them, inspect failures, and keep the code and evaluation results.
Start learning · Choose a path · Try a lab · Build a project · Browse the curriculum
Free, open source, MIT. Learn on the website, with a coding agent, or by running local code.
542 lessons. 20 phases. Python, TypeScript, Rust, Julia.
Sponsors
Learning paths
Compare career paths · Prerequisites and study time
Gradient descent
Twenty starting points follow gradient descent on a quadratic loss. The graph shows their positions and mean loss after each update. Adjust the learning rate in the lesson · Compare GD, momentum, and Adam in code
Projects
Three projects with staged starters, reference implementations, and local graders. Run commands from the repository root after setup. Starters fail until you implement the stages.
A candidate improves mean NDCG while one query ranks its most relevant evidence lower. Build a query-by-query comparison that reports the regression and can fail a release check.
Use Python 3.10+. Review RAG and model evaluation. Implement ranking validation, precision and recall, rank-sensitive metrics, then system comparison.
python3 scripts/project_test.py retrieval-evaluation-lab \
--init learning-artifacts/retrieval-evaluation-lab
python3 scripts/project_test.py retrieval-evaluation-lab \
--stage 1 --path learning-artifacts/retrieval-evaluation-lab --strict
python3 scripts/project_test.py retrieval-evaluation-lab \
--all --path learning-artifacts/retrieval-evaluation-lab --strict
Keep: a reproducible comparison with per-query deltas and the judgments used to score them. Metrics describe those judgments; they do not establish answer correctness.
Start the project · Inspect the reference · Run on your own inputs
A supplied trace still takes 100 ms, but total token usage rises by 200 and one span starts failing. Separate overlapping child work from parent execution time, then produce a report that exposes the change.
Use Node.js 22.18+ and Python 3 for the grader. Implement JSONL parsing, parent validation, interval arithmetic, then an inspectable timeline.
python3 scripts/project_test.py agent-trace-debugger \
--init learning-artifacts/agent-trace-debugger
python3 scripts/project_test.py agent-trace-debugger \
--stage 1 --path learning-artifacts/agent-trace-debugger --strict
python3 scripts/project_test.py agent-trace-debugger \
--all --path learning-artifacts/agent-trace-debugger --strict
Keep: the input trace, an HTML timeline, and a JSON regression report. Preserve exclusive per-span token counts so parent and child usage are not counted twice.
Start the project · Inspect the reference · Explore timing interactively
A write changes after review, or an approval is replayed. Validate the call envelope, check the caller's role and path, then consume an approval bound to the exact request and content.
Use Rust and Python 3.10+. Review tool schema design and security boundaries. The caller application supplies identity; the model proposes an operation.
python3 scripts/project_test.py tool-call-firewall \
--init learning-artifacts/tool-call-firewall
python3 scripts/project_test.py tool-call-firewall \
--stage 1 --path learning-artifacts/tool-call-firewall --strict
python3 scripts/project_test.py tool-call-firewall \
--all --path learning-artifacts/tool-call-firewall --strict
Keep: an audit receipt showing the requested operation and the policy decision. Approvals are single-use within one invocation; this project does not provide persistent authorization or an operating-system sandbox.
Start the project · Inspect the reference · Explore approval boundaries
Browse all projects · Career practice guide
Choose how to learn
On the website
Open any completed lesson on aiengineeringfromscratch.com or expand a phase under Contents. No setup, no cloning.
With an AI tutor
If Node.js, npx, and a skill-capable coding agent are already installed, your coding agent can become your tutor. A repository clone is not needed to install or read the tutor. Runnable focused-path labs need python3. Agent Skills host labs also need a selected host and a writable user or project skill scope.
npx skills add rohitg00/ai-engineering-from-scratch
Choose the host and scope when the installer asks. Use start-learning in Codex, /start-learning in Claude Code, or ask your host to use the skill by name.
Check the local requirements first:
node --version
npx --version
python3 --version
skills writes to the host and scope selected during installation, such as
.claude/skills/, .cursor/skills/, .codex/skills/, or another supported
skills folder. Verify that the selected host discovers that exact destination.
Invocation syntax belongs to the host, not to the portable SKILL.md format:
A ten-question placement quiz maps what you already know to a starting phase and
saves a personalized study plan to LEARNING.md. From there, the learn skill
teaches one lesson per session: concept, math, code, quiz. It streams lessons
straight from this repo, and the course-guide skill jumps you to the exact
lesson that covers anything you are stuck on. In Codex, invoke these skills with
learn and course-guide; in Claude Code, use /learn and /course-guide;
in other compatible hosts, ask to use the skill by name.
Only want Model Context Protocol (MCP)? Use the MCP invocation for your host. It creates
MCP-LEARNING.md and follows one 17-lesson route through stateless
requests, transports, bidirectional work, security, reliability, registry
governance, and conformance evidence. The exact order and checkpoints live in
the Model Context Protocol (MCP) manifest.
Only want Agent Skills? Use the Agent Skills invocation for your host. It
creates AGENT-SKILLS-LEARNING.md and follows one coherent five-lesson route:
contract, discovery, invocation, sandbox boundaries, then release evals and
real-host portability. Start on the web with the
Agent Skills path.
The installer lists the hosts it can configure and asks where to install. If
you do not have Node.js, npx, python3, a supported host, or a writable
scope yet, use the website or read docs/en.md manually. That path teaches the
concepts, but real-host discovery, invocation, script, and uninstall evidence
remains pending until the preflight is available. Read the lessons at
aiengineeringfromscratch.com.
The learning skills
Run local code
git clone https://github.com/rohitg00/ai-engineering-from-scratch.git
cd ai-engineering-from-scratch
python3 phases/00-setup-and-tooling/01-dev-environment/code/verify.py --route beginner
python3 phases/01-math-foundations/01-linear-algebra-intuition/code/vectors.py
The preflight separates requirements needed now from tools needed later. Every
required failure includes the detected reason and a corrective command. The
vectors.py command is a dependency-free lesson and ends by showing that a matrix
times a vector is the operation inside a neural network layer. Save that
terminal output as your first evidence.
Use every lesson the same way
- Read
docs/en.mdand explain the core idea in your own words. - Type and build the important code instead of treating the code block as decoration.
- Run the lesson command from the repository root, the directory containing
README.mdandphases/. - Keep evidence: the command, working directory, exit code, meaningful output, and the artifact you changed or produced.
- Continue only when you can explain the output and make one small change without guessing.
Commands in lesson pages are paths from the repository root unless the lesson explicitly says to change directories. If a lesson offers several languages, run the implementation for the language you are learning.
Choose a learning path
You do not need to scan 542 lessons before beginning. Pick one goal. Each link opens the same curriculum on GitHub or the website, and both versions use the same lesson code.
Not sure where you fit? Use the start-learning placement tutor
or the website prerequisites guide.
Compare four core domains and six career routes in the AI Engineering Learning Paths.
Prerequisites
- You can write code (any language; Python helps).
- You want to understand how AI actually works, not just call APIs.
Where to start
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
classDef phase fill:#fafaf5,stroke:#3553ff,color:#1a1a1a
class P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19 phase
Contents
Twenty phases. Click any phase to expand its lesson list.
Phase 0: Setup & Tooling 13 lessons
Get your environment ready for everything that follows.
Lessons 06-18 and 28-31 form the focused
Model Context Protocol (MCP) path. Its manifest order
is 06, 07, 08, 09, 10, 11, 12, 13, 14, 15, 16, 18, 17, 28, 29, 30, 31. Start
it with the host-specific learn-mcp invocation above. Lesson 23
is its only optional capstone and also requires Lessons 19 and 20.
Lessons 22 and 24-27 form the focused
Agent Skills learning path, from package
contract through real-host release gates. Start it with the host-specific
learn-agent-skills invocation shown above; do not follow numeric next
navigation from 22 to 23.
Each Phase 14 workbench lesson (31-42) ships a mission.md briefing the agent before it opens the full lesson docs.
Lessons 31-46 form the Agent-Assisted Engineering path. Its manifest order combines the workbench foundation with task framing, planning, delegation, and durable feedback. Lessons 47-54 form the Product Judgment and Delivery path, from outcome framing through evidence, risk, scope, measurement, staged release, and feedback ownership.