Best Competitive Programming Websites for Practice: A Curated Guide from sdmg15/Best-websites-a-programmer-should-visit
The repository sdmg15/Best-websites-a-programmer-should-visit lists over 30 competitive programming platforms in its README.md, ranging from beginner-friendly judges like LightOJ to elite contest sites like Codeforces and AtCoder.
If you are searching for the best competitive programming websites for practice, the curated collection maintained in sdmg15/Best-websites-a-programmer-should-visit provides a comprehensive starting point. The repository’s README.md file organizes these resources under a dedicated Competitive programming section, making it easy to discover platforms suited to every skill level—from novice coders to ACM-ICPC finalists.
Top Platforms Listed in README.md Lines 724–748
The competitive programming section in README.md (starting at line 724) groups platforms by their primary use case. Below are the most significant entries, categorized by their pedagogical focus.
Beginner-Friendly Judges
- LightOJ (line 740): A structured problem set with a clear ranking system, ideal for newcomers building foundational algorithmic thinking.
- A2OJ Ladders (line 748): A visual "ladder" view of Codeforces problems ordered by rating, allowing beginners to progress systematically.
High-Frequency Contest Platforms
- Codeforces (line 732): Hosts frequent contests, maintains a vast problem-set archive, and operates an active rating system used by competitive programmers worldwide.
- AtCoder (line 728): A Japanese platform renowned for beginner-to-expert contests and exceptionally strong editorial support.
- CodeChef (line 729): Features long-running contests, dedicated practice sections, and a vibrant community forum.
Archive and Mathematical Challenges
- Project Euler (Archived) (line 726): Math-oriented problems that require clever algorithms rather than heavy data structures.
- SPOJ (line 742): Hosts over 20,000 problems, including many classic algorithmic challenges used in university courses.
- UVa Online Judge (line 745): The classic UVa archive, still widely used for ACM-ICPC training.
Gamified and Interview-Focused Sites
- Codingame (line 735): Gamified coding puzzles with visual feedback, suitable for learning through play.
- HackerRank (line 739): Covers algorithms, AI, and databases, plus company-specific hiring tests.
- CodeSignal (line 730): Arcade-style challenges and interview-preparation tests used by recruiters.
How to Extract the Competitive Programming List Programmatically
If you need to consume this data in a script, dashboard, or static site generator, you can parse the README.md file directly. The Python snippet below extracts the Competitive programming section and returns tuples of (title, url).
import re
import pathlib
def load_competitive_section(readme_path: pathlib.Path) -> list[tuple[str, str]]:
"""
Parse the '## ⚔️ Competitive programming' section and return
a list of (title, url) pairs.
"""
section_re = re.compile(r'^## ⚔️ Competitive programming$', re.MULTILINE)
link_re = re.compile(r'\[([^\]]+)\]\((https?://[^\)]+)\)')
text = readme_path.read_text(encoding='utf-8')
# Find the start of the section
start = section_re.search(text).end()
# The section ends at the next top-level heading (##) or EOF
end_match = re.search(r'^## ', text[start:], re.MULTILINE)
end = start + end_match.start() if end_match else len(text)
entries = []
for line in text[start:end].splitlines():
m = link_re.search(line)
if m:
title, url = m.group(1), m.group(2)
entries.append((title, url))
return entries
if __name__ == '__main__':
readme = pathlib.Path('README.md')
for title, url in load_competitive_section(readme):
print(f'{title}: {url}')
Running this script inside a clone of sdmg15/Best-websites-a-programmer-should-visit prints every competitive programming platform with its URL, enabling you to generate updated markdown tables or JSON feeds automatically.
Repository Structure and Key Files
Understanding the layout of sdmg15/Best-websites-a-programmer-should-visit helps contributors update the list or automate consumption of its data.
| File | Role | Direct Link |
|---|---|---|
README.md |
Main documentation; contains the full curated list of resources, including the Competitive programming section at line 724. | README.md |
_config.yml |
Jekyll configuration that powers the GitHub Pages rendering of the repository (if enabled). | _config.yml |
package.json |
Holds project metadata (name, version, scripts) used for CI and npm-related tooling. | package.json |
white_listed_sites.txt |
Auxiliary whitelist used by the project’s build scripts to filter out unwanted domains. | white_listed_sites.txt |
These files together define the structure, presentation, and maintenance workflow of the knowledge base, allowing contributors to expand or update the list of competitive programming websites with confidence.
Summary
- Comprehensive Coverage: The
README.mdinsdmg15/Best-websites-a-programmer-should-visitlists over 30 competitive programming platforms, from beginner judges like LightOJ to elite contest sites like Codeforces and AtCoder. - Structured Learning: Resources such as A2OJ Ladders and Topic Wise Problem lists enable systematic skill progression.
- Automation Ready: The repository’s plain-text markdown format allows easy parsing via Python scripts to extract URLs and titles for personal dashboards or static site generators.
- Active Maintenance: Key files like
white_listed_sites.txtandpackage.jsonsupport CI workflows that keep the curated list current and free of broken links.
Frequently Asked Questions
What is the best competitive programming website for beginners?
LightOJ and A2OJ Ladders are specifically recommended for beginners. LightOJ offers a structured problem set with a clear ranking system, while A2OJ Ladders provides a visual progression through Codeforces problems ordered by difficulty rating, allowing newcomers to build skills incrementally.
How often do Codeforces and AtCoder host contests?
Codeforces typically hosts contests multiple times per month, including regular rounds and educational rounds, maintaining an active rating system used by competitive programmers worldwide. AtCoder runs weekly beginner contests (ABC) and regular contests (ARC), with Japanese editorial support renowned for clarity and educational value.
Can I use the list from Best-websites-a-programmer-should-visit in my own project?
Yes. The repository stores data in plain markdown, making it easy to parse programmatically. You can use the Python snippet provided in this article to extract the competitive programming section from README.md and generate JSON feeds, static sites, or personal dashboards without manual copying.
What is the difference between SPOJ and UVa Online Judge?
SPOJ (Sphere Online Judge) hosts over 20,000 problems, including many classic algorithmic challenges used in university courses worldwide. UVa Online Judge is the classic archive associated with the "Programming Challenges" book by Steven Skiena, still widely used for ACM-ICPC training. Both are archival judges with extensive problem histories, but SPOJ offers a broader modern community while UVa remains a traditional training ground.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →