How to Start With Competitive Programming

I have been doing CP(Competitive Programming) for a very long time so I will try to help you start with competitive programming. Step by Step Process to start with competitive programming is below:


Choose a Programming Language

You should select a programming language in which you will do most of the coding. It is advisable to stick to only one language during entire duration of competitive programming so as to maintain speed. Most competitive programmers use C++ due to its speed of execution and due to available of STL which makes it faster for programmer to write the code. Most of the editorials are also in C++ so it will be best option for competitive programming, though you can use other languages too like Python and Java etc. Some programmers use those languages too.





Create Accounts on Online Judges and code on IDE 

Now once you know a programming language very well, I advise you to make accounts on popular platforms like Codechef, Hackerrank and Codeforces. Codeforces is for a bit more advanced programmers. For beginners, I would highly recommend you to make an account on Codechef and take part in monthly Long Challenges. You can use any online IDE to do all the coding easily anytime on any device. IDE stands for Integrated Development Environment in which you can code directly. There are many IDE's available on web. I like Codechef's IDE and AlgoLadder's IDE for writing codes fastly. 


Practice A Lot

Practice is the only secret recipe to make yourself a perfectionist in the Competitive Programming. Start with learning data structures and algorithms. If you face problems in learning basics or starting with DS Algo, you can go for any course but still remember that you need to practice a lot during and after completion of course to be a perfectionist. The aim of any course is to inculcate discipline and structure in your learning. But you still have to devote time from your side and practice a lot to be perfect. Attempt questions in Long challenge on codechef, stick to question, don't give up too easily. Once you are able to solve basic problems, try to go to advanced questions. Solve questions on other practice sites too like AlgoLadder where every day a new problem is added. 



When you solve 100+ problems then start to learn algorithms like sieve , dp , greedy etc and pick an algorithm, learn it then do atleast 10 problems of that algorithm. You might get stuck in some problems, but still don't give up on any problem too easily, keep trying and eventually you will crack it. If you have enrolled in any course like Speed Up with DS , Algo Course of AlgoLadder, you will have personal mentors who will help you to grasp the concepts quickly whenever you get stuck in any problem. If you don't have mentors, just go through the editorials of the problem in which you are stuck. 

Once you have good understanding of a topic, move to next topic.This way you will be able to be proficient in competitive programming for sure. Good luck.