How do I get started with competitive programming on my own?

Nikhil Barik
5 min readOct 15, 2019

If you belong to a tier 1 elite institute like IITs, BITS, DTU or any other institution with rich coding culture, you’re blessed. But what to do if you you’re studying at a college where people find themselves at their wits’ end even when writing a program to check a number is palindrome or not? LOL! There’s no mentor, no senior to guide you through and no one to discuss with.

So what’s your last resort? The Internet.

In this era when data rates have gone down so cheap and every one has access to the web, you’re not alone.

Let’s get started.

You must have read plenty of articles, watched numerous videos on Youtube about how to get started with CP. But the main thing is, even after knowing the learning path, the very few of the people get the ball rolling.

I know, it seems daunting, to everyone. Even to the experts when they started out. But remember , “The master has failed more times the beginner has even tried.” Funny thing is when you’ll know that this line is the motto of a 7 star coder on Codechef. Haha.

At first the high sounding DS and Alogs stuff like BigO notation, some algorithms like Floyd Warshall Algorithm, spanning trees, Prim and Kruskal visualization (if you haven’t studied DAA yet), amortized analysis, centroid decomposition or some geometric sweep method makes things scary for us.

But, you gotta start! There’s no need to grind up everything before you start. Once you begin coding, there comes a time when you’ll need to improve the efficiency of your code, and then you’ll come to these algos yourself.

All right! Here we go.

  1. Get your basics right. Choose a language. C++ and Java are preferred, Sign up on HackerRank and start solving practice problems. You’ll soon get familar coding in online IDEs and testcases stuff.

Problems on C++

Problems on Java

2. Now you’re ready for Codechef. Start solving beginner level problems with highest submissions. You’ll know the basics of time complexity and stuff yourself. Please don’t see others’ submissions without trying. And note that you can be penalized for plagiarism if you copy and paste those making slight modification such as changing the names of identifiers.

3. Join Telegram and WhatsApp groups where you’ll be able to discuss problems as you face through the course BUT not the problems of live contests, that’s bad. Here am citing invite links to two of my groups where I toss around.

4. After gaining enough confidence, participate in Long Challenges. They last for 10 days every month, you’ll be given 11 or 12 questions. At first, you’ll only be able to solve only first one or two questions. But keep doing and never give up. After the challenges are over, follow the editorials where the questions are discussed.

Long challenges on Codechef have 11–12 questions with increasing difficulty.

4.5. Codechef Long Challenges are quite encouraging for beginners as it’s comparatively easier to get good ratings. Move on to Codeforces and AtCoder to compete with guys having a knack.

5. Watch webinars, talks on competitive programming. I’ll suggest you to watch these two below. You’ll relate to the problems beginners face and how they overcame them. Please.

6. Self discipline is the key. Devote some time to CP everyday and be consistent. Start 30 Days of Competitive Coding. You can post (kind of documenting) on your Facebook or Twitter (privacy set to ‘only me’ if you don’t want it to be public) about what did you do throughout the day with hashtags like #21DaysOfCode or anything you like.

7. Find good resources. Self help is the best help. You’ll start seeing improvement in you. Join paid courses like the ones from CodingNinjas Ninja Competitive Programmer, CodingBlocks Online or Prepbytes Expert Coder. These guys will help you.

8. Surround yourself with people who love coding, virtually though. Adore the sport of competitive coding. Follow certain guy on Codechef, mark their submissions chronologically and start solving problems that they solved. Make use of YouTube. Here are few channels that I personally find so useful. The first two also discuss the questions of Codechef Long Challenges.

Check this article for more!:

8. You’ll sometimes find yourself feeling like giving up. But you just DON’T, and keep trying with dedication. Remember that this is the only way which will land you in your dream company like Google, Microsoft, Amazon, Goldman Sachs or any. Success is yours!

Thanks for reading!

--

--