This is a very honest thread about the advantages of training for programming contests.
I would like to give a slightly more nuanced view. In 10+ years teaching in college, I& #39;ve seen a fair share of ICPC students, and I& #39;ve caught a couple of trends. https://twitter.com/josejorgexl/status/1316941629840818176">https://twitter.com/josejorge...
I would like to give a slightly more nuanced view. In 10+ years teaching in college, I& #39;ve seen a fair share of ICPC students, and I& #39;ve caught a couple of trends. https://twitter.com/josejorgexl/status/1316941629840818176">https://twitter.com/josejorge...
To be clear, I& #39;m not advocating against competitive programming. Not at all. There are many advantages and Jose makes some very good points.
Since advantages are already well-discussed, I just want to point out a couple of warnings, in case you& #39;re a college student today.
Since advantages are already well-discussed, I just want to point out a couple of warnings, in case you& #39;re a college student today.
First, as Jose already mentioned, competitive programming problems are very well defined, and even more, the judges already know there is a definite answer that works in the expected time and space complexity.
Real-life problems are far from being this well-defined.
Real-life problems are far from being this well-defined.
Of course, all education is like this. We need well-defined problems to be able to fairly evaluate different solutions.
Just don& #39;t think that a high skill in solving well-defined problems immediately translates to a similar skill in solving real-life problems. It doesn& #39;t.
Just don& #39;t think that a high skill in solving well-defined problems immediately translates to a similar skill in solving real-life problems. It doesn& #39;t.
Second, working under pressure with little access to outside information is key un competitions. It is also fairly unrealistic.
A high skill for (re)producing solutions to specific problems under pressure doesn& #39;t translate to searching for and adapting others& #39; solutions.
A high skill for (re)producing solutions to specific problems under pressure doesn& #39;t translate to searching for and adapting others& #39; solutions.
This doesn& #39;t mean that such a skill is irrelevant or useless. On the contrary, sometimes there is really no other solution, or there is really a time pressure to come up with something that works.
And finally, the major drawback I& #39;ve seen with some (but not all) really good contest students is a tendency to disregard everything that is out of their comfort zone.
Being super good at something doesn& #39;t mean everything else you& #39;re not good at is unimportant or trivial.
Being super good at something doesn& #39;t mean everything else you& #39;re not good at is unimportant or trivial.
I& #39;ve seen great contest students that are incapable of solving open-ended problems (in AI, for example) because they lack the skills to do research and think outside the algorithms and data structures box.
I& #39;ve also seen contest students that are very successful in research.
I& #39;ve also seen contest students that are very successful in research.
So this is not a rule, but rather a warning.
If you are a college student today thinking about getting involved in competitive programming, by all means, give it a try. It will give you very good problem-solving skills and some team-work skills as well.
If you are a college student today thinking about getting involved in competitive programming, by all means, give it a try. It will give you very good problem-solving skills and some team-work skills as well.
However, don& #39;t let this become an obstacle to try other things.
Get involved in open-ended research projects and learn to read and write papers.
Contribute to open-source projects and learn to work with a community.
All of that can only make you better in the end.
Get involved in open-ended research projects and learn to read and write papers.
Contribute to open-source projects and learn to work with a community.
All of that can only make you better in the end.