Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Почему опыт спортивного программирования нежелателен при работе над крупным проектом?

ПрограммированиеКарьера+3
Анонимный вопрос
Java
  · 677
Лучший
Веб-разработчик, геймер, специалист по этике  · 3 нояб 2021
Вот это вообще отличный вопрос.
Опыт спортивного программирования не просто "нежелателен" при реальной работе в продакшене, он вреден.
Задачи в спортивном программировании ставятся под следующими условиями:
  1. Решить надо быстро, причём очень быстро, в часах и минутах.
  2. Есть конкретные автоматизированные требования успеха или провала решения, причём нужно уложиться в них и только в них.
  3. Никто не будет сопровождать ваше решение в дальнейшем, оно пишется на один раз.
  4. Вы работаете один, за редким исключением командных заданий на хакатонах.
Чаще всего задачи полностью искусственные, заключающиеся в написании очень сложного алгоритма преобразования одних данных в другие.
В реальном продакшене всё полностью наоборот, буквально.
  1. На решение вам даются дни, на некоторые задачи - недели и месяцы.
  2. Требования к задаче вам пишут словами, и даже если автоматизация их проверки будет, это вам нужно будет её написать. Более того, спецификация в 99 случаях из 100 будет неверной и в процессе решения заказчик её несколько раз уточнит.
  3. Вы пишете решение, которое, возможно, сотни людей будут сопровождать десятилетиями.
  4. Вы работаете как часть команды за редчайшими исключениями, когда задача настолько мала, что вы можете её сделать в полной изоляции целиком.
Чаще всего задачи решают конкретную проблему реальных людей, и заключаются они в интеграции уже имеющихся более мелких решений в одну целую систему.
Например, вот такой код, являющийся решением одной конкретной задачи с 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)), []) : [''];
2 эксперта согласны
Не буду делать "эсперт возражает", но: почему берётся как аксиома, что человек с опытом спортивного программировани... Читать дальше
Инженер-электрик  · 3 нояб 2021  · elremont.ru
Спортивное программирование это особый жанр, не всегда пересекающийся с реальными проектами. Задачи там как правило сильно синтетические и решаемые за обозримое время, иначе первых и вторых не найти. Реальные проекты, как правило, долгоиграющие, требующие огромного количества рутинной работы. Опять таки трудно измеряемый софт-скилл - умение найти контакт с коллегами... Читать далее
2 эксперта согласны
Да, всё так и есть. Реальный продакшен и спортивное программирование это как два мира отдельных практически.
Хореограф- постановщик. Преподаватель теоретических дисциплин.  · 27 янв 2022
Сложно сказать...
Могу предположить это из-за того, что метод ориентирован на получение частного результата.
Но это только предположение и не более.