Groundwork

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.

When you'll want this You have the tools running and now need a progressive route for web, apps, games, generative media, Apple, Rust, Python, ML, LLMs, or deeper engineering practice.
The rule

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 contractStart 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 loopAsk for inspection and a plan, let the agent make a narrow edit, review the diff, run verification, then commit.
Reusable procedureWhen a workflow becomes repeatable and easy to mess up, move it into skills/ instead of copying instructions into every AI tool.
Learning memorySave hard-won lessons in the knowledge base so future learners, teammates, and agents can find them again.

#The learning loop

LearnRead the official docs or watch one focused lesson. Keep the scope small: one concept, one feature, one bug.
BuildMake a tiny working version by hand. For deep learning assignments, turn off AI autocomplete while writing the core code.
AskUse an agent to explain confusing lines, generate tests, or compare two approaches. Ask it to teach, not just finish.
VerifyRun the app, tests, typecheck, linter, or notebook. Review the diff before keeping changes.
RememberSave 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.

#Pick a route

#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 TutorialsBest first Apple path. Build real screens while learning state, navigation, lists, controls, and app structure.
Apple Developer DocumentationThe canonical reference for Swift, SwiftUI, UIKit/AppKit, frameworks, entitlements, and platform APIs.
Human Interface GuidelinesDesign rules for apps that feel native on Mac, iPhone, iPad, and Apple Watch.
Certificates and profilesApple's account help for signing certificates, identifiers, provisioning profiles, devices, and capabilities.
100 Days of SwiftUIFree beginner-to-intermediate daily course. Hacking with Swift+ is a useful paid path if you want more structure.
Xcode betas

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.

1

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.

2

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 LearnOfficial React path. Start here for components, props, state, effects, and thinking in React.
Next.js LearnOfficial guided course for routing, server rendering, data fetching, forms, auth, and deployment patterns.
Node.js LearnOfficial Node learning material for runtime basics, package management, debugging, security, and APIs.
TypeScript HandbookThe source of truth for types, narrowing, generics, modules, and how JavaScript maps into TypeScript.
Frontend MastersPaid, high-quality video courses for React, TypeScript, Next.js, Node, testing, design systems, and senior web topics.
1

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.

2

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 trackA substantial one-week Three.js arena shooter: movement, weapons, enemy AI, HUD, spatial audio, optimization, and deploy.
Groundwork FPS Unity trackThe same one-week shooter arc in Unity 6: CharacterController, ScriptableObject weapons, NavMesh enemies, UI, profiling, and WebGL build.
Unity AIOfficial 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 UnityFree open-source Unity MCP bridge for Claude, Cursor, Codex, Copilot, and other MCP-capable assistants.
Unity LearnFree official pathways. Start with Unity Essentials, then Create with Code and Junior Programmer.
Code Monkey free coursesFree C# and Unity video courses that pair well with the AI-assisted track.
itch.io game jamsFree 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 trackA 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 · docsNode-based workflow control for serious local image and video generation. Treat saved workflows like project artifacts.
Hugging Face diffusers · LearnThe code-first route for diffusion models, pipelines, schedulers, and practical open-model workflows.
fal.ai · ReplicateHosted multi-model APIs for fast experiments and product integration when local GPU work is not the point.
Black Forest Labs · Stability AI · Hugging Face modelsModel 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 BookOfficial first path. Ownership, borrowing, enums, traits, error handling, testing, and cargo.
RustlingsSmall exercises that make syntax and ownership rules stick.
Rust by ExampleQuick 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 TutorialOfficial tutorial. Good enough for beginners, still useful as a refresher for experienced developers.
mise Python docsInstall and switch Python versions per project, without using the macOS system Python.
uv docsModern Python package, project, script, tool, and virtualenv management. This is the fastest path for repeatable Python work.
pytest docsTesting foundation for scripts, packages, APIs, and ML-adjacent code.
JupyterInteractive 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 LearningBest hands-on first ML course for builders. It starts with working models and explains theory as needed.
PyTorch TutorialsOfficial PyTorch learning path for tensors, autograd, models, training loops, and deployment basics.
Stanford CS229Use as selective backfill for probability, linear algebra, optimization, supervised learning, and generalization.
Full Stack Deep LearningPractical production ML: data, training, deployment, monitoring, teams, and operational tradeoffs.
Made With MLProduction ML engineering patterns with notebooks, testing, packaging, and deployment concerns.
DeepLearning.AIFree 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 GenAILight warm-up: intro, prompting, RAG/fine-tuning vocabulary, risks, copyright, and future-of-work context.
Stanford CS336Main path. Language modeling from scratch: data, tokenization, transformers, training, evaluation, and deployment.
Stanford CME295Gentler bridge into transformers and LLMs if CS336 feels too steep on the first pass.
Stanford CS153Frontier AI systems: energy, silicon, cloud, models, apps, security, deployment, and the one-person frontier lab idea.
Stanford CS25Seminar and current research talks. Watch selectively after the transformer basics land.
Stanford CME296Later branch for diffusion, vision, image generation, video, and multimodal work.
Hugging Face LearnPractical ecosystem courses for transformers, datasets, agents, diffusion, and open-source model workflows.

Recommended Stanford-centered order

1Harvard HKS GenAI sessions 1, 4, and 5 for quick orientation: what GenAI is, prompting, RAG, fine-tuning, and future-of-work framing.
2Stanford CS336 Lectures 1-4: tokenization, PyTorch shapes, FLOPs, memory, architecture, attention, and mixture-of-experts vocabulary.
3CS336 Assignment 1, simplified if needed: tokenizer, model, optimizer, tiny language model, and a minimal training loop.
4CS229 selective backfill only when CS336 exposes a gap: loss, gradients, probability, optimization, softmax, overfitting, and representations.
5CS336 Lectures 5-12: GPUs, kernels, parallelism, scaling laws, inference, and evaluation.
6CS153 selected talks after inference basics: AI infrastructure, deployment, security, cloud, economics, and platform strategy.
7CS336 Lectures 13-17: data, filtering, deduplication, post-training, RLHF/RLVR, safety, and alignment.
8CS25 selected talks after the foundations: current transformer research, applications, and research taste.
9CME296 only when diffusion, image, video, or multimodal models become important.
First LLM milestone

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 newDo 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 developerBuild 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 developerFocus on architecture, deployment, observability, security, evals, data quality, cost controls, team workflow, and teaching others through small repeatable exercises.
AI platform pathUse 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 contextStart agents inside the repo, reference files by path, and ask for a plan before broad edits. See Editors & AI.
Keep one source of truthProject behavior belongs in AGENTS.md; human learning belongs in docs/; reusable agent workflows belong in skills/.
Demand verificationAsk agents to run tests, typechecks, linters, screenshots, or focused manual checks. Review the commands and the diff.
Separate learning from shippingWhen 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 lessonAfter each project or course unit, save a short note: concept, commands, gotchas, links, and one practice drill for next time.