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...
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.
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.
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.
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.
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.
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.
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.
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.
And if you find out that competitive programming doesn& #39;t work for you, that& #39;s also OK.

Real-life is not a competition against other people, it& #39;s a competition against yourself and you& #39;re the only one who can set the bar at the right height.

I still suggest you try it.
You can follow @AlejandroPiad.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: