Anyone starting with competitive programming ( CP ) comes across these two banners : CodeChef and CodeForces. In any group of CP enthusiasts you’ll find half of them arguing in favor of CodeChef while the other half advocates for CodeForces. This debate sometimes gets a little too heated on StackOverflow, Quora etc. as well…
I’ve been actively participating in contests on these platforms for almost 2 years now. With a 6 star rating on CodeChef and 1932 rating on CodeForces and loads of friends into CP, I feel that I have the experience to outline the benefits and shortcomings of both platforms and where to begin if you are just entering this extremely competitive world.
CodeChef is a not-for-profit educational initiative by Directi, an Indian software company. It is a global programming community that fosters learning and friendly competition, built on top of the world’s largest competitive programming platform. We have also built a large community of problem curators.
The platform hosts three contests every month namely LunchTime, Cook-Off, and Long Challenge. The first two being short contests of 3 hour duration while the latter being a 10 day contest.
I began my journey with CodeChef and believe that it is a great starting point. It allows you to form a very strong and sturdy base for CP. The easy and medium level questions are conducive to comfort and will appear welcoming to any newbie. And for experienced programmers it offers a great selection of tricky questions based on advanced DS and Algo concepts. The editorial after each contest offers a very detailed in-depth analysis of questions with short as well as long explanation.
However, the short contests can be very scary and in worst cases make you even swear off CP. Short contests have 5 questions of which I’ve seen people fail to solve more than two and sometimes even the second question. Unless you love CP and are pretty good at it I’ll suggest you steer off of short contests. While the long contests are great with 10 days to solve 7–8 questions, this duration is actually too long. Investing 10 days in today’s time is not feasible. And finally, only 3 contests a month is not enough if you need to quickly grasp concepts. Even the chances to improve your rating are therefore less.
On one hand, Codeforces is a social network dedicated to programming and programming contests. On the other hand, it is a platform where contests are held regularly, the participant’s skills are reflected by their rating and the former contests can be used to prepare.
The platform hosts around 10–12 contests if not more every month. The contests have bifurcations of Div1, Div2 and Div3 and you can participate in them based on your CodeForces rating. Each contest is 2–2.5 hours in duration featuring 5–6 questions usually. There is also an added feature called “Hacking” in which participants can submit their own test cases to your solution and make it fail for some edge cases !!!
I started taking part in CodeForces very recently nearly 7–8 months back. The first contest I took part in was when I had reached 6 star rating on CodeChef. With a lot of confidence and excitement I took part in a Div 2 contest. I was completely destroyed. I solved just 1 of the 6 questions. The questions although simple, felt impossible to implement in just 10–15 mins which is the average time it usually takes to solve one. I was accustomed to solving long challenges where you have days to submit a solution and no negative marking. From solving questions in a few days to a few minutes and the added fear of negative marking, the contest took me completely by surprise. The points received for AC for a problem decrease every minute. Since each contest sees a grand number of 10K+ participants, even a slip of a few minutes can push down your rank by hundreds and in some cases by thousands.
But after participating in 4–5 more contests I was able to reorient my problem solving ability. I was able to think of and implement a complete solution in a span of a few minutes. This is where you start seeing the advantage of CodeForces. This ability to think quickly on your feet and code the solution in a split second is very important for company interviews. You’ll feel the difference while approaching interview programming questions. It also teaches you how to code under extreme stress and anxiety. The editorials are often released within a few hours and there is a great community to help you with doubts as well. Finally, the frequency of these contests is really amazing and you get to test your learnings very quickly.
To sum up, if you are getting into CP in your 1st or 2nd year of college start with CodeChef and GeeksforGeeks and stick to it till you get to a 4 star rating at least and then you can move on to CodeForces. You may then participate primarily on CodeForces with occasional visits to CodeChef.
If you are in 3rd or 4th year or you want to prepare for interview coding then start directly with CodeForces. You should also streamline your problem solving to company specific problems which have a high chance of appearing in an interview. This can be achieved via LeetCode, GeeksforGeeks and InterviewBit.
Besides this just remember, whichever CP site it may be the forever constant is upsolving and patience. Always try to solve questions which you couldn’t during the competition and/or go through the tutorial to grasp new concepts. And don’t lose your courage and confidence despite the outcome. Perseverance is as important with these platforms as is learning.
Ace Every Race - Master competitive coding skills for ACM ICPC, Google Kickstart & more
The online Competitive Programming course by Coding Blocks is an ultimate online competitive coding training. With an…
While practicing on your own you can excel at CP within an year or two. But there is a great course at CodingBlocks taught by Prateek Narang ( IIT Delhi, Winner Google CodeIn India ) and Sanyam Garg ( CodeChef 6 star, CodeForces 2100+, SDE Google Munich ) which can help you speed up your learning and learn all the important CP concepts within a few months from the comfort of your home. You can click the link above to visit the course page and kickstart your CP career with great professionals.
Please show your appreciation by applauding this post. Let me know what else you would like to know about in comments and I would try to publish a post on it soon. Keep geeking it out 🤓