// codeart.ru / Офтопик / Про спортивное программирование Форум

Про спортивное программирование rss подписка

Автор: Evgeny Sergeev

Спортивное программирование, в моем понимании, это что-то вроде школьной олимпиады по программированию, только в более широких масштабах. То есть штука весьма интересная, но бесполезная. Почему бесполезная? Потому что реальной пользы от этого спорта мало. Каким бы суровым спортсменом-программистом ты ни был, это не избавит тебя от рутины, которой забит каждый день программиста. Спортсмен-программист или просто программист - неважно, ведь ошибки они делают одинаково часто.

Польза спортивного программирования не в приобретении навыков, полезных в повседневной жизни программиста, а скорее в развитии интеллекта, так сказать гимнастика для ума. Возможно, кто-то возразит, что профессия программиста - это весьма интеллектуальное занятие, и кто попало заниматься им не может. На самом деле для веб-программирования это не так. Задайте себе вопрос, когда вы в последний раз реализовывали алгоритм поиска подстроки в строке или делали реализацию красно-черных деревьев, ну или какой-нибудь другой популярный алгоритм? Уверен, что если и делали, то очень давно. Просто потому, что сейчас программирование - это рутина, доступная каждому желающему.

Особенно смешно, когда на собеседовании на должность веб-разработчика задают вопросы по теории алгоритмов. Господа, не смешите меня, ведь уже давно никто сам ничего не пишет (если конечно вы не работаете на Гугл или Яндекс). Поголовно используются готовые решения: фреймворки или библиотеки. Правда такова, что если программисту надо найти решение для задачи по поиску строки в подстроке, он не будет искать и самостоятельно реализовывать алгоритм для решения этой задачи, скорее всего, он скачает готовую библиотеку, и вся работа сведется к тому, чтобы правильно использовать интерфейс этой библиотеки.

В свое время я читал интервью Петра Митричева (кто не знает - это победитель Google Code Jam в 2006 г.), так вот, в нем на вопрос почему значительная часть призеров престижных чемпионатов по спортивному программированию - это выходцы из России, Китая и других стран, кроме США, он сказал довольно правильную вещь. Для нас, ребят из России, выиграть подобный чемпионат - это возможность получить престижную работу в Google или Microsoft, т.е. по сути выбиться в люди. Американцы же имеют больше возможностей получать хорошую зарплату, не работая в Microsoft. Поэтому стремления “засветиться” у них значительно меньше. А, следовательно, и результаты скромнее.

Я вообще считаю большой глупостью сравнивать спортивное программирование с реальной работой программиста. Дескать, если ты именитый победитель, то ты эффективнее любого члена команды. Вы видели когда-нибудь программы, которые пишутся на этих конкурсах? Обычно это десяток-другой строк малопонятного кода. Покажите мне хоть одно реальное приложение, состоящее из десятка строк кода? Не уверен, что привычка писать быстро и коротко - это то, что нужно хорошему программисту. В этом смысле спортивное программирование скорее прививает плохие привычки, нежели учит чему-то хорошему.

Единственное, за что я могу сказать спасибо спортивному программированию - это хорошая математическая база, которая хоть и не помогает в работе, зато развивает интеллект. Во всем остальном это обычная игра, в которой главное - это азарт и интерес. Кому-то интересно гонять мяч во дворе, кому-то интересно решать задачи на чемпионатах по спортивному программированию - каждому свое.

Обсуждение: Как быстро проверить число на четность

  1. О том как просто возвести число оканчивающееся на 5 в квадрат
  1. Спортивный кодинг даёт хорошую базу начинающему программисту.
    После олимпиадных задач многие обычные задачи видятся в ином свете. И хоть сами алгоритмы врядли часто пригодятся, но вот стиль мышления программиста может быть заложен именно на олимпиадах. Так как именно там легко определить хороший получился код или не дееспособный, неоптимальный. Олимпиада учит писать именно рабочий, оптимальный код. Вот это вполне приводится в жизни любого кодера.

  2. Подмена понятий кодер, программист, прикладной-программист.

Leave a Reply

« Что не так с Яндексом? Сообщения на почту »