Блог пользователя MikeMirzayanov

Автор MikeMirzayanov, 14 лет назад, По-русски

Последнее время на страницах Codeforces дважды появлялись скептические мысли относительно полезности студенческого спортивного программирования. Ответить захотелось развернуто, так что пишу эту заметку.

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

Итак, зовут меня Мирзаянов Михаил Расихович. Если кто не в курсе — я являюсь руководителем Центра олимпиадной подготовки программистов в Саратовском государственном университете. И да, наверное вы знаете, что я являюсь основателем и руководителем проекта Codeforces. Его большая часть кода написана мной, но с радостью отмечаю, что я не единственный разработчик — у нас есть команда, и это здорово. Спортивным программированием я занимаюсь довольно давно, примерно с моего первого курса в университете. Были успехи на финалах ACM-ICPC, потом были и значительные успехи в качестве тренера школьников и студентов. Короче, я являюсь инсайдером спортивного программирования. В дискуссии вокруг программирования часто всплывает термин "промышленное программирование", это мне тоже близко: полтора года я руководил группой разработки SaaS-продукта в компании GridDynamics. Замечу, что и сам Codeforces во многом является промышленной и инженерной разработкой.

Теперь, собственно, по теме. Более 10 лет я в той или иной степени и форме занимаюсь спортивным программированием и составил определенный взгляд. Если коротко, в большинстве случаев студенческое спортивное программирование очень даже нужно и полезно. Попробую высказаться по пунктам, но не придерживаясь особого порядка.

  1. Соревнования по программированию учат алгоритмам. За исключением олимпиад в нашей стране алгоритмы почти не преподают. Вероятно, есть какие-то единичные исключения. Однако, спортивное программирование является массовым движением, с помощью которого учащиеся узнают, что такое динамическое программирование, структуры данных, потоки, строковые алгоритмы и многое другое. Обратите внимание, что для многих участников настольной книгой является книга Кормена "Алгоритмы: построение и анализ" — изложение западного курса по алгоритмам. Как минимум в нашей стране (уверен, что и за пределами) подобный курс, настолько подробно, с соответствующей практикой фактически не преподается.
  2. Соревнования по программированию для многих становятся стартом в программирование. Я знаю довольно большое количество моих ребят, кто по складу не совсем программист. Кто-то больше математик, кто-то больше геймер. Но в настоящий момент программирование является перспективной и быстроразвивающейся индустрией, в которой неплохо работать. Подготовленный выпускник ВУЗа гарантированно трудоустраивается, получает нормальную зарплату. Для таких ребят олимпиады стали возможностью познакомиться с программированием через около математические задачи/фан контеста. Я уверен, что без олимпиад им бы пришлось проделать значительно более неинтересный, менее продуктивный путь в программирование (или даже они не стали бы заниматься этим).
  3. Спортивное программирование развивает навыки писать код без багов, думать о крайних случаях, о производительности. Оно не учит организовывать код. Я неоднократно видел картину, когда разработчик пишет код, затем обновляет в браузере страницу (куда-то кликает, заполняет формы), затем говорит "черт", правит строчку, и все повторяется. А вот олимпиады отучают дебажить, они учат сразу писать правильный код.
  4. Спортивное программирование дает опыт работы в команде, коллективе. Работать в одиночку и в коллективе — это две большие разницы. Далеко не все умеют конструктивно совместно что-то обсуждать, совместно вырабатывать решения. Командные олимпиады учат этому. Учат слышать людей, принимать во внимание их сильные и слабые стороны, индивидуальные особенности. Если вы научились руководить ACM-ной командой, то это непременно зачтется в плюс в вашем будущем менеджерстве. В некоторой степени дело не только в командности студенческих олимпиад: у многих умных молодых людей своеобразный социальный тип поведения, общение в сообществе идет им на пользу. Они осоциализируются что-ли.
  5. Спортивное программирование учит фундаментальным основам, которые очень часто теряют те, кто развивается отдаленно от академической среды. Я не однократно проводил собеседования по приему на работу — довольно многие могут кое-как сказать, что такое индексы в базах данных, а вот как они реализованы (хотя бы примерно), знает совсем мало кто. Вы скажете, что это не нужно знать? Еще интересный пример. На собеседование приходили люди, кто знал много аббревиатур, концепций, архитектур, паттернов и т.п. Иногда я спрашивал такой вопрос: пусть у вас есть хэш-мэп и вы туда в цикле по случайному ключу (например, строчка длины символов 10) кладете случайное целочисленное значение. Сколько за секунду вы сделаете таких присвоений. На каком компьютере? Да на моем, вот он стоит. Угадайте хотя бы крайне примерно. Каких только ответов я не слышал: отвечали сто, было и тысяча, был и миллиард.
  6. Спортивное программирование может принести медали/дипломы, которые помогут найти хорошую работу.
  7. Спортивное программирование введет вас в очень интересный круг общения. Мои лучшие друзья — мои коллеги по команде, люди с кем я вместе учился, кого учил. Это очень интересные, образованные и хорошие люди, с кого приятно брать пример.
  8. Спортивное программирование введет вас в очень полезный круг общения. Знакомства — очень полезная в жизни штука. Это слабо ощущается пока ты школьник, студент, но со временем это становится очевидным.
  9. Спортивное программирование дает возможность немного попутешествовать. Как-то в самолете я разговорился с американцем и перечислил ему все американские города, где побывал. Он был удивлен и грустно сказал, что они с женой уже давно собираются на Гавайи.
  10. Спортивное программирование учит думать и быстро соображать.
  11. Существует не так много областей человеческой деятельности, где Россия (или ваш ВУЗ) впереди планеты всей. Если у вас получается внести свой вклад в значимые достижение страны (города, ВУЗа), то это, в самом деле, почетно и заслуживает уважения. Когда мои воспитанники поднимаются на сцену получить заслуженные призы, я по-настоящему ощущаю, что такое патриотизм. И всех тех, кто приносит славу стране, я считаю патриотами. Такие победы несомненно важны — они создают тот положительный имидж, без которого сложнее сотрудничать, привлекать инвестиции, показывать потенциал региона.
  12. Спортивное программирование тесно дружит с преподаванием в ВУЗах. Существует практика, когда в прошлом участники соревнований остаются в ВУЗе и преподают там. Это очень нужно и правильно. Мы много говорим о том, что программирование очень динамичная область знаний, что пыльные профессора не могут дать актуальные знания по программированию. Привлечение молодых преподавателей в ВУЗы — единственный способ повышения уровня IT-образования. Практика показала, спортивное программирование способствует тому, что вчерашние выпускники не покидают ВУЗы. Это очень здорово.
  13. Спортивное программирование это просто очень интересно! Я еще не забыл тот драйв, когда сдав очередную задачу, ты видишь себя на первой строчке мирового рейтинга, но знаешь, что китайцы дышат тебе в спину. Я мало знаю таких интересных и одновременно полезных занятий.
  14. Спортивное программирование не мешает промышленному. Конечно, есть уникумы, кто не вписывается в промышленную разработку ПО. Но мой опыт показывает, что если даже вчерашние олимпиадники упустили в своем обучении какие-то аспекты промышленного программирования, они быстро осваиваются. Умение обучаться, думать и программировать позволяет им очень быстро наверстать упущенное. Более того, мой опыт говорит об очень четкой положительной корреляции в успехах в спортивном программировании и карьерным ростом в промышленности.
  15. Спортивное программирование учит решать задачки, которые очень часто спрашивают на собеседованиях в различных IT-компаниях. Все компании хотят получить людей, кто не просто знает определенный framework или язык, а умеет думать.

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

Напоследок отмечу, что в Саратовском государственном университете в Центре олимпиадной подготовки занимается довольно большое число студентов. В основном, мы набираем тех, кто практически (или вообще) не занимался в школе. Мы читаем лекции, проводим тренировки. Я вижу, как растут со временем люди и негодую, когда пишут, что студенческие олимпиады не нужны. Передо мной 30+ контрпримеров. Я уверен, что для всех вовлеченных в обучение, это полезно и нужно. Большая часть наших студентов не станет финалистами, но все они получают значительный набор знаний и навыков. В Центре они нашли интересный способ бесплатно получить все это по специальности. Такое дополнительное образование дает конкурентное преимущество при поиске работы в будущем. Не это ли самый правильный вариант студенческого образования?

Прошу прощения за сумбурность текста — на часах почти четыре ночи. Замечания о синтаксисе и пунктуации прошу отсылать мне через личные сообщения.

MikeMirzayanov

  • Проголосовать: нравится
  • +113
  • Проголосовать: не нравится

14 лет назад, # |
Rev. 3   Проголосовать: нравится +18 Проголосовать: не нравится

Согласен с выше написанным. 

Олимпиадное программирование - во многом полезное. Если бы оно не приносило пользы - разве кто-то занимался бы этим?

Раз уже "задели админа" - значит, и в самом деле, слишком много разговоров на эту тему.

