Benefit of competitive programming

closed account (1vf9z8AR)
What is the use of competitive programming in real life? Why are competitive programmers being offered high packages without much development skill?

I am asking because I do cp and don't feel much real-world application.
When you learnt maths in school, did you have direct applications for each and every concept or problem? No but you still solved them so that when you ARE given a practical problem, you can find a solution for it.

The goal with solving programming problems and competitive programming is to improve your thinking and logic. It's like maths, the more you solve the better you get.

Don't have to solve real world problems to come up with an approach for a real world problem.

Nah. The problems in programming competitions really do have very little application to real world problems. The vast majority of problems in software engineering are not brand new. The real problems are about choosing the right tool and applying it correctly. Then there's also secondary problems that end taking up the majority of your time: documenting behavior, designing code so it can easy to understand and maintain, communicating with others, etc.

Programming competitions are quite artificial environments. Like all competitions, actually.
Some differences.

Requirements:
Real World: Vague, incomplete, contradictory, likely to change.
Programming Contests: Well defined, complete, coherent and fixed.

Design:
RW: There's usually some, but quantity and quality can vary widely.
PC: 5 minutes on a scrap of paper, then throw away shortly afterwards.

Testing:
RW: Lots of testing, especially round edge cases and often nowadays, security.
PC: Just enough to pass the test cases provided by the contest.

Source Control:
RW: Often has multiple branches (development, stable, testing, etc etc), many revisions.
PC: Some people might go to the trouble of 'git init; git commit', but mostly it's hack hack hack, submit, success and move on.

Maintenance:
RW: Ongoing, possibly for years after the original developers have moved on.
PC: None.

User support:
RW: Ongoing, possibly for years after the original developers have moved on.
PC: None.

Duration:
RW: It takes anywhere from weeks to years to develop new software.
PC: Typically over and done with in hours or days.

Team size:
RW: Usually many, from a handful to 100's of people.
PC: One.

Google:
RW: You will not find your answer on google(*).
PC: You can easily find the answer, but who cares.


(*)Even if you can, companies take plagiarism seriously. A company being found out to having used "found" s/w is likely to be in some serious legal s**t.
Similarly, free s/w is equally adamant about keeping anything which might be copyrighted or patented out of their code lines, so as to ensure that the free s/w remains free.
(*)Even if you can, companies take plagiarism seriously. A company being found out to having used "found" s/w is likely to be in some serious legal s**t.

https://en.wikipedia.org/wiki/Oracle_Corp._v._SAP_AG#Hypothetical_licenses
Competitive programming is about critical thinking skills, and problem solving. Any problem you solve doesn't have to apply to anything you're likely to do in the real world. It's about refining your ability to find the best approach to a problem that is not immediately obvious.

To answer your question on why competitive programmers are getting high salary packages, it depends on who's extending the offer. Companies like Apple, Google, Microsoft, weapon contractors, are always looking for top talent. They're going to look at everything pointing to being passionate about writing code, not just whether you're a competitive programmer. Coding boot camps, coding daycare, the market is getting more and more saturated with "aspiring" programmers and the competition is only going to get stiffer, and companies will use whatever they can to separate the stars from the wannabes.

Hell, in fact I could say that the well known tech companies which are known for their high pay, actually set the bar on what to expect from a potential new hire. If most of them came out and said, "We don't care about competitive programming", most people would just stop, and put effort into what those companies care about.
Sounds like a repeat of the 90s/2000s interview brain teasers.

"When a metric becomes a target, it ceases to be a good metric."
https://en.wikipedia.org/wiki/Goodhart%27s_law
Last edited on
Topic archived. No new replies allowed.