Is Competitive Programming Useful to Get a Job In Tech

Not everyone can be good at competitive programming In fact only few people are able to solve those complicated problems with time restriction.

Many people ask that is competitive programming useful to get a job in tech?

The short answer is that it’s not that necessary, but I encourage people to give it a try at least.

Nowadays online programming competitions have become more and more popular. Websites like TopCoder, HackerRank etc. have built great platforms that attract lots of developers.

Participating programming competitions can be both rewarding and interesting.

How competitive programming works?

TopCoder is one of my favorite competitive programming platform, I’ll use this site as an example throughout this post.

Although TopCoder has developed more than competitive programming (they also have design, data science challenges etc.), our main focus is just programming competitions for job seeking.

In a nutshell, they have daily challenges that you can join to compete with everyone. In each challenge, you need to complete up to 3 different problems in 75 minutes. And then it’s challenge phase where you are free to examine the source code of other participants and search for bugs in their code. If you successfully submit a challenge test case that fails the code, you’ll get extra points.

After that, your code will run through system tests. Based on your performance (correctness, time), your rating will be adjusted accordingly.

Competitive programming VS coding interview

Competitions has a lot in common with coding interview. From this perspective, competitive programming is definitely useful to interview preparation.

First, in both cases you are required to solve coding problems with time restriction. When preparing by yourself, a lot of people find it quite different when setting a timer in front. You will feel more pressure and may fail with simple questions.

Second, coding problems are similar. I won’t say they are exactly the same, but the core ideas are close. If you are not familiar with basic data structure/algorithms, you won’t be able to solve either.

Third, solid code is required. It’s so different between explaining the solution and coding the solution. From my experience, only few candidates can actually provide perfect code.

However, problems in programming competition are generally harder. Dynamic programming is usually required and some DP problems can be crazy.

Also the main focus of competitive programming is solving the problems, but interviews evaluate more from a candidate, e.g. communication, culture fit etc..

Want to practice with a Google employee? Checkout out Gainlo to have mock interviews.

How to use competitive programming to ace my interview?

As mentioned above, programming competition is a great resource to sharpen your coding skills. You don’t need to be a top player, but practicing with coding problems is highly recommended.

Take TopCoder as an example. If you just get started, you can go and check its LEARN page. The member tutorials session gives you introductions to different topics. Also, you should check problem sets and analysis section, which has solutions to past competition problems like this one.

You can treat them as normal interview questions and practice by writing solid code. Once you have some general idea of the problems, you can choose to join a competition. I’m pretty sure you’re gonna have a lot of fun.

It’s worth to note that questions are usually harder than interviews, especially for Division one. If you find it too difficult for you, don’t be frustrated since most people have the same feeling. Many top software engineers from Google/Facebook may be just average in TopCoder.

Additional tips


Although programming competition has a lot in common with coding interview, they are still different. Having a good score in one area doesn’t guarantee the other. Never overlook soft skills like communication, culture fit as they are important in interviews.

Dynamic programming is quite common in competitions. If this is something you are afraid of, you can check tutorials and learn from past competition problems.

Some advanced algorithms like max flow are common in competition but not necessary in coding interviews. So don’t worry if you find it hard to understand.

Joining a live competition will once again teach you how different it is between explaining a solution and writing perfect code.

Conclusion

Competitive programming is an optional for interview preparation. If you are struggling with those very basic concepts, this is not for you at this point.

Again, the idea is to further practice and extend horizon. It will definitely be helpful to your interview preparation and you will have a lot of fun for sure.

The post is written by Gainlo - a platform that allows you to have mock interviews with employees from Google, Amazon etc..

I'd like to learn more

Share on Facebook124Tweet about this on TwitterShare on LinkedIn10Share on Reddit0

9 thoughts on “Is Competitive Programming Useful to Get a Job In Tech

  1. Interesting article! Actually I was debating if I should spend some time on competitive programming as it seems too hard for me.

    I guess I’ll go for a try. Thanks!

  2. Can I ask a question? How much time do you think I should spend on competitive programming if I want to pass Google interview very easily?

    1. Feel free to ask any question!

      In terms of time, it really depends on your current status. As I said, competitive programming is optional. You can still pass Google interview easily by practicing with a lot of coding questions. However, if you find most of them too easy, you should try competitive programming for sure. Something like 1-2 months is minimum I think.

  3. Great article!!! You’ve encourage me to retry competitive programming, I drop it in my 2nd Year of college and I regret that now. Thaks a lot.
    Grettings.

      1. Nowadays competitive programming is used for screening by majority of the companies. So, it has become mandatory to be good at it. To get a shot at any of the good companies

        1. I partially agree with this. However, it’s always better to do some competitive programming no matter if it’s for interview preparation.

  4. I have a question,
    How useful are skills acquired by competitive programming later in your career? Are there any benefits to it?

    How difficult are interview questions compared to contests? In terms of websites like Codeforces and Topcoder would it fall into the first 2-3 problems of Div B? Or more? What level should I do it to reasonably ensure proficiency in interview questions later on when I graduate.

    Thanks

Leave a Reply

Your email address will not be published. Required fields are marked *