Тут получается, как в том анекдоте старом - "не качайте эту игру... Геймплей примитивный, графика - лажа... Я знаю, что говорю, я в нее уже 5 лет играю!" Вот и здесь, народ программирует-программирует, и между делом занимается обсуждением того, как это бесполезно, и что за это время лучше потратить на хобби/работу/девушку.

Прям как клуб анонимных алкоголиков:)

  • 13 лет назад, # ^ |
      Проголосовать: нравится +10 Проголосовать: не нравится
    Извините за "не по теме", но утверждение 2 звучит несколько спорно, т.к. вместо слов "олимпиадное программирование" можно подставить, например, "алкоголь")))
14 лет назад, # |
  Проголосовать: нравится +51 Проголосовать: не нравится
Я один такой меркантильный и пока читал, все время ждал когда же появится пункт про приятные призы и памятные подарки на олимпиадах?
14 лет назад, # |
  Проголосовать: нравится +3 Проголосовать: не нравится
Футболки правда не всегда приятные. В полуфинальную я дважды влезу
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Постирай ее хорошенько. Моя четвертьфинальная тоже сначала была как платье, потом несколько раз постирал-села.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +15 Проголосовать: не нравится
    И вы называете это проблемой?:) У нас в Харькове вышло так, что тем, кто заказал L-ки, выдали М-ки, а тем кто заказал XL-ки -  S-ки. А если футболка больше - все еще не так ужастно)
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Ну да, называю:) Такие футболки просто место в шкафу занимают.
      • 14 лет назад, # ^ |
          Проголосовать: нравится +44 Проголосовать: не нравится
        Я дедушке отдал. Дедушка доволен =)
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Да вообще футболки не тех размеров раздариваются налево и направо за нефиг делать - все довольны =)
          В самом крайнем случае - нас тренер научила - ими мыть пол хорошо, там материал как раз подходящий.
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Флешки, кстати, точно так же раздариваются.
        • 14 лет назад, # ^ |
          Rev. 2   Проголосовать: нравится +1 Проголосовать: не нравится

          *да что ж за проблема с вечными дублями, ох...*
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится

      И при этом моя XL была намного больше от M тиммейта; да, меряли: +1 см в шее и неполные +2 см в длину:)

      Зато весело было меняться:)

      Мне вот в Харькове достался уникальный пакет от Яндекса - "ндекс". У всех была первая буква красная, остальные черные, а у меня первой просто не было.   

      Вспоминаю как в универе на соревнованиях, где спонсор давал свои футболки 5 цветов (рэндомно), было забавно смотреть на тех, у кого уже 3 или 4 из 5 есть дома в коллекции. 

      Футболки можно коллекционировать, обменивать, дарить, использовать вместо тряпок... А вам - носить да носить... Неинтересно:)

  • 14 лет назад, # ^ |
      Проголосовать: нравится +19 Проголосовать: не нравится
    Пузо отъедай.
