Вот это вообще отличный вопрос.
Опыт спортивного программирования не просто "нежелателен" при реальной работе в продакшене, он вреден.
Задачи в спортивном программировании ставятся под следующими условиями:
- Решить надо быстро, причём очень быстро, в часах и минутах.
- Есть конкретные автоматизированные требования успеха или провала решения, причём нужно уложиться в них и только в них.
- Никто не будет сопровождать ваше решение в дальнейшем, оно пишется на один раз.
- Вы работаете один, за редким исключением командных заданий на хакатонах.
Чаще всего задачи полностью искусственные, заключающиеся в написании очень сложного алгоритма преобразования одних данных в другие.
В реальном продакшене всё полностью наоборот, буквально.
- На решение вам даются дни, на некоторые задачи - недели и месяцы.
- Требования к задаче вам пишут словами, и даже если автоматизация их проверки будет, это вам нужно будет её написать. Более того, спецификация в 99 случаях из 100 будет неверной и в процессе решения заказчик её несколько раз уточнит.
- Вы пишете решение, которое, возможно, сотни людей будут сопровождать десятилетиями.
- Вы работаете как часть команды за редчайшими исключениями, когда задача настолько мала, что вы можете её сделать в полной изоляции целиком.
Чаще всего задачи решают конкретную проблему реальных людей, и заключаются они в интеграции уже имеющихся более мелких решений в одну целую систему.
Например, вот такой код, являющийся решением одной конкретной задачи с
Codewars.io, на продакшене будет стопроцентным мусором, который не пройдёт никакой code review:
const a = ['08', '124', '1235', '236', '1457', '24568', '3569', '478', '57890', '689'];
const getPINs = p = o => o.length ? p(o.slice(1)).reduce((r, c) => r.concat(a[o[0]].split('').map(x => x + c)), []) : [''];