Data Structures & Algorithms
Problem solving and algorithmic thinking.
- Structured Path
- Beginner to Advanced
Learn It, Then Practise It
Every subject runs in course order, so nothing arrives before you are ready. Your code runs on a real compiler in five languages and tells you what went wrong in plain English.
~/learn
Each subject runs from the first idea to the interview question, so you are never asked to use something you have not been taught yet.
Problem solving and algorithmic thinking.
How data is stored, queried and kept correct.
What the machine is doing while your code runs.
How systems talk to each other, layer by layer.
Designing programs that stay easy to change.
Turning exponential problems into fast ones.
Building systems a team can still change later.
Structured path, beginner to advanced.
How it works
Short pages that explain the thing itself, in the order a course teaches it, with a diagram where a diagram helps.
Open a courseType it, run it on a real compiler, and when a case fails you are told which one and why, not just that it broke.
Solve somethingEvery solve is recorded. What you have done becomes the thing you point at when somebody asks what you can do.
See the boardThe workbench
Five languages, hidden cases, and output you can read. The same toolchain that grades your submission is the one you write against, so there is no gap between practising and being marked.
#include <bits/stdc++.h>
int main() {
int n, m; std::cin >> n >> m;
// mark on enqueue, never on dequeue
std::vector<char> seen(n + 1);
}$ g++ -O2 main.cpp && ./a.out
Accepted · 9/9 tests · 41 ms · 3.2 MB
Ways in
Nine hundred days of deliberate practice, one problem at a time, with the streak and the proof kept for you.
Start the challengeA record of what you have built and solved, in a form somebody hiring can read in thirty seconds.
Build a résuméSee who else on your campus is working through the same material, and where you sit among them.
Find your collegeA model you download into your own browser. Ask why an error happened, or for an idea in different words. Nothing is sent anywhere.
Open itThe first one prints a line of text. The last one cannot be brute forced.