When you are just starting out as a competitive programmer selecting one online judge can become a bit daunting. Specially with so many out there. But not all platforms are made the same. While some are excellent for their active community and regular contest , some might have an organized collection of limited but very high quality content. That's why I am writing a review on 10 common online judges(competitive programming platforms) and my experience using them.
Code Forces : By far the most popular online judge. Their best part is that contest are by all means very frequent and has one of the most active community in the competitive programming world. For people who will be taking part in short (2-3 hour) contest regularly this platform is the best. On the downside because the contests are so frequent a large number of problems are being added all the time. And finding a curated set of problem for you to practice becomes really tough at times.
Code Chef : Also holds frequent and regular contest. I loved their monthly long contest (last for 2-3 days) which I believe is a good place for beginner to learn as they can think about problems without the constant pressure of running out of time. They also have great regional support as a large number of problem statements come in different languages. Has some feature as lists of curated problems for beginners. Overall a complete platform. Also they often provide video editorial/tutorial for the problems making it an excellent platform for learners.
Hacker Rank : Contests aren't held with that much consistency. But has excellent tutorials and problem sets for gaining proficiency in different programming languages and topic based learning. Its more geared towards technical interview prep than for competitive programming. But their C++ module was immensely helpful for learning C++ STL (Standard Template Library) for me.
Hacker Earth : Regular contests for recruitment are held but not that many for pure and fun competitive programming. Still an excellent platform . Specially they have a organized collection of problems covering almost all topics step by step. You can find it under their codemonk feature. Which provides an overall roadmap for beginners as well as a good list of problems to practice on.
Light Oj : Best resource I found for topic based learning and problem solving. Specially if you are taking part in ACM ICPC this might prove to be a great resource. They have a relatively smaller collection of problems (around only 500) but each one is very well written, classic and fun problem. Each problem has a good take away lesson. Their editorials are opensource. Which means they are community driven and excellent place for opensource contributions.
At Coder : A Japanese platform but has good English language support. Holds regular contests and their problem statements are very clear , concise and to the point. For beginners who are struggling with brute force , implementation problems or just looking for easy problems to solve this is a good place to start. Specially for simply increasing speed for solving those really easy problems.
Online Judge : Previously known as UVA
this online judge has been around for fairly long. They have some good problems but the platform itself is quite old fashioned and doesn't have that many features. One downside is that a lot of their problem statements are simply cumbersome and confusing. So, unless you have a list of curated problems from this site I personally don't recommend new programmers to practice using this site. There are simply better options.
SPOJ : Kind of old platform, but has quality problems. The judge is a bit fussy about time and quite often you have to optimize every millisecond out of your code. This however teaches you to writing code that writes really fast in whatever language you are practicing in.
Timus : Has good collection of problems. Specially of mathematical nature. But not that good in general cases.
Beecrowd : Previously known as URI online judge
, is a good place for absolute newbies . But after solving about 70-100 problems is best and more efficient to move to other platforms.
Summary : If you are a beginner starting out than LightOj
will be best for targeted topic based practicing, Code Forces
and Code Chef
for regular contests and general practicing , Hacker Rank
for increasing proficiency in programming languages.
Platform links:
Top comments (1)
One platform that's really popular but I didn't add is Leet Code. Though its a good place to learn , its focused on technical interviews and not exactly for competitive programming as a sport. But it can also be used for this purpose if someone wants to.