Curriculum
0 → Hero
Follow the tracks in order, or jump to whatever scratches your itch. Every tutorial includes working code, intuitive explanations, and exercises.
foundations
What Is a Qubit? From Classical Bits to Quantum States
A ground-up introduction to qubits for developers who already know code. Bloch sphere, Dirac notation, the normalization constraint, and why a qubit is not just a probabilistic bit — with runnable Qiskit code.
Superposition, Measurement, and the Born Rule
Measurement turns amplitudes into probabilities and destroys superposition. This tutorial walks through the Born rule, measurement in different bases, the no-cloning theorem, and why you can't just peek at a qubit without breaking it — with runnable Qiskit code.
Multi-Qubit Systems and Entanglement
Tensor products, the 2ⁿ-dimensional state space, separable vs entangled states, the four Bell states, and why entanglement is the real secret ingredient of quantum computing. With runnable Qiskit code and a measurement-correlation experiment.
gates and circuits
Unitary Operators and the Universal Gate Set
Quantum gates are unitary matrices — reversible, norm-preserving operations on state vectors. This tutorial proves why, derives the universal {H, T, CNOT} set, and shows why any quantum computation decomposes into these primitives. With full Qiskit verification.
Pauli, Phase, and Rotation Gates
Every single-qubit gate is a rotation of the Bloch sphere. This tutorial derives the Pauli matrices, the phase gates (S, T), and the continuous Rx/Ry/Rz rotation family — and shows how to decompose any single-qubit unitary into three Euler-angle rotations. With visualizations and Qiskit verification.
Multi-Qubit Gates: CNOT, CZ, SWAP, Toffoli, and Controlled Everything
CNOT is the workhorse of entanglement, but the two-qubit gate zoo is richer than that. This tutorial walks through CZ, SWAP, iSWAP, Toffoli, and arbitrary controlled unitaries — plus the decomposition theorems that turn them all into CNOT + single-qubit primitives for real hardware.
OpenQASM 3 and Your First Real Hardware Run
Qiskit circuits are a convenience. OpenQASM 3 is the portable assembly language underneath — and what you actually send to hardware. This tutorial walks through the OpenQASM 3 syntax that matters, IBM Quantum's free tier, transpilation, and how to interpret noisy results honestly on your first real-hardware run.
algorithms
Deutsch-Jozsa: The First Quantum Speedup
The Deutsch-Jozsa algorithm separates constant from balanced Boolean functions in a single query, where classical deterministic algorithms need up to 2ⁿ⁻¹ + 1. This tutorial derives the algorithm from first principles, explains phase kickback, and walks through the full Qiskit implementation plus the Deutsch n=1 special case.
Bernstein-Vazirani and Simon: Learning Hidden Structure in One (or O(n)) Queries
Bernstein-Vazirani learns a hidden bit string in a single query. Simon's algorithm learns a hidden shift with O(n) queries where classical algorithms need exponentially many — and was the direct inspiration for Shor's factoring algorithm. This tutorial derives both from scratch with complete Qiskit implementations.
Grover's Search and Amplitude Amplification
Grover's algorithm finds a marked element in an unstructured list of N items with O(√N) queries — a provable quadratic speedup. This tutorial derives the algorithm geometrically as a rotation in a 2D subspace, gives the exact optimal iteration count, and shows how amplitude amplification generalizes the trick far beyond search.
Quantum Fourier Transform and Phase Estimation
The QFT is the quantum cousin of the classical discrete Fourier transform — but it runs in O(n²) instead of O(n·2ⁿ), which is where many quantum speedups ultimately come from. This tutorial derives the QFT circuit, explains Quantum Phase Estimation (the subroutine inside Shor, HHL, and VQE), and delivers complete Qiskit implementations.
Shor's Algorithm: Factoring, Order-Finding, and the End of RSA
Shor's factoring algorithm reduces integer factorization to the problem of finding the multiplicative order of a random element mod N — and uses quantum phase estimation to solve that in polynomial time. This tutorial derives the full algorithm, runs a small instance in Qiskit, and honestly assesses the real-world resource requirements to break RSA-2048.
variational
Variational Quantum Eigensolver (VQE) From Scratch
VQE finds ground-state energies of quantum Hamiltonians using a hybrid classical-quantum loop. This tutorial derives the variational principle, explains Jordan-Wigner fermion encoding, builds an H₂ ground-state computation end-to-end in Qiskit, and honestly discusses barren plateaus and why the ansatz choice makes or breaks the algorithm.
QAOA for Combinatorial Optimization
QAOA encodes a combinatorial problem as a cost Hamiltonian, prepares a variational state by alternating cost and mixer evolutions, and uses a classical optimizer to find approximate solutions. This tutorial derives the MaxCut case from scratch, runs it in Qiskit, and honestly compares QAOA to classical baselines like Goemans-Williamson.
quantum ml
Quantum ML Foundations: Encoding, Variational Circuits, and the Parameter-Shift Rule
Quantum machine learning trains parameterized quantum circuits as models for classical data. This tutorial covers the three classical-to-quantum encoding strategies, the parameter-shift rule that makes gradient-based training possible, and a complete PennyLane example training a variational classifier on a real dataset.
Quantum Kernels and Feature Maps
Quantum kernels sidestep variational training entirely: they embed data into a quantum Hilbert space via a fixed feature map and use the inner product as a kernel for a classical SVM. This tutorial builds the ZZ feature map from Havlíček et al. 2019, implements a quantum SVC in Qiskit, and explains the reproducing-kernel view that unifies the approach.
Is QML Worth It? A Skeptic's Benchmark
Most published QML results test against toy baselines that serious classical ML would demolish. This tutorial runs a bake-off — variational QML, quantum kernels, XGBoost, and a small MLP — on real tabular data, surveys the 'dequantization' results that have taken quantum advantages back, and gives an honest recommendation on when to reach for QML vs not.
error correction
Noise and Decoherence: What Actually Goes Wrong on Real Qubits
Every tutorial up to here pretended qubits are perfect. They aren't. This tutorial covers the four main noise processes every quantum dev should know cold — relaxation, dephasing, depolarization, and readout error — with their Kraus operator forms, their T₁/T₂ signatures, and a runnable Qiskit experiment that measures them on a real device.
The Surface Code and Willow: What Below-Threshold Actually Means
Google's Willow chip (December 2024) was the first demonstration of a quantum error-correcting code with errors that decrease as you add qubits — the 'below threshold' result the field had chased for 30 years. This tutorial explains what the surface code is, why the threshold theorem matters, and what Willow's numbers imply for the path to fault-tolerant quantum computing.
hardware
post quantum crypto
Post-Quantum Cryptography: The Threat Model
Shor's algorithm doesn't break all cryptography — it breaks the specific subset built on integer factoring and discrete logarithms, which happens to be nearly every public-key system in production. This tutorial lays out the precise threat model, the 'harvest now, decrypt later' attack, NIST's standardization response, and exactly which of your primitives to replace first.
ML-KEM and ML-DSA in Practice
NIST's FIPS 203 and FIPS 204 are the new cryptographic standards replacing RSA and ECDSA. This tutorial explains the math behind lattice-based key encapsulation and signatures, shows how to use them with real code (Python cryptography library + OpenSSL 3.5), and walks through hybrid TLS 1.3 — the production-grade migration deployment.
Auditing a Codebase for Y2Q Readiness
A hands-on tutorial that walks through building a crypto-agility scanner for any codebase — Python, JavaScript, Go, Rust, Java, C/C++. Identifies every place RSA, ECDSA, ECDH, and DH are used, produces a prioritized migration report, and is the exact deliverable that PQC consulting engagements sell.