14 лет назад, # |
Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится
14 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
Наша команда как раз относиться к тем, кто не попадет на финал. Но как верно написано в статье, мы стараемся развиваться и изучать что то новое,  и это делать на много проще и интереснее именно в олимпиадах, появляеться хорошая мотивация.
Было написано про дебаг и правильный код с ходу - это круто. И это приходит с опытом тестирования, в то время когда в нашем ВУЗе даже никто и не задумывался, что такое "тестирование"
Очень положительная статья!
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
Еще к 3-му пункту можно добавить что олимпиадное программирование способствует доскональному изучению языка и среды разработки. Т.е. какие-нибудь дополнительные модули и навороченные возможности тут, конечно, ни к чему, но база изучается вдоль и поперек.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится
    Разве?
    ООП, шаблоны - это первое, что приходит на ум.
    • 14 лет назад, # ^ |
        Проголосовать: нравится -8 Проголосовать: не нравится
      Ну, я ж не только про С++  говорил. Хотя, даже там ООП вполне можно (а местами даже нужно) использовать в олимпиадном коде.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Только почему-то из всех, кто видел мой код с строчкой
        class SegmentsTree {
        Только преподаватели не делали квадрытные глаза. Т.е., конечно, можно и полезно, но вот я лично сам догадался, что проще писать один класс, чем мучиться с глобальными переменными.
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          Я, например, тоже структуры данных в отдельные классы выношу (правда, использую struct, а не class, по сути без разницы). Удобно, знаете ли, когда нужно написать что нибудь вроде дерева отрезков в деревьями фенвика в листах.
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Да пусть тот же Java. 
        ИМХО везде ООП притягивается самим языком;
        Везде, где без него можно обойтись - обходятся. Не все, но большинство.
    • 14 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Я использую генерики и ООП (в Java)
14 лет назад, # |
  Проголосовать: нравится +8 Проголосовать: не нравится
Михаил Расихович, Вы ещё пропустили мои пять копеек, если что :) Если Вы, конечно, с ними согласны.
  • 14 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится
    Да, в этом плане любая целенаправленная деятельность полезнее раздолбайства :)
    • 14 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится +5 Проголосовать: не нравится

      По-моему вообще любая целенаправленная деятельность полезнее раздолбайства во всех планах:)
      • 14 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        А целенаправленное раздолбайство? :-)
        • 14 лет назад, # ^ |
            Проголосовать: нравится 0 Проголосовать: не нравится
          И какая же цель?
          • 14 лет назад, # ^ |
              Проголосовать: нравится 0 Проголосовать: не нравится
            Ну.... Это же просто...
            Представь урок литературы... Или что-то другое, чем тебе очень не хочется заниматься, например реферат по истории...

            И для того, чтобы не заниматься делом, человек целенаправленно раздолбайствует. :-)
            • 14 лет назад, # ^ |
                Проголосовать: нравится -8 Проголосовать: не нравится
              Да, кстати, это понятно как: я в 11 классе как раз пошёл на городскую олимпиаду по математике, только чтобы не идти на урок литературы... и занял 1 место...
              • 14 лет назад, # ^ |
                  Проголосовать: нравится 0 Проголосовать: не нравится
                Я уже 4 года так на все олимпиады хожу)
                • 14 лет назад, # ^ |
                    Проголосовать: нравится 0 Проголосовать: не нравится
                  Не, по физике и по программированию я таки целенаправленно готовился. А по математике получилось ВНЕЗАПНО - вот и собрал на городе три первых места)))
14 лет назад, # |
  Проголосовать: нравится -7 Проголосовать: не нравится
