Which competitive programming site is good for beginners?
We can consider a few factors while evaluating which programming sites are suitable/good for you. I'll try to evaluate few platforms on these factors. Major factors I consider are:
- Infrastructure and UI
- CodeChef: Light weight web pages, don't need a really good internet connection to work. Sometimes sucks during heavy traffic contests. Not so cool leaderboard. No direct way to retrieve submissions from leaderboard. Unlike other platforms, only verdict is shown for submission, not number of files or test case numbers.
- Codeforces: Again, light web pages, no scalability issues even in heavy traffic. Very intuitive and slick UI, cool leaderboard. Best rating system among all.
- HackerEarth: Code editor is available, nice leaderboard. Haven't seen any scalability issues lately. However, contests page cluttered with lot of hiring challenges.
- HackerRank: Heavy web pages; with slow internet connection, you might find it difficult to use. No such things as friends/lists as available in other platforms. Good stuff: Code editor available, problem-wise leaderboard, can directly get solutions from leaderboard.
- Quality of problems and about contests
- CodeChef: Great problems in long and short challenges. Unique format of long challenges, which is great for beginners I think.
- Codeforces: High quality problems from highly rated coders. I most enjoy the problems on CF. Only short contests for two divisions. A great feature: educational rounds. No prizes or tshirts for winners as compared to others.
- HackerEarth: Recently, good problems in contests like Clash. Easy contests for beginners are a good learning source. Monthly two contests.
- HackerRank: Very good structured content topic wise. A project-Euler style contest called infinitum. I liked HourRank(a one-hour contest). No more weekly contests as before.
- Editorials and community support
I think for a beginner these factors are the most important.
- CodeChef: Good and detailed editorials by dedicated editorialist for each contest. However, less community participation in discussions.
- Codeforces: Best in this regard. Editorials written by problem setters. Sometimes brief, but amazing community support. A lot of top rated users discuss very regularly on CF. You can ask people from around the world your queries/doubts and people visit the website very regularly just to browse the blog posts.
- HackerEarth: Dedicated editorialists, good editorials, but again, very little community participation.
- HackerRank: Problem setters write the editorials which sometime are not so helpful. Scarce community participation.
Considering all aspects, my vote goes to Codeforces. Some other things I like about Codeforces are:
- GYM contests. Its an archive of various competitions from all around the world like previous ICPC regionals. Most teams preparing for ICPC do virtual contests, which means a virtual competition where you can gauge your preparation levels.
- Virtual contests. You can simulate the whole contest environment and do the contests which you missed.
- Mashup contests and groups. You can create groups with your friends and compete on problems chosen by you.