Introduction to Competitive Programming
January 22, 2023
If there’s one thing you should know about everything, is that it is better as a competition.
What is Competitive Programming exactly?
Competitive Programming is different from the regular programming done in software engineering; it is technically a sport. So unlike in software engineering, there is a way to win. programs are made to solve very specific or niche problems with text input and an expected text output.
Why Competitive Programming?
You know that feeling when you finally are able to prove LHS = RHS? Or maybe the first time you are able to solve a Rubik’s cube? Competitive Programming exists to give you that feeling over and over again.
You just don’t learn how to code but you also learn the “art of thinking”, by breaking down your code into smaller chunks and then using your logic-based creativity to solve a problem from different angles.
Additionally:
- Competitive Programming awards are more valuable than course certificates because it is proof that you are better than the competition in the field.
- Competitive Programming benefits you in technical interviews during job placements as you are constantly used to writing efficient code both in terms of time and memory.
- It will help you understand better how a computer handles data and inputs. Which will exponentially reduce the time it takes to debug.
How to program competitively?
- Learn a coding language:
A lot of people prefer C++ or Java (because of its simple construction), but you can always use the language you are most comfortable with and switch depending on the requirements.
- Understand the concept of time and space:
Since there’s many solutions to the same solution. Your code should be able to solve the problem with less amount of time and memory.
- Practice:
Sites like Hackerrank allow you to learn and practice your preferred language, while sites like codechef, leetcode, codeforces and DM::OJ allow you to practice algorithmic questions and compete online.
- Compete
There’s a ton of programming contests, offline and online where you could compete for a cash prize and a neat label in your CV. Some of these include Google’s own code jam, hash code and kick start. ACM’s ICPC (international collegiate programming contest) and much more. Make sure to read the rules of the contests before applying to make sure it is suitable for your interests.