Message on Whatsapp 8879355057 for DSA(OA + Interview) + Fullstack Dev Training + 1-1 Personalized Mentoring to get 10+LPA Job
0 like 0 dislike
1,179 views
in Competitive-Programming by | 1,179 views

1 Answer

0 like 0 dislike
I'd like to say a clear yes here.

I've done programming contests for a long time, as contestant, as trainer, and as coach. And after that I've been programming for the real world for quite some time. Now I'm interviewing quite a number of people joining the workforce.

With that, it is clear to me that many things that universities teach you in a typical CS curriculum are not going to be very useful for your career. Things like cloud, big data, compiler or even graphics are all less than likely to make any difference in your career. The problem is, the computing industry is a winner-take-all, don't-repeat-yourselves industry. What it means is, the problems that are hit now are likely stock software component the next year, needing very little care. You simply can't make a living out of that.

Except one thing: the courses stimulate you to do experiments. The characteristic of the industry means that you are going to continuously learn new technologies and build new stuff from it. This requires (1) having a solid base set of knowledge that you can use to build stuff, and (2) having a clever mind allowing you to experiment new technologies in smart ways. Once you are in the industry, you add in the final ingredient, a sound software development process, and now you can turn all new ideas into new products.

Unluckily, the course hours in universities are far too short for either. Except in top universities taking it for granted that you loves really tough courses and enjoy sleepless nights, you end up just writing a little bit of toy programs out of nearly completed templates, not nearly enough to let you learn the course materials, let alone doing your own experiments. Worse yet, you can easily get "help" from instructors and TAs, to the point that you don't need your own experiments. Which is sad: you trade experience for grades, the former extremely relevant for the rest of your life, the latter only give you a little bit better chance getting job interviews.

Programming contests provide lots of interesting problems that are worth the time thinking about, training your mind. Then it provides large amount of opportunities for you to experiment with your platform, be it how various data structures perform when doing various operations, or how different algorithms behave on different sort of data, or even how different programming constructs in different languages impacts the speed of program creation. And, when working on problems, you are on your own, you must solve problems yourselves or in a team of comparable expertise. No stupid trading experience for grades.

To get the benefits of contests, you don't need to prepare for contests day and night. Just taking a couple of nights every week to solve competition problems rather than playing outside, you can already get most of what's out there. No need to be a top coder either: an average contestant is way better than the ones focusing only on homework of typical universities.

I see many people interviewing for software development positions, and programming contest participants clearly show their superior familiarity with programming platform, basic software skills, and more importantly, problem solving ability. That is not a coincidence, it is just a consequence from the fact that they do a lot more experiments and problem solving than their competitors.
by