← Все вопросы

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

Задан 11 месяцев назад554 просмотров2 ответа
7

Я нормально пишу сайтики и ботов, но друг говорит, что олимпиадное программирование — это вообще другое, и Codeforces — это не «настоящее» программирование. В чём разница между олимпиадным кодом и обычным?

2 ответа

12
✓ Принятый ответ — помог автору

Это правда разные вещи, хотя оба — программирование.

Обычное (прикладное) программирование — ты делаешь продукт: сайт, бота, игру. Важны архитектура, читаемость, чтобы код жил годами и его поддерживала команда. Скорость работы важна, но не всегда критична.

Олимпиадное / competitive programming (Codeforces и олимпиады) — ты решаешь математико-алгоритмическую задачу за ограниченное время. Главное:

  • Придумать алгоритм, который уложится в лимит времени и памяти (например, обработать миллион чисел за 1 секунду).
  • Код одноразовый, его никто не будет поддерживать — поэтому он часто кривой, с однобуквенными переменными. Это нормально для контеста.
  • Решает один человек, быстро.

То есть на Codeforces ты тренируешь алгоритмическое мышление, а делая бота — инженерные навыки. Оба полезны, но это разные мышцы. Друг прав в том, что это другое, но неправ, что Codeforces «не настоящее» — это просто другой жанр.

5

Добавлю практическую пользу: алгоритмика с Codeforces реально помогает на собеседованиях в крупные IT-компании (там любят давать задачи на алгоритмы). А ещё она прокачивает умение думать про скорость кода — пригодится, когда твой «обычный» проект начнёт тормозить на больших данных. Так что одно другому не мешает, лучше уметь и то, и то.

Ваш ответ

Войдите, чтобы ответить на вопрос.