Competitive Programming 2.0

Shubham Kumar Jha
The Aparoksha Blog
Published in
4 min readJun 11, 2018

Welcome to the second blog in my series of Getting Started in Competitive Programming with Delvers’ December. Delvers’ December is a program initiated by IIIT-Allahabad’s annual techfest, Aparoksha, where we post a series of blogs to help newcomers to start out in various domains of technology.

In my previous blog, I talked about the need to get your hands dirty with a programming language before you can actually start competitive coding! In this blog, I aim to take things a bit further.

Let’s begin then.

Where to start?

With so many online sites and resources it’s very natural that one will be confused. So, to make things easier I will be going through some of the most popular sites for competitive programming and mention their specialities so that you can decide yourself which one suits you the best.

SPOJ

Probably one of the most popular sites among the coders, it has thousands of problems with varying difficulty and whenever you are stuck on a problem just google the name of that problem and you will surely find an editorial or a solution . There is also a SPOJ Toolkit to test your code on different test cases and compare your output with the correct answer. I would highly recommend solving at least first hundred most solved problems on Spoj, it would improve your thinking skills and you would approach a problem more algorithmically rather than in a brute way .

CODEFORCES

Codeforces on an average hosts ten short contests in a month with duration between 2–3 hours. As the name suggests, Educational Rounds are a great source for learning. Although I would recommend participating in online contest after a month or two of practicing so that you are confident enough of yourself .

CODECHEF

Codechef hosts three main contests in a month-Long challenge, Cook-off and Lunchtime. Long challenge has eight problems with difficulty increasing after each question and you have ten days to solve them. Long challenge is a great source for learning new concepts and if you give them sincerely you are bound to learn at least one new thing. Cook-off is two and a half hours long contest and comprises of 5 problems. Lunchtime is codechef’s another short contest and it also comprises of 5 problems and you have three hours to solve them.

HACKEREARTH

Hackerearth provides topic wise questions which helps you in strengthening a particular topic. It also has a tutorial at the start of each topic which covers its basic concepts. It also hosts a lot of college contests along with Circuits and Easy, two of the monthly contests hosted by hackerearth. Circuit is quite similar to Codechef Long Challenge.

The last thing that I want discuss is:

Mistakes That Beginners Make

Getting Demotivated Easily

In the beginning it is possible that you spend a complete day on a problem and still not be able to solve it. You may lose confidence, but think this way, every time you are not able to solve a problem and check the solution you learn something new. Next time you will be able to solve the question that requires that concept yourself.

Procrastination

A habit that a lot of programmers have. Think of the regret you will have when you see a question in a contest that requires a concept which you have been procrastinating to learn. So it’s always better to learn something that you have been planning to, as soon as possible and not delay it for long.

Solving Only Easy Questions

If you are able to solve five problems continuously without any difficulty then you are not learning anything. You have to challenge yourself with a more difficult problem each time because this is the only way to improve. It dosen’t matter if you are able to solve it or not every time you learn something.

Not Implementing yourself

Whenever you read a new algorithm or an editorial it’s very important that you implement it yourself. ‘You don’t know an algorithm unless you can code it yourself ’. If you don’t implement it yourself you will soon forget it. Try to practice 2–3 questions from that topic.

Resource Section

I believe anyone who wants to start out with Competitive Programming would benefit hugely from these 2 amazing resources:

https://www.commonlounge.com/discussion/55e14de95aed4baa84f61bcb4c14ca3c

At the end i would like to say that competitive programming is just like a sport, as in every sport some people may like it, some may not, some may find it difficult to play with but as in every sport it is, if you wish to become good in it, practice and sheer practice is the the only key. That’s all you need to know for a start, I hope you enjoyed this article and will find it useful. Stay tuned for some more amazing content.

Happy Coding!

--

--