awesome-competitive-programming
:gem: A curated list of awesome Competitive Programming, Algorithm and Data Structure resources
A curated, star-rated collection of links to tutorials, practice sites, books, contest calendars, and tools for learning and competing in algorithmic programming contests.
This repository is a curated list of learning resources for competitive programming, which is the hobby and sport of solving algorithm puzzles under time pressure in online contests. It holds no software of its own. Instead it is a long, organized set of links to outside material, gathered by the author over what the README describes as an eleven-year competitive programming career. The stated goal is simply to connect people to good information, and the author encourages readers to share the list with classmates and friends.
The content is arranged as a table of contents followed by themed sections. Each section is a table where every entry has a star rating from one to three stars, a name that links out to the resource, and a short description explaining what it is and why it is useful. The star rating is the author's own judgment of how valuable each item is.
The sections move roughly from learning to practicing. Early ones include lists of other lists, syllabuses that tell you which topics to study, tutorial websites, free online courses, and recommended books split between algorithms and mathematics. For example, it points to well-known tutorial sites like the English translation of E-Maxx, GeeksforGeeks, USACO training pages, and OI Wiki.
Later sections cover places to practice and compete: websites with practice problems, problem classifiers, contest calendars, training camps, and question-and-answer sites. There are also sections on ready-made code implementations, tips specific to particular programming languages such as C, C++, and Java, and tools like coding environments and contest-preparation helpers. A community section gathers blogs, YouTube channels, and livestreams, and a final group collects articles, frequently asked questions, and interview questions. The list closes with license information.
In short, this is a reference page you would bookmark and return to, rather than something you install or run. A beginner can use the star ratings and descriptions to pick a starting point, while an experienced contestant can scan it for advanced material. The full README is longer than what was shown.
Where it fits
- Find a structured syllabus to guide your competitive programming study from beginner to advanced topics.
- Discover practice websites and contest calendars to sharpen your algorithm and math skills.
- Find recommended books on algorithms and mathematics chosen specifically for competitive programming.
- Locate ready-made code implementations and language-specific tips for C++, Java, or C.