Learn by doing.
Interactive courses that run in your browser.
Write code, get instant feedback.
Systems & Low-Level — Curriculum
Understand how computers work at the metal — from ARM64 assembly to a C compiler, Linux shell, and kernel primitives.
Mathematics in C — Curriculum
Implement university mathematics in C — from limits and integrals to Taylor series and curvature. Each course builds on the previous.
Quantitative Finance — Curriculum
Build the complete quantitative finance toolkit from scratch in Python — from time value of money to live trading strategies.
Languages
Go
Learn the Go programming language from scratch. Build fast, reliable software with Go's simple syntax, built-in concurrency, and powerful standard library.
Zig
Learn the Zig programming language from scratch. Master manual memory management, comptime metaprogramming, and zero-cost abstractions.
Rust
Master Rust from scratch. Implement ownership, borrowing, structs, enums, traits, generics, closures, iterators, and collections — the systems language that guarantees memory safety without a garbage collector.
C++
Learn C++ from scratch. Master object-oriented programming with classes, inheritance, virtual functions, and templates — compiled and run in your browser.
Java
Learn Java from scratch. Master variables, strings, arrays, OOP, generics, and collections — the language powering Android, Spring, and enterprise software worldwide.
Kotlin
Learn Kotlin from scratch — variables, functions, data classes, collections, and higher-order programming. The modern language for Android, JVM, and multiplatform development.
C#
Learn C# from scratch. Master variables, control flow, collections, OOP, generics, and LINQ — one of the most versatile languages for enterprise software, games, and cloud services.
Swift
Learn Swift from scratch — variables, optionals, closures, structs, enums, classes, and protocols. Apple's modern language for iOS, macOS, and beyond.
Elixir
Learn Elixir from scratch — pattern matching, functions, modules, pipes, and functional collections. Runs in your browser via a JS transpiler.
Scala
Learn Scala from scratch — values, pattern matching, functions, recursion, collections, and OOP. Runs in your browser via a JS transpiler.
F#
Learn F# from scratch — values, pattern matching, functions, recursion, collections, records, and discriminated unions. Runs in your browser via a JS transpiler.
Python
Learn Python from the ground up. Master strings, lists, dictionaries, OOP, generators, and the standard library — the language powering AI, data science, and web development.
Gleam
Learn the Gleam programming language from scratch. Build type-safe, functional programs with pattern matching, the pipe operator, and the Result type.
Ruby
Learn Ruby from scratch. Master variables, strings, arrays, hashes, iterators, classes, and modules — the expressive language behind Rails, GitHub, and Shopify.
Haskell
Learn Haskell from the ground up. Master pure functions, pattern matching, list comprehensions, folds, lambdas, and the Maybe type — the language that makes functional programming beautiful.
Lean
Learn Lean 4, the language that bridges functional programming and formal mathematics. Master definitions, pattern matching, recursion, and higher-order functions — the foundation of machine-verified proofs.
HolyC
Learn HolyC, the programming language Terry Davis created for TempleOS. Explore range switches, default arguments, compile-time #exe blocks, and a direct relationship with the machine.
Lua
Learn Lua from scratch — variables, control flow, functions, closures, tables, metatables, and modules. Runs in your browser via a JS transpiler.
Perl
Learn Perl from scratch — scalars, arrays, hashes, control flow, subroutines, string operations, and regular expressions. Runs in your browser via a JS transpiler.
OCaml
Learn OCaml from scratch — let bindings, pattern matching, recursion, lists, options, and modules. Runs in your browser via a JS transpiler.
Web & Frontend
HTML
Learn HTML from scratch. Master elements, attributes, forms, tables, and semantic markup — all rendered live in your browser.
CSS
Learn CSS from scratch. Master selectors, the box model, flexbox, grid, animations, and responsive design — rendered live in your browser.
Tailwind CSS
Learn Tailwind CSS from scratch. Build beautiful UIs with utility classes — no custom CSS required. Master spacing, flexbox, grid, components, and responsive design.
JavaScript
Learn JavaScript from scratch. Master variables, functions, closures, arrays, and objects — the foundation of the web's most popular language.
TypeScript
Learn TypeScript from scratch. Master type annotations, interfaces, generics, and the type system that makes large-scale JavaScript development reliable.
Three.js
Learn 3D graphics in the browser with Three.js. Build scenes, add lights, animate objects, and render a full solar system — all running live in your browser.
Music Programming
Learn music programming with the Web Audio API. Generate tones, build chords and scales, schedule melodies with precise timing, apply LFOs and gain, and build a drum machine — all in JavaScript.
Data & Databases
PostgreSQL
Learn SQL and PostgreSQL from scratch. Master queries, joins, aggregations, window functions, and database design with a live database in your browser.
MySQL
Learn MySQL from scratch. Master SELECT, WHERE, JOIN, GROUP BY, aggregations, subqueries, and CTEs with a live in-browser database.
SQLite
Learn SQLite from scratch. Master queries, schema design, CRUD operations, window functions, and JSON functions in the world's most deployed database.
Redis
Learn Redis from scratch. Master strings, lists, sets, hashes, sorted sets, transactions, and caching patterns — all in a live Redis emulator.
R
Learn the R programming language from scratch. Master vectors, data frames, functions, and data manipulation with R's powerful built-in tools.
Algorithms & Computer Science
Algorithms
Learn essential algorithms from scratch. Master sorting, searching, graph traversal, and dynamic programming — the foundations of every technical interview and production system.
Graphs in Python
Master graph algorithms in Python. Implement BFS, DFS, Dijkstra, Bellman-Ford, topological sort, Union-Find, Kruskal's MST, and PageRank from scratch.
Trees in C
Learn tree data structures by implementing them in C. Build binary trees, master inorder/preorder/postorder traversals, and implement a Binary Search Tree from scratch.
Linked Lists in C
Master linked lists by implementing them from scratch in C. Build nodes with malloc, traverse and mutate lists, and solve classic interview problems: reversal, nth-from-end, and merging sorted lists.
Distributed Systems
Learn distributed systems by implementing them. Build Lamport clocks, consistent hashing, quorum replication, CRDTs, Bloom filters, circuit breakers, and more — in JavaScript.
Ray Tracer
Build a photorealistic 3D ray tracer from scratch in C++. Master the linear algebra of 3D graphics: vectors, matrices, transformations, ray-sphere intersection, and Phong lighting.
Networking
Learn computer networking from scratch — sockets, protocols, TCP/IP, HTTP, and DNS. Build working network programs in JavaScript.
Build an Interpreter
Build a working interpreter from scratch — lexing, parsing, AST construction, and tree-walking evaluation. All in JavaScript.
Mathematics in Python
Linear Algebra in Python
Master linear algebra with NumPy and SymPy. Build vectors and matrices, solve linear systems, compute eigenvalues, fit lines with least squares, and render beautiful equations with SymPy's pprint.
Advanced Linear Algebra in Python
Go beyond the basics of linear algebra by implementing QR decomposition, LU factorisation, Cholesky, power iteration, PCA, matrix exponentials, and the conjugate gradient method in pure Python from scratch.
Statistics in Python
Master statistics with Python. Compute descriptive stats, model distributions, run t-tests and chi-square tests, build confidence intervals, fit regression lines, and estimate uncertainty with bootstrap resampling.
Probability Theory in Python
Master probability theory in Python. Implement sample spaces, Bayes' theorem, random variables, PMFs and PDFs, Bernoulli, Binomial, Poisson, Normal, Gamma, Beta distributions, the Law of Large Numbers, and Markov chains from scratch.
Discrete Mathematics in Python
Master discrete mathematics in Python — the mathematical backbone of CS. Implement propositional logic, set theory, relations, functions, combinatorics (Catalan numbers, Stirling numbers), induction, recurrence relations, generating functions, and graph theory from scratch.
Differential Equations in Python
Solve differential equations numerically in Python. Implement Euler's method and RK4, model exponential decay, logistic growth, oscillations, epidemics, and predator-prey dynamics from scratch.
Number Theory in Python
Master the mathematics of integers with Python. Implement the Euclidean algorithm, prime factorization, the Sieve of Eratosthenes, Euler's totient, the Chinese Remainder Theorem, Fermat's Little Theorem, and RSA encryption from scratch.
Cryptography in Python
Learn cryptography by implementing the algorithms in Python. Build Caesar, Vigenère, and XOR ciphers, Feistel networks, RSA and ElGamal public-key systems, DJB2 hashing, HMAC, Shamir's Secret Sharing, and Schnorr zero-knowledge proofs from scratch.
Signal Processing in Python
Learn digital signal processing by implementing the algorithms in Python. Compute signal power, sample rates, DFT/IDFT, power spectra, windowing, FIR/IIR filters, convolution, cross-correlation, and spectral analysis from scratch.
Information Theory in Python
Learn information theory by implementing Shannon's framework in Python. Compute self-information, Shannon entropy, joint and conditional entropy, mutual information, KL divergence, cross-entropy, Huffman code lengths, channel capacity, and Levenshtein distance from scratch.
Functional Differential Geometry
Learn differential geometry the way Sussman and Wisdom teach it at MIT — by programming it. Implement function composition, numerical derivatives, coordinate systems, Jacobians, tangent vectors, vector fields, one-forms, exterior derivatives, Lie brackets, metrics, Christoffel symbols, parallel transport, the Riemann curvature tensor, and geodesics in pure Python.
Abstract Algebra in Python
Learn abstract algebra from scratch — groups, rings, fields, homomorphisms, and symmetry. Implement algebraic structures in Python.
Real Analysis in Python
Learn real analysis from scratch — sequences, limits, continuity, differentiation, and integration. Implement and visualize every concept in Python.
Classical Physics & Electronics
Classical Mechanics in C
Learn classical mechanics by implementing the algorithms in C. Compute velocity, free fall, projectile range, Newton's laws, friction, energy, momentum, oscillations, and gravitational force from scratch.
Thermodynamics in Python
Learn thermodynamics by implementing the equations in Python. Compute temperature conversions, ideal gas pressures, Carnot efficiencies, entropy changes, Boltzmann distributions, and Maxwell-Boltzmann speeds from scratch.
Waves & Acoustics
Learn wave physics and acoustics in JavaScript. Compute wave periods, Doppler shifts, standing wave harmonics, reverberation times, and acoustic reflection — and hear your results through the Web Audio API.
Electromagnetism in Python
Learn electromagnetism by implementing the equations in Python. Compute Coulomb forces, electric fields, circuit resistance, magnetic fields, Lorentz forces, Faraday induction, RC time constants, LC resonance, and skin depth from scratch.
Circuits in C
Learn analog circuit analysis by implementing the algorithms in C. From Ohm's law to Wheatstone bridges, RC transients, RLC oscillators, and frequency-domain filter design.
Digital Logic
Learn the building blocks of digital circuits in JavaScript. Implement logic gates, Boolean algebra, De Morgan's laws, truth tables, adders, multiplexers, decoders, latches, and binary counters — the foundations of every CPU, FPGA, and microcontroller.
PCB Design
Learn printed circuit board design by implementing the engineering formulas in JavaScript. Compute trace resistance, current capacity, propagation delay, microstrip and stripline impedance, differential pair coupling, via parasitics, decoupling capacitor selection, and signal integrity constraints.
Fluid Mechanics in Python
Learn fluid mechanics by implementing the equations in Python. Compute density, hydrostatic pressure, buoyancy, continuity, Bernoulli flow, Reynolds numbers, drag forces, viscous pipe flow, Stokes drag, and Mach numbers from scratch.
Optics in Python
Learn optics by implementing the equations in Python. Compute refraction angles, mirror and lens image distances, thin film thicknesses, diffraction angles, photon energies, numerical apertures, and optical path lengths from scratch.
Modern & Theoretical Physics
Special Relativity in Python
Learn special relativity by implementing Einstein's equations in Python. Compute Lorentz factors, time dilation, length contraction, relativistic velocity addition, spacetime intervals, relativistic energy, and mass-energy equivalence from scratch.
General Relativity in Python
Learn general relativity by implementing Einstein's equations in Python. Compute Schwarzschild radii, gravitational time dilation, redshift, Hawking temperature, black hole entropy, gravitational lensing, perihelion precession, and gravitational wave strain from scratch.
Quantum Computing
Learn quantum computing from first principles. Simulate qubits, apply quantum gates, create entangled Bell states, and implement Grover's search, the Deutsch algorithm, and the BB84 quantum key distribution protocol — all in Python.
Advanced Quantum Computing
Go beyond basic qubits and gates. Implement advanced single-qubit gates, the quantum Fourier transform, quantum teleportation, superdense coding, Bell inequality, VQE, and QAOA for MaxCut — all in pure Python with NumPy.
Nuclear Physics in Python
Learn nuclear physics by implementing the equations in Python. Compute nuclear radii, binding energies, decay constants, half-lives, radioactive decay, Q-values, Coulomb barriers, cross sections, and fission/fusion energy release from scratch.
Particle Physics in Python
Learn particle physics by implementing the equations in Python. Compute invariant masses, center-of-mass energies, decay widths, branching ratios, Rutherford cross sections, Breit-Wigner resonances, the Weinberg angle, running couplings, and the Higgs mechanism from scratch.
Plasma Physics in Python
Learn plasma physics by implementing the equations that govern ionized gases in Python. Compute Debye shielding, plasma frequency, cyclotron motion, E×B drifts, magnetic mirrors, Alfvén waves, bremsstrahlung, the Saha equation, fusion power density, and Spitzer resistivity from scratch.
Condensed Matter Physics in Python
Learn condensed matter physics by implementing the equations that govern solids in Python. Compute Bragg diffraction, Fermi energies, Fermi-Dirac statistics, Debye and Einstein heat capacities, phonon dispersion, Hall coefficients, semiconductor carrier concentrations, BCS superconductivity, and magnetic susceptibility from scratch.
Biophysics in Python
Learn biophysics by implementing the equations that govern living systems in Python. Compute diffusion coefficients, Nernst potentials, Michaelis-Menten kinetics, FRET efficiency, DNA elasticity, cooperative binding, osmotic pressure, Beer-Lambert absorption, sedimentation coefficients, action potentials, and single-molecule forces from scratch.
Mathematical Physics in Python
Learn mathematical physics by implementing the essential tools of theoretical physics in Python. Compute Fourier series, DFT, Laplace transforms, Legendre/Hermite/Bessel polynomials, the Gamma function, heat and wave equation solutions, Euler-Lagrange equations, Green's functions, perturbation theory, tensor operations, and Monte Carlo integration from scratch.
Science & AI
Machine Learning in Python
Learn machine learning from scratch by implementing the algorithms in Python. Build linear and logistic regression, gradient descent, k-NN, k-means clustering, PCA, perceptrons, activation functions, and model evaluation — no libraries, just pure math.
MicroGPT
Build a GPT from scratch in pure Python. Implement autograd, tokenization, attention, and train a transformer language model — no ML frameworks required.
Genomics
Learn computational genomics from first principles. Implement DNA complement, GC content, ORF finding, transcription, translation, splice site detection, motif search, CpG islands, one-hot encoding, and variant effect prediction — the exact concepts behind Google DeepMind's AlphaGenome.
Cosmology in Python
Learn cosmology by implementing the equations of the universe in Python. Compute Hubble expansion, Friedmann dynamics, redshifts, comoving distances, the CMB temperature history, critical density, matter-radiation equality, the age of the universe, Jeans instability, dark energy, and Planck units from scratch.
Astrophysics in Python
Learn astrophysics by implementing the equations that govern stars, compact objects, and galaxies in Python. Compute stellar luminosity, blackbody spectra, magnitudes, Eddington limits, nuclear timescales, Chandrasekhar mass, orbital mechanics, escape velocities, accretion luminosity, gravitational lensing, galactic rotation curves, and the virial theorem from scratch.
Complex Systems in Python
Learn complex systems science by implementing the core models of chaos, networks, statistical physics, and emergence in Python. Simulate logistic maps, Lorenz attractors, small-world networks, Ising models, cellular automata, random walks, fractals, percolation, self-organized criticality, bifurcations, and agent-based models from scratch.
Chaos Theory in Python
Learn chaos theory by implementing the canonical models of nonlinear dynamics in Python. Simulate tent maps, Lyapunov exponents, Poincaré maps, Rössler attractors, Duffing oscillators, Hénon maps, Van der Pol oscillators, Ikeda maps, fractal dimensions, Mandelbrot sets, Julia sets, Feigenbaum constants, bifurcation diagrams, and chaos synchronization from scratch.