Becoming a Competitive Programming Warrior

Most of the people in my class, including me, picked Computer Science as their major in college but knew nothing more than it has to do something with computers. Yeah 🤓. So, I found the best coding institute near me and registered for the C++ course asap.

One month into the course, I hadn’t even figured out the basics of recursion yet !!, we had a practice competition with the dreaded leaderboard displayed on the jumbo screen. Despite not being visible on the leaderboard, the environment was full of zeal and excitement and got me thrilled about competitive programming.

I spent the next few months honing my skills and participating in competitions on Hackerrank. Because of the never give up attitude and lot of hard work, I got my first gold medal on Hackerrank ( Top 3 percentile) in Week of Code 34.

So for all those starting out right now, here’s how you can go from being a noob to your first Winner, Winner, Chicken Dinner.

What to do ?

  • 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

Python is the easiest language to start with. Comparatively lot less code to write to achieve the same result. The syntax and semantics are very easy to learn. It is very close to pseudo-code writing. Easy to transition to machine learning later where python is a preferred language.

C++ is my preferred language. The syntax and semantics are a little more complex from python. But it offers a deeper understanding of underlying logic behind programming. Since it’s close to machine code, it compiles and executes very quickly. It is preferred in the industry where speed is of the essence in the software.

Java is the least preferred language for beginners. It is the most complex of all three. The syntax and semantics are a little more complex from python. It is however widely used in the industry for software development.

Join a programming course

With time you’ll realize that you have a lot of algorithms which can solve the same problem quicker and with lesser memory requirements. While you will learn a lot of complex and beautiful algorithms during competitions, you need a good understanding of a few basic ones like linear and binary search, sorting, hashing etc as a backdrop to those complex ones.

Joining a course early on would help a lot with the above-mentioned problems and give you an early edge over your friends and competitors.

There are a lot of coding institutes popping up in various big cities of India. I would suggest absolute beginners go for offline courses for a disciplined study routine and ease of doubt solving. A lot of great institutes like Coding Blocks offer online courses which are a lot cheaper than offline courses. Coursera, Udemy and Udacity have a buffet of courses as well which you might be able to get for free or very cheap prices.

Compete on coding platforms

Get the most out of 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

  • 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…

Making real life softwares used by customers feels amazing and I will try to write about my experience and journey of the same soon. Till then keep geeking it out 🤓.

--

--

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

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