About This Curriculum
Software engineering is more than writing code that works—it's about writing code that keeps working as requirements change, teams grow, and systems evolve. This curriculum teaches the foundational practices that professional developers use every day: version control, testing, debugging, and collaborative development.
These aren't just tools to learn—they're thinking frameworks that shape how you approach problems. A developer who understands why version control exists thinks differently about change. A developer who writes tests thinks differently about correctness. These mental models compound over your entire career.
Two curricula, one goal. SWE Fundamentals pairs with the Machine Intelligence (LLM) Curriculum. Together, they prepare you to build software in the AI-assisted era—where understanding both engineering principles and AI capabilities is essential.
Curriculum Structure
The curriculum is organized into three tiers of progressive depth. Tier 1 establishes essential foundations during the bootcamp week. Tiers 2 and 3 are introduced as just-in-time learning during project work, when you encounter real needs for these concepts.
Tier 1: Foundations
Essential skills for day one
- Development environment
- Source code basics
- GitHub setup
- Understanding diffs
- Your first commit
Tier 2: Collaboration
Working effectively in teams
- Branches & merging
- Pull requests
- Testing fundamentals
- Debugging techniques
- Dependencies & packages
Tier 3: Professional Practice
Engineering at scale
- Build pipelines
- Observability (O11y)
- Iterative design
- Timeless principles
- Communication & ethics
Learning Materials
Each topic is available in two formats. The slide deck provides structured presentations for guided instruction and discussion. The interactive book offers deeper exploration with embedded exercises, self-check questions, and concept reviews.
Key Themes
Change is inevitable—embrace it
Software that can't change is software that dies. Version control, testing, and modular design aren't bureaucracy—they're how you build systems that survive contact with reality. Every practice in this curriculum helps you change code with confidence.
Tools shape thinking
Git isn't just a backup system. It's a way of thinking about work as a series of meaningful changes. Tests aren't just safety nets. They're specifications that document what your code should do. Understanding the "why" behind tools transforms how you use them.
Collaboration is a skill
Most software is built by teams. Pull requests, code review, and clear commit messages aren't overhead—they're how ideas get refined and knowledge gets shared. Technical excellence means nothing if you can't work effectively with others.