How to get started with Competitive Programming?

Competitive programming is one of the terms that you will often come across a lot. One of the most important questions being asked everywhere and It is very popular among the 1st-2nd Year students. They have enough time to get started in that and also get very good rankings in that. So let’s get started with the basics of competitive programming.

What is Competitive Programming?

Competitive Programming is just another Sport. Like other games that require a lot of hard work and practice, the same is for Competitive Programming. It actually requires a lot of Coding questions, Tricky Questions, and sometimes very hard questions, which usually can take even days to think. Put all these students on a list and you will have a proper rank table to fetch your rank.

And the rat race begins, some students are even extraordinary in that they solve very few questions and they have very good problem-solving skills and they get very good ranks. The Person who handles that and practices even after that situation, always wins the race. And Many students get a lot of tension from that as their peers are scoring too much and even after practicing you are not scoring well.

What is competitive programming?
Competitive Programming

How to get started with competitive programming?

Let’s divide this process into different steps so that it is easier to understand.

  1. Pick a programming language : Before jumping into the game first learn the rules of that game. Choose any programming language of your choice and started learning it properly. Mostly is going to be C++, Java or Python.
    • C but C++ is very easy and has a lot of features than C like OOPS, STL which helps a lot in Competitive Programming.
    • After learinng that try to focus on OOPs fundamentals as they are going to be the building block of your program.
  2. Data Structure and Algorithms: This is one of the main ascpt of Competative programming as good quialiity question will force you to use DSA in some or the other form. One should learn about that very properly before actually deep-diving into Competitive Programming. Some important DSA topics
    • Linked List
    • Stacks and Queues
    • Dynamic Programming
    • Trees including Binary Trees, BST and then move to AVL Trees, Segment Trees
    • Greedy Algo
  3. Maths Concepts and New Algorithms : Math is required is you know some algorithm than it is good for you. There are a lot of algorithms and Start learning that from various articles, Youtube channels pick any good source and start learning.
    • Backtracking
    • Number Theory
    • Advance DP
    • Segment Trees and Fenwick Trees
    • Advance Graph Algos
  4. Practice, Practice and Practice: The more you practice the better you will perform in the contests. Remember Copetative programming is a sport the more you practice the better you will have a grip at it. This requires a lot of hard work, patience, and determination. Before directly moving into the contests, Start Practicing at various sites. Start wil simple question to make you comfortable with competative programming and then go for the bigger fish.
  5. Contest Time: Now that your preperation is done this is the time to play the real game. Participate in as many competiions as possible, give all questions a try there are different problems of different difficully level, so you should be able to solve the easy ones.
Practice Quote
Practice Quote

What to do after contest ?

Post contest analysis is far more important than you think. Try to solve those question which you were unable to solve during the contest. Make a list of topics that you are unable to solve, look for the optimal solution to that problem, and don’t level any question blank. At least try to write the input format on your code editor. All good coders have a habit to review their code for any improvements one should try this too.

Common Mistakes

  1. Not formating the code
  2. Getting frustrated by your friend’s ranking. Just focus on your ones and that will help you a lot.
  3. Not using endl to print th output
  4. Not reading the Questions properly.
  5. Easy give up.