Getting Started With Competitive Programming

ABHISHEK
The Startup
Published in
5 min readMay 30, 2020
Competitive programming

If you are someone from CS or IT background, you surely must have encountered the term Competitive Programming sometime. Well, it’s nothing but a mind sport where the participants try to solve a problem by achieving a desired output for a given set of inputs. If you are someone who is new to coding and looking to get started with competitive programming, this article might surely help you out in your journey.

Learning a Language

  1. C++ — By far the most popular programming language used in any coding competitions. It’s very fast, flexible and accepted in all coding contests. There are a tons of Algorithms and Data Structures built-in in the STL library of C++ which will make your life a lot easier.
  2. JAVA — Another classical programming language which is also very widely used in competitive programming. It’s not as beginner friendly syntax-wise but nonetheless, a very powerful language. It has many in-built containers, functions and Big Integer Class which are immensly helpful in many situations .
  3. PYTHON — This is the most beginner-friendly language to get started with. It has very simple syntax and you would be writing a lot shorted codes as compared to C++ or JAVA. However, if we talk about the compilation time, it is the slowest of the lot since this is a interpreted and high-level language. But, considering this many contests do give python program few extra seconds to run. So you don’t need to worry about time in most of the cases and are free to choose this as your go-to language as well.

Practicing and Polishing your Skills

There are many competitive sites available where you can start your coding journey right away. Here’s a list of some of the popular ones :

  1. HACKERRANK
HackerRank

This is the most beginner-friendly site and I recommend you to get started using this site till you get familiar with coding. You can practice many popular languages like C, C++, Java, Python,etc as well as brush up your problem solving skills. You are provided with editorials as well which you can refer to if you don’t understand a problem.

2. HACKEREARTH

HackerEarth

HackerEarth is an Indian company focusing on competitive programming and hiring challenges. It conducts the monthly Circuits, which are 9 day long challenges, as well as shorter challenges where you can start coding and get rated according to your performance. It also hosts competitions conducted by various colleges around India. You can start here once you get well familiar with coding.

3. CODECHEF

CodeChef

CodeChef is also an Indian coding site, that hosts 3 contests monthly, the Long Challenge (10-day challenge) and the shorter Cook-Off and Lunchtime Challenges. They also have their flagship contest, the CodeChef SnackDown which is held anually. They have well written blogs and editorials which would help you understand many concepts and problems easily.

4. CODEFORCES

CodeForces

CodeForces is a Russian site, that provides high-quality contests with the highest frequency, sometimes up to twice a week. The contests are 2 hours long and upto 5–6 per month. The site is one of the most popular online coding platform,has many unique features and a strong and huge community for help. I will recommend to start coding here only when you have acquainted yourself very well with coding because most problems here are likely too advanced for beginners.

5. TOPCODER

topCoder

TopCoder is a US-operated site, that hosts 1.5-hour SRM’s (Single Round Matches) which gives you opportunity to directly compete with other programmers. Topcoder also organizes the annual Topcoder Open tournament. I would recommend to move to this platform only once you are advanced and have a good grip in coding.

6. LEETCODE

LeetCode

LeetCode has a lot of challenges but you need to keep in mind that this site has more complex problems. They host coding contest every week where you can participate and set your good ranking. It is very good platform to prepare for coding interviews and technical rounds of various top tech companies.

These are just a few popular sites that I have mention but there are a lot more like SPOJ, InterviewBit, Project Euler and also archives from very popular global coding competitions like Google Code Jam, Facebook Hackercup, ACM ICPC,etc.

All you need to do to get started is have a willingness to learn

Resources for learning ( Books )

There are many tutorials to get you started and great books to help you build a concrete foundation.

Books

  1. Introduction to Algorithms —
Intoduction to Algorithms

This is a vast book written by the authors -Cormen, Leiserson, Rivest and Stein. This very well may be known as bible of programming. You will get all the algorithms and their concepts, fundamentals, implementation and working in great details.

2. Cracking The Coding Interview —

Cracking the Coding Interview

This is another popular book written by Gayle McDowell. It has many popular programming questions and well explained answers. It provides you essential tips that are very helpful in programming. However, Cracking the Coding , so Interview is almost entirely in Java, so if you are not well acquainted in JAVA, you may feel some difficulty in understanding.

Tutorials

There are many tutorials out there which are helpful. Apart from the coding platforms mentioned above, you can find also some tutorials at Commonlounge, GeeksForGeeks, and some courses on Coursera.

Becoming a good coder

Competitive programming is a sport just like any other. You learn how to do it and start practicing to become good at it.Learn new concepts and fundamentals, but don’t just stop there. Implement and practice them with dedication.

Knowledge without practice is useless. Practice without knowledge is dangerous.

You won’t be able to understand everything overnight. You have to be consistent, learn, understand from your mistakes, work hard and practise a lot. Set you goals, time tables or whatever you need to be consistent, but keep going and don’t give up easily !

--

--