Отличная статья.
14 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
А многие ли из известных в прошлом олимпиадников работают нынче в "элитных отрядах" каких-нибудь очень известных компаний? Много ли ACM-щиков в Microsoft, Google, Oracle, IBM, Adobe и др.?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    А разве это показатель?
    Может олимпиадник и не хочет работать в Google, Microsoft...
    Разве это критерий счастья или успеха для человека?
  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Хм, ну Петр Митричев и Дмитрий Джулгаков работают в Google, насколько я знаю.
    • 13 лет назад, # ^ |
        Проголосовать: нравится +2 Проголосовать: не нравится
      Как минимум на половину, твои знания устарели. Насколько я знаю :)
      • 13 лет назад, # ^ |
          Проголосовать: нравится +6 Проголосовать: не нравится
        А я знаю, что они устарели как максимум на половину. Достигнут баланс? :)
  • 13 лет назад, # ^ |
      Проголосовать: нравится +38 Проголосовать: не нравится
    В Google олимпиадников не просто много, а очень много. Все время встречаешь кого-нибудь в ACM-овских или TopCoder-овских футболках.

    А еще в гугле есть таблица, куда записываются сотрудники, участвующие в топкодере. Потом по этой таблице считается топкодеровский рейтинг гугла по формуле для стран. Так вот, последние годы он стабильно выше рейтинга России :)
    • 13 лет назад, # ^ |
      Rev. 2   Проголосовать: нравится -14 Проголосовать: не нравится

      Неужели в Yandex-овских фудболках там совсем никто не ходит? ;)
      • 13 лет назад, # ^ |
          Проголосовать: нравится 0 Проголосовать: не нравится
        Иногда бывает :) Причем не только бывшие яндексоиды.
        • 13 лет назад, # ^ |
            Проголосовать: нравится +3 Проголосовать: не нравится
          Анекдот вспомнился:
          23 февраля Штирлиц надел свою старую, любимую буденовку, взял в руки красное знамя и, распевая революционные песни, пошел к рейхсканцелярии... В это день он как никогда был близок к провалу...
          :)
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Думаю, что участники TopCoder'а с невысоким рейтингом просто не вписываются в эту таблицу...
    • 13 лет назад, # ^ |
        Проголосовать: нравится 0 Проголосовать: не нравится
      Интересно было бы увидеть эту таблицу. Или хотя бы гистограмму. Есть ли синие, есть ли желтые, есть ли красные... :-)
      • 13 лет назад, # ^ |
          Проголосовать: нравится +11 Проголосовать: не нравится
        Боюсь, что всем желающим посмотреть на эту таблицу нужно сначала прислать мне резюме, а потом успешно пройти собеседование.. ;)
        • 13 лет назад, # ^ |
            Проголосовать: нравится +1 Проголосовать: не нравится
          А надбавка к окладу за красный рейтинг предусмотрена? :)
14 лет назад, # |
  Проголосовать: нравится +17 Проголосовать: не нравится

ППКС

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

