Becoming a Competitive Programming Warrior

What to do ?

  • Pick a programming language
  • Join a programming course
  • Compete on competitive coding platforms
  • Get the most out of each competition
  • Use the knowledge to get great employment opportunities

Pick a programming language

The beginners usually choose from C++, Java and Python. Here is what I learned from my experience with these languages

Join a programming course

The course content of schools is never good enough to get you a good footing in competitions early on. There are a lot more elegant and efficient data structures to explore like graphs, trees and hashmaps. And the ability to use their combination hybrids for the best solution requires an in-depth understanding of their implementation and time complexity of various operations.

Compete on coding platforms

Now is the time to put your knowledge to the test. Participating in competition with thousands of experienced people from around the globe may seem like a daunting task at first. You may end up with a not so impressive rank despite all the hard work. But your attitude at this stage will be the determinant of your future success. If you can pick yourself back up and prepare to put your mettle to the test yet again, you are destined for success. Also, you should begin with easy competitions to get comfortable with the format first. Hackerrank is great to start with. You may move on to Codechef, Hackerearth and the likes after participating in two or three competitions.

Get the most out of each competition

The most important things to do after each competition

  1. Check your improvement from last time: Try your best to either improve or at least stay at same percentile on the leaderboard.
  2. See the solution to your incorrect submissions: Competitions reveal solutions at the end. Always look at the solution and try to figure out where your thought process went wrong and what new you can pick.
  3. Verify the solution of your correct submissions: Despite getting a full score in a problem, there may be a more optimized solution provided in the editorial. Learn from them.
  4. Take some time: Before jumping on to the next competition, take some time to analyze your weaknesses. Try some similar problems from geeksforgeeks and SPOJ and improve your skills.

Use the knowledge to get great employment opportunities

It’s all fun and exciting but you can also use your skills to get great career opportunities.

  • There are a lot of hiring competitions for companies including Samsung, Goldman Sachs, Visa on Hackerearth, CodeChef, CodeForces and other such platforms. Leaderboard toppers get a chance to interview with these companies for possible internship and employment opportunities.
  • You can participate in reputed competitions like ACM-ICPC, IPSC and TopCoder. A good rank in these competitions adds great value to your resume and improves your chances of getting employed into a good company.
  • Google Code Jam and Microsoft Imagine Cup give you a shot at getting an interview opportunity with the tech giants Google and Microsoft respectively, which is otherwise very difficult to get.

What followed…

Although I really enjoyed competitive programming, it didn’t fulfil me. So, I went on to work with android and web development looking for my true calling. Despite not being a central part of development, the experience of competitive programming helped me create more efficient applications which beat competing apps on the market.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Aarnav Jindal

Aarnav Jindal

Avid programmer chasing developments in the dynamic and invigorating world of technology 🤓