USACO Guide
A free, open source guide that organises competitive programming topics by USACO division, from Bronze to Platinum and beyond, with explanations, code and curated practice problems for each module. Built by the student-run Competitive Programming Initiative, it is one of the clearest step-by-step paths through contest algorithms, whether or not you ever enter USACO.
1,860 (cpinitiative/usaco-guide)
GitHub · Sept 2026
General, Bronze to Platinum, Advanced
USACO Guide · Sept 2026
Guide
Other
Competitive Programming Initiative
Self-paced; each division is weeks to months of practice
All
Free
What the USACO Guide is
The USACO Guide describes itself as "a free collection of curated, high-quality resources to take you from Bronze to Platinum and beyond." It is built by the Competitive Programming Initiative, a student-run organisation, and its founders include top USACO competitors. The whole site is open source on GitHub.
USACO, the USA Computing Olympiad, runs online contests in four divisions: Bronze, Silver, Gold and Platinum. The guide uses those divisions as its levels, plus a General section for getting started and an Advanced section beyond Platinum. Each level is a list of modules, and each module explains one topic, shows code and links practice problems sorted by difficulty.
Do I need to care about USACO to use it?
No. The divisions are simply a well-tested order for learning. Bronze covers simulation, complete search and basic sorting; Silver covers binary search, prefix sums, two pointers, greedy with sorting and graph traversal; Gold adds dynamic programming, shortest paths, DSU and range query structures; Platinum goes further. That order maps closely onto Codeforces and ICPC progress, which is why university contestants use it too.
The guide itself is clear that USACO has no official syllabus: it "merely lists topics that have historically appeared in USACO contests."
Which language?
The guide's language page says the most popular languages USACO supports are C++17, Java and Python 3, and recommends starting with C++ if you do not know any of them, because C++ solutions rarely fail on speed. It also warns that Python is too slow to pass most Gold and Platinum problems.
How long does it take?
Self-paced. Moving through a division usually takes weeks to months of steady practice, depending on how many problems per module you solve. Doing a few problems from each module, rather than every one, is a sensible pace.
What makes it good
- Order. You always know what to learn next.
- Curated problems. Each module links problems from USACO, CSES, Codeforces and other judges, labelled by difficulty.
- General advice. The General section has practical pages on fast input and output, debugging, contest strategy and how to practise.
Free or paid?
Free. Every module, explanation and problem list is open to everyone without an account.
Common questions
Is it only for school students? No. The content is useful for anyone learning contest algorithms, including university ICPC teams.
Does it replace a problem platform? No. It points you to problems on judges like CSES and Codeforces, where you submit your code.
Best for: learners who want a structured, free path through competitive programming topics in a sensible order.
Ready to start?
Opens on Competitive Programming Initiative in a new tab.
Stuck on something specific?
Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Sessions are free for approved Sefism members, and a few slots open each week.
Follow along
New writing, resources and project ideas land here first.