От себя добавлю к пункту про "учит думать" - спортивное программирование учит думать о том, о чем в другой логике никто не задумывается. Меня в жизни десятки раз выручало умение видеть ограничения, правильно их понимать и оценивать, замечать исключения, быстро приводить контрпримеры и многое другое, чему я научился за 8 лет программерского спорта. Причем это всё в отраслях, зачастую даже не связанных с IT.

  • 14 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится
    Угу. Например, недавно в open-source проекте pChart (посторитель графиков для PHP) я нашел отличнейший кусок кода: добавление точки на диаграмму происходит за линию: мы перебираем все точки и добавляем на первую свободную. Итого добавление 6000 точек идёт несколько секунд. После оптимизации "запоминаем, куда добавили в последний раз" работает мгновенно.
    • 14 лет назад, # ^ |
      Rev. 5   Проголосовать: нравится -8 Проголосовать: не нравится

      Вообще угу. Я в своё время код для диплома бакалавра написал за одну ночь. Физики - не программисты, они почему-то решили, что это мегакруто, хотя там нужен был только минимальный навык использования простейших всем олимпиадникам известных алгоритмов, мозга и языка C++.
      • 13 лет назад, # ^ |
          Проголосовать: нравится +8 Проголосовать: не нравится
        Вот еще одни плюс олимпиадного программирования. Оно помогает в учебе и при занятиях научной работой. Мне очень сильно помогло.
      • 13 лет назад, # ^ |
          Проголосовать: нравится -11 Проголосовать: не нравится
        угу, угу и еще раз угу. Мне на курсовую по терверу дали смоделировать программу, которая делает рандомную перестановку:)
        • 13 лет назад, # ^ |
          Rev. 3   Проголосовать: нравится -56 Проголосовать: не нравится

          Да, кстати, никто не знает, random_shuffle случайно не индусы писали? Почему-то на тесте 100000 раз сгенерить перестановку из 100 символов работала около полуминуты. Если сгенерить за nlogn, то по идее-то должна работать не более чем 6*10^7 раз, что должно укладываться в секунду с запасом...
          • 13 лет назад, # ^ |
              Проголосовать: нравится +15 Проголосовать: не нравится
            Равномерно распределённую случайную перестановку можно сгенерировать за линейное время.

            У меня при компиляции GNU g++ 4.5.2 (MinGW-TDM) random_shuffle на массиве работает 0.3 секунды с указанными константами. Кажется, что слишком долго.

            Профайлер говорит, что std::iter_swap <int *, int *> (int *, int *) вызывается как раз 99 * 100,000 раз, так что “индусы” тут ни при чём, функция random_shuffle работает как раз линейное время.

            А тормозит, как обычно, встроенный сишный rand (). Со своим генератором становится быстрее в 2–3 раза, получается уже вполне разумное время.
            • 13 лет назад, # ^ |
                Проголосовать: нравится +12 Проголосовать: не нравится
              Спасибо.
            • 13 лет назад, # ^ |
              Rev. 2   Проголосовать: нравится +16 Проголосовать: не нравится

              Профайлер? Какой?
              Что-то слышал про gprof.
              • 13 лет назад, # ^ |
                Rev. 2   Проголосовать: нравится +26 Проголосовать: не нравится

                Да, я пользуюсь gprof.

                Делаем g++ <some-options> -pg prog.cpp -o prog.exe.

                Далее запускаем prog.exe (так, как нам нужно).

                Появляется файл gmon.out.

                А теперь запускаем gprof prog.exe >log.txt и читаем этот log.txt. В нём написано, кто сколько раз вызывал какую функцию, а также сколько примерно времени программа провела в каждой функции и её детях.

                Если компилировать с оптимизациями, то можно сильно удивиться тому, что половина функций заинлайнилась, а другая половина вызывается неизвестно откуда.

                Кстати, я так понимаю, что бывает более подробная профилировка, с информацией по каждой строке. Но я так не умею. Если кто-то умеет — расскажите, как.
                • 13 лет назад, # ^ |
                    Проголосовать: нравится +8 Проголосовать: не нравится
                  Вроде как-то так.
                  В частности:
                  g++ -fprofile-arcs -ftest-coverage a.cpp
                  a.exe
                  gcov a.cpp
                  
                  • 13 лет назад, # ^ |
                      Проголосовать: нравится 0 Проголосовать: не нравится

                    ===========================================

                    Ух ты, здорово, спасибо большое!!! Надо бы попробовать разобраться ;)

»
11 лет назад, # |
  Проголосовать: нравится -28 Проголосовать: не нравится

Я бы не стал ограничивать олимпиаду по программированию только студенчеством. У меня все начиналось еще со школьных олимпиад. Еще в 90-х на республиканских школьных олимпиадах задания по сложности не уступают сегодняшним, которые я вижу здесь.

  • »
    »
    11 лет назад, # ^ |
      Проголосовать: нравится +8 Проголосовать: не нравится

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

»
9 лет назад, # |
  Проголосовать: нравится +5 Проголосовать: не нравится

Is there any English version of this post? I clicked on English but it's not being translated.

»
9 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится

Можете сказать мне пожалуйста в какой возраст лучше заниматься этим. Например я сейчас усиленно изучаю Java SE. Возможно ли потом после того , как я выучил джаву научиться спортивному программированию? И имеет ли это смысл изучать олимпиадное программирование после джавы или какого либо другого языка?

  • »
    »
    9 лет назад, # ^ |
      Проголосовать: нравится +4 Проголосовать: не нравится

    Тут дело скорее не в возрасте, а 1) в предрасположенности к решению олимпиадных задач и 2) в наличии большого количества свободного времени. Ну и Java вполне сойдет как язык для спортивного программирования.

    • »
      »
      »
      9 лет назад, # ^ |
        Проголосовать: нравится +5 Проголосовать: не нравится

      Нет вы не поняли. Я выбрал сторону разработки на Java. После этого стоит идти на спортивное программирование ?

      • »
        »
        »
        »
        9 лет назад, # ^ |
          Проголосовать: нравится +5 Проголосовать: не нравится

        Только если решение олимпиадных задач доставляет удовольствие.