Краткая предыстория. В одном из блогов завязалось серьезное обсуждение о мотивации в спортивном программировании. SkidanovAlex высказал свое мнение (не знаю, насколько искреннее и серьезное), что: "От олимпиадного программирования нет пользы кроме медали :о)". Я ему кратко ответил, что я не получал медалей, но получил от СП огромную пользу в саморазвитии, и что считаю это намного важнее любых медалей. Он в свою очередь закономерно спросил, какую конкретно пользу я получил. Хотел ответить там же, но ответ получился немного великоватым, и в комментарий бы, скорее всего, не влез, так что решил выделить его в отдельный блог-пост. А вот сам ответ:
Если в общем, то спортивное программирование помогло мне в заметной степени дисциплинировать свой ум, что я считаю очень полезным достижением.
А если подробнее, то вот какие явные плюсы занятия СП мне пришли в голову (наверняка многое упустил из виду, может кто-то что-то добавит):
Если в общем, то спортивное программирование помогло мне в заметной степени дисциплинировать свой ум, что я считаю очень полезным достижением.
А если подробнее, то вот какие явные плюсы занятия СП мне пришли в голову (наверняка многое упустил из виду, может кто-то что-то добавит):
- развивает умение понимать суть проблемы;
- развивает умение сводить сложную проблему к нескольким более простым проблемам;
- вырабатывает способность и привычку находить более простое/эффективное/красивое решение проблемы;
- вырабатывает привычку доказывать эффективность решения перед его реализацией, ибо методика "авось сработает" обычно приводит к плачевным результатам;
- развивает способность решать проблему быстро, но не спеша;
- развивает способность удерживать в уме сложные схемы объектов и связей;
- развивает способность длительной концентрации внимания на проблеме, требующей решения;
- развивает способность быстрого переключения внимания с одной проблемы на другую;
- развивает память, ведь требуется помнить не мало алгоритмов, теорем, приемов;
- помогает через системы рейтингов более-менее объективно оценивать свой уровень подготовки и эффективность тренировок;
- помогает отказаться от привычки доверяться обманчивым ощущениям (некоторые ошибочно называют это "интуицией"), а доверять исключительно разуму и здравому смыслу (я убежден, что только через него и может проявляться настоящая интуиция).
Почему единственная польза это медаль, давайте уж тогда польза только от абсолютного чемпионства:)
На самом деле понятно, что если ты крутой олимпиадник это еще не значит что ты так же круто разрабатываешь промышленный софт.
Главное же что это интересно.
Если рассуждать пессимистично, то например какая польза от того что люди играют в шахматы или занимаются киберспортом или вообще любым видом спорта тратя огромное количество времени.
В спортивном программировании не меньше пользы чем от шахмат я думаю никто спорить не будет)
То что те методы, которые тут применяются совсем не находят применения на практике тоже не так. В некоторых областях есть и даже довольно часто. Помню на прошлом полуфинале Роман Елизаров как раз и говорил что ему приходится сталкиваться при разработке ПО
Дак и наверняка Александр не жалеет что занимался этим 5 лет.
Разве бы променял он финалы ACM, онсайты топкодера и гуглоджема на что-то другое))
Еще в качестве плюсов от себя могу добавить что так как часть соревнований проходит на английском языке то волей неволей скорость чтения английского текста почти сравнивается с русским))
Как почему? Потому что медаль у Скиданова есть.:) Стал бы он чемпионом - говорил бы только об этой цели, а все остальные считал бы ерундой.
Например, я очень хорошо понимаю чужой код. И я легко вижу ошибки в логике работы программы. Потому что много читал решения на топкодере других участников.
И, самое главное, мне это просто интересно. Я люблю решать задачи, мне нравится соревновательный дух. И то количество мест, которые я посетил, я бы не посетил без СП. Даже не только по финансовой причине - я бы просто не поехал туда. А тем временем побывал я в многих интересных местах.
Тут надо определить вообще проблему. Мой изначальный коментарий был про ситуацию, когда человек хочет сагитировать ребят готовиться к полуфиналу. Значит, он хочет чтобы они посвящали много времени. Соответственно я спросил - как он может мотивировать трату огромного количества времени на это. Потому что с моей точки зрения это не оптимально. Мне было интересно в чем мотивация.
Если рассмотреть другие ситуации - СП как хобби. Если тратить на это пол часа в день, это никак не мешает. И это дает все бонусы, перечисленные в первом посте (хотя они очень абстрактные - их можно за уши притянуть к чему угодно). Смысл впадать в крайности и готовиться по много часов в неделю тогда? Получается, что только регалии :о) Пусть не медалька, но поездка на финал.
Другой вопрос о рассматриваемом сценарии: а с кем мы сравниваем? Часто сравнивают с своими сокурсниками. А сокурсники чаще всего два месяца в году готовятся к сессии, а 10 месяцев в году бухают и девчонок тискают. Ну тут уж удивительно, как это вышло, что мы их лучше можем закодячить какую-то фигню :о)
А те, кто в это время уже чем-то занимаются, допустим с первого курса ушли в какой-нить местный епам, они может не будут хуже писать дийкстру, но по совокупности их опыт будет не хуже вашего. Как-то так.
А в крайности я специально бросаюсь, чтобы пробудить более интенсивное обсуждение :о)
Но это в теории. А на практике, человек не может понять интересно ему это пока не попробует. А чтобы он попробовал, уже нужно как-то стимулировать.
Заниматься же СП из соображений "мне это пригодится для будущей работы", не получая кайфа при этом - что-то я таких мазохистов не встречал.
Аргументы вроде: я занимался делом X и благодаря этому у меня есть Y не проходят, потому что никто не знает что было бы, если бы я не занимался X а потратил время на Z. Вполне возможно, что это было бы выгоднее (в смысле той выгоды, которой мы оценивали Y).
Сказать так можно, но это тоже необоснованно, ведь тот факт, что Y у вас появился хронологически после занятий X не означает, что Y появился именно в следствие занятий X. Может просто совпадение, а может вы еще занимались чем-то кроме X и это, незаметно для вас, развило Y. И, более того, даже если вы правы и действительно X вам дало Y, то можно ли из этого делать вывод, что и остальным X даст Y?
Например, один из ваших пунктов говорит о развитии памяти. Лично у меня память очень плохая, а я ведь занимаюсь СП. Как же так? Еще, у меня есть брат, который никогда в жизни никакими олимпиадами не занимался, но память у него просто в разы лучше моей. Еще один пример - это счет в уме. Я с большим трудом считаю в уме, несмотря на то, что большую часть жизни имею тестное отношение к математике и различным вычислениям. Почему так?
Тут все очень индивидуально, мне кажется.
ну не нужно скромничать))
суффиксные массивы, минкост и еще кучу алгоритмов же по памяти пишешь)
В чем я вижу проблемы? Я все еще могу закодячить алгоритм, который передо мной встает. Но теперь мне гораздо сложнее понять, с какой стороны вообще подойти к задаче. Скилы падают, если их не поддерживать, а поддерживать постоянно их нельзя.
А если будешь не ходить в тренажерный зал месяцами - результаты тоже снизятся. И что теперь, и не начинать?
В начале июля я познакомился с девушкой, которая позже стала моей супругой, и там уже как бы на игру стало пофигу :о)
Черт, по графику топкодера можно отследить историю человека :о) Интересно, у других людей экстремумы соответствуют каким-то событиям :о