Development
Progressive learning paths for AI-native software development.
Use this as the curriculum layer on top of Groundwork. Learn enough fundamentals to think clearly, build small real projects, and use agents as tutors, reviewers, and pair programmers without letting them replace the learning.
AI-native does not mean skipping basics. It means shortening the feedback loop: ask better questions, inspect diffs, run tests, keep notes, and rebuild the same idea until you can explain it without the agent.
#The Groundwork workflow
| Project contract | Start every serious repo with AGENTS.md: what the project is, how to run it, what "done" means, and what the agent must never touch. |
| Agent loop | Ask for inspection and a plan, let the agent make a narrow edit, review the diff, run verification, then commit. |
| Reusable procedure | When a workflow becomes repeatable and easy to mess up, move it into skills/ instead of copying instructions into every AI tool. |
| Learning memory | Save hard-won lessons in the knowledge base so future learners, teammates, and agents can find them again. |
#The learning loop
| Learn | Read the official docs or watch one focused lesson. Keep the scope small: one concept, one feature, one bug. |
| Build | Make a tiny working version by hand. For deep learning assignments, turn off AI autocomplete while writing the core code. |
| Ask | Use an agent to explain confusing lines, generate tests, or compare two approaches. Ask it to teach, not just finish. |
| Verify | Run the app, tests, typecheck, linter, or notebook. Review the diff before keeping changes. |
| Remember | Save durable notes in the knowledge base: what worked, what failed, commands used, and links worth revisiting. |
#Interest tracks
Use these when motivation matters more than taxonomy. Each one starts with a concrete first project and uses the same prompt, concept, and your-turn rhythm so AI helps without replacing the learning.
FPS Browser
Three.js, Vite, JavaScript, first-person controls, weapons, enemy AI, HUD, performance, and a URL you can share.
gamesFPS Unity
Unity 6, C#, ScriptableObjects, NavMesh, Animator, UI, profiling, WebGL, and itch.io.
webWeb & sites
HTML, CSS, JavaScript, data fetching, components, and a live deploy.
appsApps
Spec-first Next.js app with persistence, tests, diff review, and serverless hosting.
mediaImage & video
Hosted and local model pipelines, reproducible specs, async video jobs, evaluation, and assets that ship.
#Pick a route
macOS and iOS
Swift, SwiftUI, Xcode, app signing, Human Interface Guidelines, and App Store delivery.
web appsReact / Next / Node
TypeScript, components, routing, APIs, databases, tests, deployment, and product UI.
gamesGame development
Browser and Unity routes for real-time interaction, game feel, assets, builds, and jams.
media pipelinesImage & video models
ComfyUI, diffusers, hosted model APIs, reproducibility, async jobs, evaluation, and provenance.
systemsRust
CLI tools, performance-sensitive services, ownership, error handling, and async systems.
automation + dataPython
Scripting, testing, notebooks, APIs, data work, and the bridge into ML.
modelsMachine learning
PyTorch, fast.ai, CS229 backfill, evaluation, datasets, and production habits.
frontier aiLLMs
Stanford CS336 as the backbone, with Harvard orientation and systems courses around it.
#macOS and iOS development
Native Apple development starts with Swift and SwiftUI, but good apps also require understanding Apple's design language, signing, provisioning, privacy prompts, accessibility, and App Store rules.
| SwiftUI Tutorials | Best first Apple path. Build real screens while learning state, navigation, lists, controls, and app structure. |
| Apple Developer Documentation | The canonical reference for Swift, SwiftUI, UIKit/AppKit, frameworks, entitlements, and platform APIs. |
| Human Interface Guidelines | Design rules for apps that feel native on Mac, iPhone, iPad, and Apple Watch. |
| Certificates and profiles | Apple's account help for signing certificates, identifiers, provisioning profiles, devices, and capabilities. |
| 100 Days of SwiftUI | Free beginner-to-intermediate daily course. Hacking with Swift+ is a useful paid path if you want more structure. |
The Mac App Store only ships release Xcode, so update-all and the App Store never see Xcode betas. Betas live on Apple's developer downloads, which you reach by signing in with your Apple Account — a free account is enough, no paid Developer Program membership required, though a given beta program may carry its own terms. If you test pre-release Xcode features, enable Xcode at chezmoi init and answer yes to the beta-channel prompt it then offers (the prompt only appears when Xcode is on). That installs xcodes, which lists and downloads Xcode betas and installs them alongside your release Xcode. Typical flow: xcodes list to see what is available, xcodes install "<version>" to add a beta, and xcodes select to switch the active toolchain (see xcodes --help for the latest-prerelease shortcuts). Keep release Xcode as your default and switch to a beta only when you are testing it. Groundwork never downloads betas for you: you sign in and choose the version, because that Apple Account authentication is an identity boundary the repo leaves to you. When the beta channel is on, update-all just prints a reminder of these commands.
First milestone
Build a small iOS app with a list, detail screen, form, local persistence, and one network request. Use an agent to explain SwiftUI state changes, then write the next screen yourself.
Senior path
Practice app architecture, background work, accessibility, privacy prompts, testability, crash reporting, performance in Instruments, and release automation.
#React, Next.js, Node, and TypeScript
This is the main product-development stack for the repo: TypeScript for clarity, React for interfaces, Next.js for full-stack web apps, Node for scripts and services, and agents for tests, refactors, and project scaffolding. If you want a concrete first project, start with Web & sites, then Apps.
| React Learn | Official React path. Start here for components, props, state, effects, and thinking in React. |
| Next.js Learn | Official guided course for routing, server rendering, data fetching, forms, auth, and deployment patterns. |
| Node.js Learn | Official Node learning material for runtime basics, package management, debugging, security, and APIs. |
| TypeScript Handbook | The source of truth for types, narrowing, generics, modules, and how JavaScript maps into TypeScript. |
| Frontend Masters | Paid, high-quality video courses for React, TypeScript, Next.js, Node, testing, design systems, and senior web topics. |
First milestone
Build a tiny Next.js app with a typed form, server action or API route, database persistence, error states, loading states, and tests. Ask an agent for a test plan before writing code.
Senior path
Study caching, accessibility, performance budgets, design systems, observability, database migrations, auth, deployment previews, security headers, and cost-aware AI features.
#Game development
Game development is a strong AI-native learning path because feedback is visible: the agent creates a scene, writes a script, and you immediately feel whether it works. The browser track is the code-first route where agents are strongest; the Unity track is the industry-engine route where agents write C# and architecture while you drive the editor and assets.
| Groundwork FPS Browser track | A substantial one-week Three.js arena shooter: movement, weapons, enemy AI, HUD, spatial audio, optimization, and deploy. |
| Groundwork FPS Unity track | The same one-week shooter arc in Unity 6: CharacterController, ScriptableObject weapons, NavMesh enemies, UI, profiling, and WebGL build. |
| Unity AI | Official Unity AI beta: Assistant, AI Gateway, and MCP Server for Unity 6. Use after the basics land or when you want official integration. |
| MCP for Unity | Free open-source Unity MCP bridge for Claude, Cursor, Codex, Copilot, and other MCP-capable assistants. |
| Unity Learn | Free official pathways. Start with Unity Essentials, then Create with Code and Junior Programmer. |
| Code Monkey free courses | Free C# and Unity video courses that pair well with the AI-assisted track. |
| itch.io game jams | Free practice with a deadline. Finishing small games builds taste faster than collecting tutorials. |
First milestone: finish either FPS track, publish a browser-playable build, then add one feature from a spec before asking the agent to code it.
#Generative media engineering
Image and video creation belongs here when it is treated as development: model calls behind interfaces, reproducible prompts and seeds, versioned workflows, manifests, cost controls, and assets integrated into software. If you only want one-off pictures, a consumer app is faster. If you want to build with media models, use this route.
| Groundwork Image & video track | A substantial one-week build: hosted or local setup, structured prompts, ControlNet/LoRA-style control, spec-driven pipelines, async video jobs, evaluation UI, and shipped assets. |
| ComfyUI · docs | Node-based workflow control for serious local image and video generation. Treat saved workflows like project artifacts. |
| Hugging Face diffusers · Learn | The code-first route for diffusion models, pipelines, schedulers, and practical open-model workflows. |
| fal.ai · Replicate | Hosted multi-model APIs for fast experiments and product integration when local GPU work is not the point. |
| Black Forest Labs · Stability AI · Hugging Face models | Model sources and model cards. Check licenses, intended use, and commercial terms before shipping generated output. |
First milestone: finish the image/video track, generate a reproducible asset set from a spec file, integrate it into the FPS or web track, and commit the prompt, seed, model, and manifest records beside the output.
#Rust
Use Rust when correctness, packaging, memory safety, and performance matter: CLIs, dev tools, high-throughput services, parsers, and parts of the stack where Python or Node feel too loose.
| The Rust Book | Official first path. Ownership, borrowing, enums, traits, error handling, testing, and cargo. |
| Rustlings | Small exercises that make syntax and ownership rules stick. |
| Rust by Example | Quick examples when you understand a concept but need to see the syntax. |
First milestone: rewrite a small shell helper as a Rust CLI with clap, tests, helpful errors, and a release build. Ask an agent to review the error handling and command help text.
#Python
Python is the glue language for automation, data, notebooks, ML experiments, and many AI toolchains. Learn plain Python well before leaning on frameworks. In this setup, mise installs the baseline Python interpreter and uv manages project dependencies, virtual environments, scripts, and Python CLI tools.
| Python Tutorial | Official tutorial. Good enough for beginners, still useful as a refresher for experienced developers. |
| mise Python docs | Install and switch Python versions per project, without using the macOS system Python. |
| uv docs | Modern Python package, project, script, tool, and virtualenv management. This is the fastest path for repeatable Python work. |
| pytest docs | Testing foundation for scripts, packages, APIs, and ML-adjacent code. |
| Jupyter | Interactive notebooks for learning, exploration, data work, and ML experiments. |
First milestone: create a small package with uv init, pin Python with mise use python@3.13 if the project needs it, add a CLI command, typed functions, pytest coverage, and one notebook that calls the package instead of hiding the logic inside notebook cells.
#Machine learning
For software developers, the goal is not to become a researcher first. The goal is to understand data, loss, optimization, evaluation, deployment, and failure modes well enough to build and review AI systems responsibly.
| fast.ai Practical Deep Learning | Best hands-on first ML course for builders. It starts with working models and explains theory as needed. |
| PyTorch Tutorials | Official PyTorch learning path for tensors, autograd, models, training loops, and deployment basics. |
| Stanford CS229 | Use as selective backfill for probability, linear algebra, optimization, supervised learning, and generalization. |
| Full Stack Deep Learning | Practical production ML: data, training, deployment, monitoring, teams, and operational tradeoffs. |
| Made With ML | Production ML engineering patterns with notebooks, testing, packaging, and deployment concerns. |
| DeepLearning.AI | Free and paid short courses and specializations. Good when you want a guided sprint on one topic. |
#LLMs and frontier AI
Use Stanford as the technical backbone and Harvard as orientation. The point is to move from vocabulary to implementation: tokens, tensors, embeddings, attention, loss, training, inference, evaluation, data, post-training, and serving economics.
| Harvard HKS GenAI | Light warm-up: intro, prompting, RAG/fine-tuning vocabulary, risks, copyright, and future-of-work context. |
| Stanford CS336 | Main path. Language modeling from scratch: data, tokenization, transformers, training, evaluation, and deployment. |
| Stanford CME295 | Gentler bridge into transformers and LLMs if CS336 feels too steep on the first pass. |
| Stanford CS153 | Frontier AI systems: energy, silicon, cloud, models, apps, security, deployment, and the one-person frontier lab idea. |
| Stanford CS25 | Seminar and current research talks. Watch selectively after the transformer basics land. |
| Stanford CME296 | Later branch for diffusion, vision, image generation, video, and multimodal work. |
| Hugging Face Learn | Practical ecosystem courses for transformers, datasets, agents, diffusion, and open-source model workflows. |
Recommended Stanford-centered order
| 1 | Harvard HKS GenAI sessions 1, 4, and 5 for quick orientation: what GenAI is, prompting, RAG, fine-tuning, and future-of-work framing. |
| 2 | Stanford CS336 Lectures 1-4: tokenization, PyTorch shapes, FLOPs, memory, architecture, attention, and mixture-of-experts vocabulary. |
| 3 | CS336 Assignment 1, simplified if needed: tokenizer, model, optimizer, tiny language model, and a minimal training loop. |
| 4 | CS229 selective backfill only when CS336 exposes a gap: loss, gradients, probability, optimization, softmax, overfitting, and representations. |
| 5 | CS336 Lectures 5-12: GPUs, kernels, parallelism, scaling laws, inference, and evaluation. |
| 6 | CS153 selected talks after inference basics: AI infrastructure, deployment, security, cloud, economics, and platform strategy. |
| 7 | CS336 Lectures 13-17: data, filtering, deduplication, post-training, RLHF/RLVR, safety, and alignment. |
| 8 | CS25 selected talks after the foundations: current transformer research, applications, and research taste. |
| 9 | CME296 only when diffusion, image, video, or multimodal models become important. |
You should be able to explain or implement tokenization, token IDs, embeddings, logits, softmax, cross-entropy loss, attention, MLP/FFN, a transformer block, a tiny training loop, and a basic inference loop.
#Practice plans by experience level
| Brand new | Do Command line & Unix, Practice plan, React Learn basics, Python Tutorial basics, and one tiny web app. Use AI to explain terms and generate quizzes. |
| Working developer | Build one Next.js app, one Python package, one Rust CLI, one reproducible media pipeline, and one agent-assisted feature from issue to tests to PR. Keep notes in the wiki. |
| Senior developer | Focus on architecture, deployment, observability, security, evals, data quality, cost controls, team workflow, and teaching others through small repeatable exercises. |
| AI platform path | Use CS336 as the core, CS229 as backfill, CS153 for systems, Full Stack Deep Learning for production ML, Hugging Face for practical ecosystem fluency, and the image/video track for multimodal pipeline practice. |
#AI-native development habits
| Prompt from context | Start agents inside the repo, reference files by path, and ask for a plan before broad edits. See Editors & AI. |
| Keep one source of truth | Project behavior belongs in AGENTS.md; human learning belongs in docs/; reusable agent workflows belong in skills/. |
| Demand verification | Ask agents to run tests, typechecks, linters, screenshots, or focused manual checks. Review the commands and the diff. |
| Separate learning from shipping | When learning fundamentals, write the core code yourself and use the agent as a tutor. When shipping, let the agent draft more, but inspect everything. |
| Capture the lesson | After each project or course unit, save a short note: concept, commands, gotchas, links, and one practice drill for next time. |