Creating Courses with AI
AI is potentially great for learning; though it can also be terrible in various ways, often making it easy to skip to the end and not put in the learning effort. Here are a few tips and then some examples of resources I've created.
- What topics? Given powerful recent models and the effort the labs put into training them on technical topics, topics related to programming in particular seem to work really well. I think for more established areas you are probably better off with books written before 2025!
- Which models? Use at least Opus 5.5 or Sol 6.1: the writing is much better than with previous models and they are much more reliable for things like diagrams or examples. I've often used one of these models, then had Astra do a pass to make the language clearer and more concise.
- How to generate? I usually start with a Vite React project. The models will generate good plain HTML, but a React project allows for componentisation around interactive examples and exercises.
- If you really want to learn, you are going to have to put in effort. A lot of AI tools are great at shifting modalities or generating summaries (like NotebookLM), but they don't actually seem to work well for learning. Build in flashcards (tracking performance) and quizzes or other interactive challenges. You can easily embed live Python (WebAssembly) or TypeScript challenges in pages or at least have challenges that are easy to copy and paste to try elsewhere. Or try making a game out of it: you could even take it to extremes and build something like The Typing of the Dead!
- Publish? For low usage, I've found Cloudflare Pages is free, simple and reliable.
Examples
Here are some examples I've created with AI and made public (I have many other projects which are not!).
Event Streaming with Kafka
Ten illustrated lessons on event streaming and Apache Kafka, from the log and partitions through to delivery guarantees, stream processing and event-driven patterns. Each lesson ends with a TypeScript coding challenge that runs against a Kafka simulator in your browser.
Observability for Software Engineers
Sixteen lessons on understanding and debugging production systems: metrics, logs and traces, OpenTelemetry, sampling, SLOs and alerting, then applying them to real investigations and to AI systems. Every lesson has interactive examples.
Observability for Software Engineers
An Introduction to Software Architecture
Twelve lessons (around eight hours) on the decisions that shape software systems and the trade-offs behind them. Each one follows Larder, a fictional online grocer, as it grows from a single application to fourteen teams.
An Introduction to Software Architecture
Domain-Driven Design
A course in domain-driven design for software engineers, covering ubiquitous language, bounded contexts, context mapping, aggregates, domain events and keeping a model healthy as it evolves.
Systems Thinking for Software
Systems thinking applied to contemporary software engineering: feedback and delay, emergence and failure, finding leverage and what changes when some of the components are non-deterministic AI agents.
SwiftUI Glossary
A guide to what SwiftUI does and what Apple calls it, with flashcards to test your knowledge.
Learn Lean 4
A complete-ish course in both writing proofs with Lean 4 and using it as a programming language. Hundreds of exercises with annotated solutions. Given the lack of high-quality learning resources for Lean 4, I genuinely think this is a top place to start.
The Book of TSL
Around 200 concise examples of getting things done with Three.js Shading Language, covering fragment and vertex shaders, raymarching SDFs, lighting and much more. TSL is quite new and, while there are some good blog posts, I've not really seen many broad references or any books.
Learn Replicad
A tutorial and cheat sheet for Replicad, a system for 3D CAD in JavaScript that runs in the browser.
Learn All The Claude/ChatGPT Codex Commands
A simple flashcard app to improve your fluency with the commands in Claude Code and ChatGPT Codex.
Learn All The Claude/ChatGPT Codex Commands
Python: The New Parts
An interactive series of lessons on the newer features in Python.
You can also find all of these on the projects page.