We all know that competitive programming consists of coding contests and events. Under these events, participants have to write programs/codes under given specifications. Many multinational tycoons such as Facebook and Google conduct and admire CP events. Some of the most popular competitions include Google Code Jam, ICPC, Russian AI Cup, and CodeChef.
Competitive programming is majorly a sport, but a mental one. It tests your competitive spirit and competence towards a particular ability.
The oldest contest known is the ACM-ICPC (International Collegiate Programming Contest). It was held at Texas A&M University in 1970 hosted by the Alpha Chapter of the Upsilon Pi Epsilon Computer Science Honor Society (UPE). The programming language used was FORTRAN.
CP is a good platform for programmers to up their game. Competitive programming could also lead to better bids and offers in freelancing sites. Now coming to the point, here is our guide to competitive programming. This will help you make better decisions and make the best out of CP.
I would suggest you learn C, C++ or Java. Learning C++ is easy if you understand C easily. You should learn C++ since it has a standard template library that contains functionalities like vectors and sets. These come handy while solving specific problems.
Java is also a good option since it is used by a few top coders, and also the commands are easy to understand.
So this is the first step to competitive programming. What next?
Apply on competitive programming portals
First, go for HackerRank. They have fairly easy questions, a plus for beginners. Also, its user interface is convenient.
It has a test in which there is a mixture of easy and medium questions. The questions are generally simple for someone with zero experience in competitive programming. He/she will solve the first few questions.
Try to attempt all the easy level questions, and it is fine if you solve a lesser number of medium questions. Moreover, this is enough to fetch you a call from a HackerRank CP executive.
Now, apply on CodeChef and Codeforces.
CodeChef conducts long competitions, which helps a programmer improve his/her deep thinking.
Codeforces is popular for its 2-hour rounds. These contests are recommended if you want to increase your thinking and coding speed.
In a nutshell, taking part in these two portals will make you a good programmer. How?
You become competent in two skills, deep thinking, and coding speed.
Still, it is okay if you are interested and/or competent in any one of these portals. Because this will help you become a better programmer.
Best practices for competitive programming
- Learn new algorithms that are better and implement them when needed.
- Use functions and minimize the repetition of code.
- Maintain pre-written templates for standard algorithms, necessary headers, functions, etc.
- Gain knowledge of data structures.
- Select a programming language that you are most comfortable with.
Benefits of competitive programming
CP helps to improve your analytical and logical skills. Also, you gain knowledge of algorithms. This is a good skill to be added to your resume.
Moreover, you can find equally passionate people in your journey to CP. Tech giants support CP.
Watch the video below to get an insight on competitive programming:
Competitive programming facts
- In competitive programming, coders solve coding problems using algorithms and data structures.
- Skills required for CP are basic math, algorithm, programming and typing speed.
- It’s a myth that it’s too late to start CP. The fact is, there is no fixed age to join CP.
- With CP, a coder may become a master of coding, but lack knowledge of frameworks. Frameworks are important for real-life projects.
Optionally, you can apply to TopCoder. The secret to getting proposals from Google and similar tech giants is to be consistent. Therefore, participate in contests, try to improve your rank, and build your rating.
Alternatively, you can do competitive programming on the side and also learn practical skills. Your decent CP experience combined with requisite practical skills will enable you to get all those jobs and internships you dreamed of.
If you are someone with some CP experience and you want to learn some algorithms, check this out. It has been divided into topics, hence you can choose between the top ones and the ones that you have heard about.
Let’s create the next big thing together!
Coming together is a beginning. Keeping together is progress. Working together is success.