What Is Competitive Programming?[5 Websites to learn]

What Is Competitive Programming ?

What Is Competitive Programming ?

Competitive programming, or CP for short, is a mind sport where participants need to write programs to solve well-defined problems. Those problems are often related to algorithms, data structures, math, and logic. The programs of the contestants are judged by many different factors including how much time the programs take and how much memory the programs use.

Programming contests provide lots of interesting problems that are worth the time thinking about, training your mind.  Then it provides a large amount of opportunities for you to experiment with your platform, be it how various data structures perform when doing various operations, or how different algorithms behave on different sorts of data, or even how different programming constructs in different languages impacts the speed of program creation. 

And, when working on problems, you are on your own, you must solve problems yourselves or in a team of comparable expertise.  No stupid trading experience for grades.

Benefits Of Competitive Programming :

The benefits of doing CP. First of all, doing CP helps you prepare for coding interviews for major companies like FAANG, which stands for Facebook, Amazon, Apple, Netflix, and Google. Questions that are asked in coding interviews are basically just easy-to-medium-leveled CP problems and that’s why you see many of the top competitive programmers ending up with a job at these companies.

 The second benefit, which only applies to secondary school students, is Olympiads. Informatics Olympiads are basically just CP contests for high school students. Each country has a national contest and a training camp, for example, the USA has the USA computing Olympiad. Each country ultimately selects four students to represent their country in the International Olympiad in informatics.

Obtaining a medal in the International Olympiad in informatics is a huge boost for applying to certain prestigious universities. Some countries even have rules which will guarantee your admission to those universities. If you represent Taiwan and obtain a medal, for example, you’re guaranteed admission to University, CP is fun. I consider CP to be no different than any other esport so that’s why you may have noticed .

How to start Competitive Programming :

So you want to start with competitive programming! Why? I believe that question is important to ask. I believe that once you ask yourself that question, you’ll find it much easier to commit yourself. So ask yourself – why competitive programming?

Your answer probably lies amongst one of these two: The first one is that I want to get better at algorithms. I want to do well in contests, because I enjoy programming and competitive programming is what I like. The second one is that you have your interview schedule and you need to get better at algorithms and data structures. 

The most efficient way that you find to do this, is to compete with other human beings all around the world and that is competitive programming. Competitive programming is like a sport. It’s a mind sport. So, when instead of using your body, you’re using algorithms and you’re using your coding practices to do well. The better you are at these two, the better you’ll do in contests. Now like in any sport, it does have some prerequisites and it also has some rules that you need to know about. Prerequisites for competitive programming are – as you can guess programming. 

You need to know about that. But since you’ll come here, I’m going to assume that you do know about it and you need to know a little bit about algorithms. 

In general a programming contest goes this way : We participate in the contest. We choose a problem to solve. This problem will have its own input constraints. It will also have its own input parameters. You need to give the specified output for this problem.

After figuring out an algorithm to actually solve this problem, we make a submission to the online judge and this submission may be accepted or rejected. There’s quite a few ways in which your submission can get rejected. But if it gets accepted, you get points.

If you make the maximum number of successful submissions, you win the contest, and that’s what competitive programming basically 

Best Websites For Competitive Programming :

CodeChef :

If you are not familiar with the basics of Algorithms and Data structure, in that case, you will get frustrated on this website because it is their biggest problem even when you will see the 1st problem of the beginner section which is based on BST(Binary search tree). So to solve problems of Codechef the basic requirement is you have to know the basics of Algorithms and Data structures. And if you know the basics then you are all set you can just visit and start solving the problem as much as you can.

Even they have a large community of coders that contribute to the forums, write tutorials, and take part in CodeChef’s coding competitions.

So from above you can choose a platform which is well suited for you and start practicing.

Codeforces :

Once you are comfortable with language, you will start thinking in terms of code unconsciously. With more speed, you will start skipping the plot of the question swiftly to pick up just the relevant details.

HackerEarth :

This site from my experience has the most live than any other site and to me they have more to offer than most competitive coding sites.

HackerRank

If you are a beginner and want to develop basic concepts then I will suggest you go with this website because they have some good problems for beginners which is sorted level wise i.e. you will get problems in increasing difficulty level. And by applying some basic logic you will be able to crack them. And also we can say this is they have a good beginner-friendly environment.

Leetcode :

Leetcode has several sections for so many topics like Algorithms, Machine learning etc…

 Is competitive programming really necessary? 

The answer to that is, No. It’s not. You can still learn algorithms and data structures by yourself. But, this is one of the most efficient ways. competitive coding isn’t necessary. It all depends on what you want to take away from it. Competitive programming comes handy when you want to improve the way you think about problems. It helps you to think in different ways and the aim is to solve the questions efficiently. It just forces your brain to think effectively. Another thing that competitive programming brings is the staircase to competitions like ICPC and Codejam. If you fall in that group, yes it is a must-do exercise for you that you should do daily!

More Articles : Click Here

Follow Us on instagram: Tap Here

Leave a Comment