What Is Competitive Programming And Why It Is Important In Contests

This article describes what Competitive Programming is and the benefits of participating in a Programming contest.

What Is Competitive Programming And Why It Is Important Contests
 

Definition

 
Let’s define what Competitive Programming actually is. A definition from Wikipedia is,
 
Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program according to provided specifications. … A programming competition generally involves the host presenting a set of logical or mathematical problems to the contestants … [who] are required to write computer programs capable of solving each problem. Judging is based mostly upon number of problems solved and time spent for writing successful solutions, but may also include other factors.
 
A definition from a Competitive programmer on Quora is,
 
Competitive programming is solving well-defined problems by writing computer programs under specified limits.
 
My Definition:
 
Competitive Programming is sport.
 
Literally, CP is a sport, like any other sport. Let’s consider cricket for a while. You walk into bat for the first time. Bowler swings and you miss. You practice by keeping this “swing” in your mind and next time you’ll do much better. By practicing and doing it a couple of times, you’ll hit one over the ropes.
 
Now, consider programming contest as a game of cricket. Compile the code and submit. You may get a Wrong answer for the first time. Understand and make changes to the code and eventually, you will get your right/correct answer.
 
In a programming contest, you convert plain English sentences into a code of your favorite programming language. Walk right into it, you will learn unwritten rules of the game as you play harder and get better. For getting started, you don’t need to know any complex algorithms or data structures. You just need to know a programming language and start competing. As you practice, you fail, and you succeed and you will learn how to solve complex problems and how to write fast and efficient code.
 

Why it is important?

 
I first started competitive programming during my graduation but I didn’t do it regularly. I wish I had started it sooner and practiced on a regular basis. Now, I’m enjoying competitive programming and practicing solving problems regularly. I have learned a lot from competitive programming. It helps to build logic and increased problem-solving skills.
 
Here are some reasons why it is important,
  1. Improves Logic
    Programming logic improves by practice. You are smart from the very beginning. With competitive programming, you continuously train yourself with algorithmic problems that test the better out of your current logic skills. By practicing more and more you get better and this improves your programming logic.

  2. Makes you more focused and faster
    Thinking about a problem and finding its solution makes you more focused. With an improved logic, you will be able to think faster, solve problems faster, decide faster and put your thinking and solutions into code faster without going to and fro thinking which approach to use for your code.

  3. Helps you solve complicated problems
    In programming contests after easy tasks, you will solve complex tasks which are not for ordinary programmers. By doing CP you will learn how to solve these out of the ordinary tasks. This will help prepare you for a job because you can adapt and solve various kind of problems in various type of situations.

  4. Teaches you how to work in teams
    Working in a team is a very important skill in every field while in software development it is more important because most jobs will require you at some point to work in a team. CP helps you learn how to effectively work together, as you must work with others on your team to complete the same task. In this situation, you will learn how to assess your team member’s strength and weakness and effectively divide responsibilities between each other.

    Additionally, in every company, each team have a leader. If you are in a management role within a team, then knowing how to organize and motivate your team members is key.

  5. Make you a desirable candidate for major companies
    Participating in CP contests makes you a desirable candidate for big companies. In CP organizer websites and companies, these big companies always have a look and they pick the candidates with high potential and with the best ability to solve complex tasks. For that, you have to do CP regularly. Participate in contests, try to rank higher and build your rating.
Here are some websites which organize CP competitions: