Curricula
Every curriculum on the site, grouped by discipline. A curriculum is an ordered set of courses that covers one discipline from start to finish.
Computer Science
- Computer Science A curriculum spanning from the foundations of computation to algorithms and systems, building theory and practice together. 8 courses
- Linux and System Administration A curriculum reaching from the command line to shell programming, system administration, network troubleshooting and kernel interfaces. 5 courses
- Computer Networks A curriculum that explains the movement of data between two endpoints with a layered model, from the physical medium up to the application protocol. 6 courses
- Software Development Practice A curriculum that disciplines how code is produced, reviewed, documented, and how its history is managed within a team. 5 courses
- JavaScript and TypeScript A curriculum that establishes the value model, the asynchronous execution model, and the type layer of the language that runs on both the browser and the server. 6 courses
- Python A curriculum that establishes the data model, the type layer, and the concurrency options of a general-purpose language that puts readability first. 5 courses
- Java and the JVM Ecosystem A curriculum that establishes a statically typed, object-oriented language running on a managed runtime, and the enterprise layer built on top of it. 6 courses
- Go A curriculum that establishes server-side software development through simple syntax, explicit error handling and a concurrency model defined in the language itself. 5 courses
- Rust A curriculum that establishes memory safety in a language without a garbage collector through the ownership model, where the compiler draws that guarantee from, and what the guarantee brings to how the program is written. 5 courses
- C and C++ A curriculum that establishes the two languages standing closest to the hardware through the stages a source passes as it becomes a program, memory managed by hand, and the cost of abstraction made visible. 6 courses
- PHP A curriculum that establishes server-side PHP through an execution model that rebuilds every request from scratch, the channel through which a problem is heard, the object model and standards, sessions and security on the web, application development with a framework, and production quality. 5 courses
- Ruby A curriculum that establishes Ruby through who answers a message in a language where every value is an object and every operation is a message, classes, modules and metaprogramming, application development with a web framework, and packages, testing and the runtime in production. 4 courses
- Frontend Development A curriculum that builds every layer of the interface running in the browser, from document to component and from layout to deployment. 8 courses
- Interface Design and Design Systems A design curriculum reaching from visual principles to user research, and from design systems to accessible component patterns. 4 courses
- Backend Development A curriculum that builds the server-side application answering a request, together with its API contract, data access, authentication, asynchronous processing, observability, and security layers. 8 courses
- Databases A curriculum that teaches how to model and query data correctly, the internals of the relational engine, and when non-relational alternatives are the right fit. 7 courses
- Software Design and Architectural Principles A curriculum that establishes design decisions from code readability to component boundaries at the level of principle, pattern, and rationale; it covers paradigm choice, coupling and cohesion criteria, design patterns, and domain-driven modeling. 6 courses
- System Design and Distributed Systems A curriculum that designs multi-component systems along the axes of scale, latency, consistency, and failure behavior; it justifies the decisions at every step from the traffic layer to the data layer by separating assumption, calculation, and measurement, and it also teaches how a design is communicated. 7 courses
- Software Architecture A curriculum that treats the architectural decision as a role and a process: separating the levels of architecture by decision scope, the practice of striking balance and simplifying, recording a decision together with its rationale and scoring the trade-off along quality axes, documenting the system through different views, integration and the buy-or-build decision in an enterprise context, testing quality attributes continuously with fitness functions, and the effect of process, team structure, and delivery responsibility on architecture. 5 courses
- Software Quality and Testing A curriculum that systematically tests software's correctness and its non-functional attributes; it settles test levels, test design techniques, unit testing, and test-driven development into team practice. 5 courses
- DevOps and Platform Engineering A curriculum that turns software's path to production into a measurable system: delivery metrics constraining one another, where the difference between environments hides, build artifact immutability, container isolation and image layers, the reconciliation loop of cluster orchestration, continuous integration and delivery pipelines, declarative infrastructure provisioning, configuration management, observability, and platform engineering's effect on developer experience. 8 courses
- Cloud Computing What renting infrastructure instead of buying it gains, and which decision is given up in exchange: service and deployment models, the shared responsibility boundary, the separation of region and availability zone, pricing models, virtual machines, networking, storage and managed data services, function-based compute and edge runtimes, identity and access policies, encryption, audit logs, cost accounting, quotas, and vendor lock-in. 5 courses
- Cybersecurity A measurable frame for protecting an asset against a threat: the confidentiality, integrity, and availability axis, separating asset, threat, vulnerability, and risk, counting the attack surface, the principles of defense in depth, least privilege, isolation, and zero trust, the isolation boundaries of systems and virtualization, the weaknesses of network protocols and perimeter defense, cryptography, public key infrastructure and enterprise identity, endpoint hardening and log analysis, the attack lifecycle and the threat landscape, the authorized penetration testing process, security operations, incident response and forensics, cloud security and governance, and the risk and compliance layer. 10 courses
- Application Security and DevSecOps Embedding security into every stage of the software development lifecycle and measuring the price that differs at each stage: the gain and the limit of shifting left, abuse cases, threat modeling, the data flow diagram and trust boundaries, attack trees, what input validation and output encoding cover, injection, template injection, file upload, server-side request forgery and deserialization risks, identity, session and authorization implementation flaws, race conditions, secrets embedded in code and dependency risks, static and dynamic security testing, dependency and image scanning, the software bill of materials, build artifact signing and provenance, runtime defense layers, the secret lifecycle and workload identity, detection from application telemetry, breach response and the automation of audit evidence. 5 courses
- Data Analytics Measuring, at every step of the path from raw data to a decision-supporting finding, how many different numbers two defensible decisions produce for the same question: the data each kind of analytics requires, the summary each measurement scale permits, the rows a data quality threshold eliminates, transformation with formulas and pivot tables in a spreadsheet and the limits of the spreadsheet, data collection, cleaning and transformation decisions, analysis with array and data frame interfaces, exploratory analysis and applied statistics, chart design, reporting and analysis at scale. 6 courses
- Machine Learning and Data Science Reading the number a model produces together with the number a procedure dumber than it produces on the same measure: the labels each kind of learning asks for, the two separate numbers measured on the training set and on a held-out set, the difference a feature adds against what leakage inflates, the share of the model family and the tuning budget, what the baseline is when there are no labels, what capacity adds and what training practice carries, the baselines of the language and vision domains, what a random policy and the most popular recommendation come to, and who the baseline was chosen for. 8 courses
- AI Engineering Measuring the apparatus built around a component you did not train, cannot see inside of, and that can give two different answers to the same input: the number of the bare call, what the apparatus adds, and what the apparatus costs as tokens, calls, steps and share of failures. The surface of the model and its token cost, prompt design and reasoning techniques, building production-quality applications with model endpoints, retrieval-augmented generation with embedding vectors, the architecture and memory of tool-using agents, the structure of the tool server protocol, and measuring the defense layers against the attack surface specific to language models. 7 courses
- Data Engineering and MLOps Measuring a pipeline that reports when it crashes but says nothing when it carries wrong data: a data pipeline's number is not the rows it carries, it is how many steps later a wrong row is caught. Turning the stages of the lifecycle and the quality dimensions into measurable checks, the effect of the storage layout on query cost across the warehouse, lake and lakehouse approaches, the rerunnability of ingestion, transformation and orchestration, partitioning and performance in distributed processing, the reproducibility and deployment of model training, and the governance of a model in production with drift monitoring. In every lesson the unchecked pipeline, the checked pipeline and the cost of the check itself stand side by side. 6 courses
- iOS Development A curriculum that establishes iOS application development through the type system, value and reference semantics and memory model of the Swift language, the structure and development tools of the iOS platform, declarative interfaces with SwiftUI, UIKit and bridging, the data, networking and concurrency layer, and architecture, testing and release. 6 courses
- Android Development A curriculum that establishes Android application development through the null safety, class kinds and collection model of the Kotlin language, the component structure and development tools of the Android platform, declarative interfaces with Jetpack Compose, architecture components and the data layer, platform services, and testing, performance and release. 6 courses
- Cross-Platform Mobile Development A curriculum that teaches the approaches to building for several mobile platforms from a single codebase, the limits of code sharing, bridge-based frameworks and frameworks with their own rendering engine, and the production practice of a shared codebase. 4 courses