Competitive programming is useless
I&#x27;d disagree with this assessment. In my own experience, I&#x27;ve found that competitive programming is useful in teaching a few skills. However, the apparent point of competitive programming--building up a good repertoire of advanced algorithms and data structures--is pretty close to useless. In my professional career, the most complex algorithm I&#x27;ve ever had to code myself is ... union-find (on like two occasions), with a custom BFS&#x2F;DFS being the most common algorithm I reach for. Almost everything you will ever need is already implemented in a library for you to reuse, and even reaching for that library is pretty rare.<p>No, the most useful impacts of competitive programming has to do with actually teaching you how to program effectively. The most important advice I got for competitive programming was <i>walk away from the computer.</i> The biggest trap when programming is to write code before you know how to solve a problem, as this will tend to encourage you to spend all of your time making no progress towards actually getting a solution. The tale of the Sudoku solver [1] is salutatory here.<p>Another useful skill is how to debug algorithms. Debugging a competitive programming problem usually amounts to taking an input that fails and trying to understand where in the algorithm (as expressed in poorly written and commented code!) the mistake is. Doing so under the time pressures of a competition also requires being able to rapidly decide if the <i>algorithm</i> is wrong, or it is the <i>implementation</i> is wrong, as well as figuring out where the most likely places for errors are likely to creep in. This kind of experience translates very usefully into professional programming, and debugging is a skill that seems to be poorly acquired by most young programmers.<p>When competitive programming hits the tier where you need to memorize all of the advanced data structures and algorithms to do better, that&#x27;s where further improvement in the leaderboards no longer translates to better programmers IMHO. But there&#x27;s still a lot of skills that need to be acquired to move up competitive leaderboards before you reach that point.<p>[1] <a href="https:&#x2F;&#x2F;ravimohan.blogspot.com&#x2F;2007&#x2F;04&#x2F;learning-from-sudoku-solvers.html" rel="nofollow">https:&#x2F;&#x2F;ravimohan.blogspot.com&#x2F;2007&#x2F;04&#x2F;learning-from-sudoku-...</a>