← Все вопросы

Что такое competitive programming и стоит ли им заниматься, если не иду в олимпиады?

Задан 20 месяцев назад1.4к просмотров2 ответа
7

Натыкаюсь на термин competitive programming (спортивное программирование). Это то же самое, что олимпиады? И есть ли смысл им заниматься, если я не собираюсь становиться чемпионом, а просто хочу стать хорошим программистом?

2 ответа

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

Competitive programming (по-русски «спортивное программирование») — это решение алгоритмических задач на скорость в соревновательном формате. Олимпиады — это его частный случай (официальные соревнования), но в широком смысле «спортивное программирование» — это вообще весь этот жанр: контесты на Codeforces, тренировки, архивы задач.

Стоит ли заниматься, даже не метя в чемпионы — да, и вот почему:

  • Учит думать алгоритмами и про эффективность. Ты начинаешь видеть, какой код быстрый, а какой тормозит — это бесценно для любого программиста.
  • Прокачивает скорость и точность кодинга. Постоянно пишешь небольшие программы под давлением — рука набивается.
  • Реально помогает на собеседованиях. Крупные IT-компании любят давать алгоритмические задачи, и люди со спортивным бэкграундом проходят их легко.

Но честно: для практической разработки (сайты, приложения) спортивное программирование — это одна из мышц, а не вся профессия. Делать продукты учит другое. Поэтому идеально: позаниматься спортивным программированием год-два «для мозгов», но не превращать его в самоцель, если твоя цель — инженерная разработка.

4

Я бы сказал так: относись к competitive programming как к спортзалу для головы. Профессиональный программист не обязан быть мастером спорта по алгоритмам, но базовая «алгоритмическая форма» делает тебя заметно сильнее коллег, которые умеют только склеивать готовые библиотеки. Решай по 1-2 задачи в день в удовольствие — и через полгода заметишь, что код стал чище и быстрее даже в обычных проектах.

Ваш ответ

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