Ask HN: Should I practice competitive programming and stop doing side projects

12 points by elon_musk ↗ HN
I am a junior undergrad studying CS at one of the top universities. I have co founded a company, participated in Google Summer of Code and done interesting projects (some of which even won prizes).

I applied to some companies like Dropbox, Google, Palantir and Facebook for a summer internship but got rejected from them at some stage in the interview process (even after reaching the host matching stage for Google). I see my friends who were able to get those internships inspite of having almost no software development experience just because they are good at competitive programming and wonder if this is all that companies care about? Should I stop building stuff and improve my competitive programming skills if I plan to get a job after graduating?

4 comments

[ 2.9 ms ] story [ 21.8 ms ] thread
Let me preface this by saying that above all else, your soft skills are important. Learn to interview. Read Cracking the Coding Interview. Practice your people skills. It's likely that your friends who "were able to get those internships inspite of having almost no software development experience just because they are good at competitive programming" are really good at the soft skills in addition to being good problem solvers.

Assuming that your soft skills are up to task...

It really depends on how many side projects you already have, either open sourced on GitHub or tangibly published (such as iOS apps on the App Store, for example).

You're best served by having a balance of tools in your skill set. If you already have side projects that you're proud of, getting better at "competitive programming" (which is really just getting better at solving problems in certain domains quickly) will make you a better candidate overall.

Companies like Google want junior devs and interns to be problem solvers that they can mold into senior developers. That's what "competitive programming" tests for. However, if you have the soft skills and the pedigree of presentable projects to demonstrate, you can make it work.

On the contrary, continue with your side projects. That's probably why you even managed to get interviews with those companies. Did you compute the odds of landing an internship at Google? How many people apply? How many people get in?

Make yourself really good. Write code that amazes. Then you'll be able to control your destiny.

If you get past the resume screening stage (which it sounds like you'll have no trouble doing, with your resume), then those four companies you mentioned only care about your interview performance. You're correct that side projects won't get you a job at Palantir. What you should do is practice, practice, practice technical interview questions. Get Cracking the Coding interview and do every problem.

Getting a job / internship offer at those four companies is the exception, rather than the rule, so don't feel bad about getting unlucky this year. I squeaked by Facebook intern interviews, but was rejected from Dropbox, Google, and Palantir.

Better luck next year!

You need a certain amount of programming puzzle skill to get past the interview process at most tech companies. Competitive programming is a good way to practice this skill, but you don't have to do it at the exclusion of other types of programming. You may want to take a break from side projects for a few weeks or months while you work on your coding interview/competitive programming skills. After a certain point, there are diminishing returns unless you get interested in the competitive programming world and want to keep competing.

If you want more information on this topic, it is often discussed on Quora. Here are a few relevant posts:

* Why tech interviews are the way they are: http://www.quora.com/What-do-you-think-about-the-current-tec...

* Preparing for a coding interview: http://www.quora.com/How-do-I-prepare-for-a-software-enginee...

* Possible reasons for getting rejected after an interview: http://www.quora.com/What-are-possible-reasons-for-getting-r...