Before I answer this question on programming contests, let me give you a bit of background about myself.
I play pool and snooker as a hobby. And quite well, I might add. But I never got to the next level. Mainly because I didn’t put in the time needed.
Sure, I practiced. However, to get really good, you need to practice solo drills. You set up the balls in a set pattern on the table and try to clear it. Unfortunately, after a while, these drills get boring. You are not competing with anyone except yourself.
And playing pool with other players is NOT a good way to practice getting great at pool. If you don’t know anything about the game, trust me on this. To clarify, it’s not a good way to become an expert if your practice routine only involves playing with other players. But solo drills become boring.
So I never achieved my potential at the game because of this Catch 22.
Similar situations exist in every field. In the field of programming, there’s a solution to this problem. And it’s been around for a while.
These come in all shapes and sizes but it boils down to this: you are given a set of programming problem(s), and write program(s) to solve them. That’s it. You are scored on a variety of judging criteria depending on the problem e.g. efficiency, correctness, etc. And you compete with other programmers. The person whose program beats all others according to the criteria described wins the contest.
This gives you both the deliberate practice you need to get good at something, as well as engaging your competitive spirit. So practice isn’t so boring!
Not yet convinced? Here’s a further list of reasons why taking part in competitive programming contests is a good idea:
- Good way to learn programming. It’s one of the best ways to learn programming. It focuses your mind for an hour or two (or for however long the contest runs.) And many of these contests have a leaderboard. So you can have a good yardstick of your progress
- Compete with others. Tickle your competitive bug by taking part in these contests. Some of them have lucrative prizes on offer as well, so go ahead and grab them
- Good preparation for interviews. Many companies have standard coding interviews that are like the ones in these programming contests. Sometimes the code you have to write for the interview comes straight out of one of them
- Work on challenging problems. The problems in these contests are more challenging than you think! Maybe not in terms of actually getting the correct solution … but of getting the most optimal one. The contests will teach you how to come up with the most efficient solution rather than just a one that works
- Showcase your skills. It’s a quick and easy way to showcase your skills. Companies may even shortlist you on the basis of these programming contests! And so this is especially useful for freshers who haven’t had time to build up their resume
- Get back to basics. It’s always good to keep in touch with your fundamentals. The best experts in every field always practice their fundamentals. This is true even in the programming domain
- Get fast. Many of these contests are timed. The deadlines are measured in minutes rather than weeks or months as in a typical commercial setting. So you get used to solving problems quickly and efficiently. This will clearly help in your day to day job
- Fun. Perhaps the most important reason. It’s just fun. It’s fun to tackle these interesting problems and think about novel ways to solve them
Inspired to take part in competitive programming contests? We at Venturesity will help you whet your appetite. Our Codegolf challenge is an interesting new twist in this contest. Not only will you have to find a solution; you will have to write it in the shortest possible source code possible! Check out this webpage for more details.