Test your programming knowledge
Pick a topic and answer multiple-choice questions, one random question at a time. You get instant feedback and an explanation with every answer, and your progress is saved — so you can keep practicing forever.
C
Pointers, memory, and the classic systems language.
Zig
Manual memory management, error unions, and comptime.
Rust
Ownership, borrowing, and fearless concurrency.
Computer Science
Core theory: complexity, architecture, and algorithms.
Data Structures & Algorithms
Stacks, queues, trees, and the big-O behind them.
Systems Programming
Kernels, processes, syscalls, and virtual memory.
Design Patterns
Proven solutions to recurring object-oriented design problems.
JavaScript
The language of the web: closures, promises, prototypes, and the event loop.
Math
The math behind games and CS: vectors, matrices, interpolation, and bit tricks.
Git
Version control: branching, merging, rebasing, and collaborative workflows.
C++
Templates, RAII, move semantics, and the standard template library.
Linux
Commands, filesystem, permissions, and system administration.
Vim
Modes, motions, macros, and the art of editing at the speed of thought.
System Design
Scalability, caching, distributed systems, and architectural trade-offs.
C#
Type safety, LINQ, async/await, and the .NET ecosystem.
Python
Dictionaries, decorators, the GIL, and the batteries-included standard library.
Go
Goroutines, channels, interfaces, and simple concurrency by design.