Почему спортивное программирование — один из самых классных экстремальных видов спорта

Что такое спортивное программирование, почему на чемпионатах мира здесь всего один компьютер на троих и когда спортивный программист может уходить на пенсию, рассказала тьютор кафедры компьютерных технологий Университета ИТМО, «продюсер» лучших в мире программистов Лидия Перовская. И хотя тут не придется стрелять, как в биатлоне, и даже бегать с решением задач на дискетах уже не нужно, напряжение здесь не слабее, чем на Олимпийских играх или мундиале. Да и приметы свои есть:

«Термин “экстремальное программирование” на самом деле существует. У него есть несколько дисциплин. Одна из дисциплин называется 40-часовая рабочая неделя. Каждый программист, как и любой человек, который работает с дедлайнами, часто чувствует себя как герой из фильма “Крепкий орешек”, который разминирует бомбу. 40 часов закончились — твой компьютер автоматически заблокировался, и ты уже не можешь ничего сделать. Успеть к дедлайну — это реально экстремально».

«Есть еще одна дисциплина — парное программирование. Знаете, программировать — достаточно сложно. Когда ты пишешь код — ты должен погрузиться в себя, посмотреть на задачу, придумать какой-то способ решения, попробовать его, а потом подумать еще. Но в этой дисциплине есть такой неловкий момент: все это нужно делать, когда к вам в экран смотрит ваш коллега. Вам не только нужно терпеть, что кто-то осуждает ваши решения каждую минуту, когда вы реально выкладываетесь на сто процентов, но еще и — о боже, какая гадость — объяснять этому человеку, почему вы решили именно так. С такой экстремальной дисциплиной справляются только самые спортивные программисты».

«Но парное программирование можно развить еще больше, и тогда это из просто экстрима превращается в настоящий спорт. Теперь мы сажаем за стол уже не двух программистов, а трех и заставляем их работать уже не 40 часов в неделю, а пять. За это время нужно решить 12 задач — время пошло! Все это и называется спортивным программированием».

Лидия Перовская
Лидия Перовская

«Если я спрошу на улице, что такое спортивное программирование, все, скорее всего, представят биатлон. Потому что биатлон — это такая “спортивная лыжестрельба”. Спортивное программирование тоже звучит немного странно. На самом деле спортивное программирование — это как парное, но командное: за один компьютер садятся сильные программисты — настоящие спортсмены — и они должны решить как можно больше задачек за заданное время. Все строго: все стартуют одновременно, задачи одинаковые».

«Это очень популярная штука, такие соревнования проводятся больше, чем в 80 странах. А лучшие команды отбираются на финал чемпионата мира. Этот вид спорта постарше, чем Dota2. Он появился, когда гандбол стал олимпийским видом спорта. В 1970 профессия программиста вообще была очень спортивной: компьютер был размером с комнату, тяжелее, чем все мы вместе взятые, поэтому надо было быть спортивным, сильным программистом».

«Именно тогда группа энтузиастов где-то в Техасе пригласила всех желающих прийти и что-нибудь попрограммировать. Но, как вы понимаете, уже тогда программисты отличались качественным планированием, умением оценивать риски, поэтому на соревнования пришло в четыре раза больше людей, чем готовы были встретить организаторы. Что значит «готовы были встретить»? Дело в том, что в 1970 году были такие перфокарты, в которых дыроколом нужно было делать дырочки. Так вот дыроколов было в четыре раза меньше, чем участников. И организаторы решили скреативить: так и задумывалось, ведь у нас командное соревнование».

«Всего семь лет спустя чемпионат стал реальным международным соревнованием: туда приезжали команды из разных стран, был серьезный отбор. За все эти годы изменилось немного: сейчас в командах по три человека, они получают условия, решают задачи и отдают решение жюри. Еще 20 лет назад эта тема была чуть более спортивной: после того, как вы решили задачу, нужно было положить решение на дискету и отнести ее к жюри, а потом прийти обратно. Компьютерные технологии развивались — и сегодня уже не надо ходить. Средний вес финалистов у нас немного повысился, но мы работаем над этим».

«Сами соревнования изменились не сильно: и раньше, и сейчас есть жюри и надо придумать задачу. Задачи должны быть жизненными. Вот одна из таких задач с финала чемпионата мира по программированию. Представьте себе, что вы выбираете себе квартиру на Манхэттене, да, вы можете себе позволить любую. Но важно лишь выбрать оптимальное место. При этом вам не важен престиж района, цена за квадратный метр, соседи. Единственный самый важный критерий, по которому вы выбираете, где у вас будет квартира на Манхэттене, — это условие, до скольки «Старбаксов» вы сможете пройти с утра за пять минут. Очень жизненно».

«Самое главное, что на таких соревнованиях жюри максимально объективно. После того, как они придумали задачу, они не могут вам помешать. Правда, помочь тоже не могут. Вы отправляете задачу в автоматическую систему, которая говорит вам, правильно ваше решение или нет. Так что посимулировать не удастся».

«На финале чемпионата мира по программированию встречаются лучшие команды из всех регионов мира. У них есть пять часов на то, чтобы решить дюжину задач и три человека за одним компьютером. Видимо, за 40 лет у нас все еще не накопилось денег, чтобы у каждого в команде был комп».

«Финал чемпионата мира — это очень крупное мероприятие, и каждый год он проходит в новом месте. Но это не как Евровидение. Там следующий конкурс проходит в стране предыдущего победителя. А тут как-то немного неловко: дело в том, что команды из России выигрывают чемпионат каждый год с 2012 года. Как человек, который организовывал чемпионат мира пять лет назад и только-только выспался, скажу, что мы не будем проводить его каждый год, как только выигрывает наша команда. Но болеть за чемпионов — это реальный кайф».

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

«Ну окей, вы выиграли, подержали кубок над головой, потом выиграли второй раз и у вас наступает, что называется, спортивная пенсия. Если вы очень успешный футболист, пенсия наступит примерно лет в сорок. Этот тот самый случай, когда можно уйти на покой, уехать в Китай, тренировать «Реал Мадрид». У спортивных программистов пенсия наступает в 23 — два раза съездил на финал и все, вам больше там не рады. Но, к счастью, тут спортивное программирование имеет преимущества перед футболом. Если вы позанимались им десять лет, с работой точно получится».                                             

Тур де Теоретик: что нужно знать, отправляясь на научную конференцию                                

Сколько ученых нужно, чтобы оптимально доехать до Берлина, почему столовая в Кембридже не хуже, чем в Хогвартсе, а отправляясь на научную конференцию, не стоит ждать бесконечной череды нудных докладов, знает физик-теоретик лаборатории квантовой информатики Университета ИТМО Антон Козубов. Главное, отправляясь за рубеж, не спутать номер люкс с обычным, а электричку в Германии с поездом дальнего следования. Все это Антон уже опробовал на себе:                                             

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

«Моя первая конференция была в МГУ. Изначально я представлял, что научная конференция выглядит примерно так: все послушали доклады, пообсуждали, а вечером разошлись по своим комнатам, чтобы продолжить научные рассчеты. На самом деле это совсем не так. Научные конференции всегда сопровождаются тусовками».

«Итак, я приехал, в первый же день мне повезло познакомиться с очень интересной компанией. Уже после докладов мы шли в номера, поднялись на наш этаж и увидели, как к нам навстречу бежит человек в очень странной позе. Не успел я спросить у людей, что случилось, как он пробежал мимо нас с криком: “Я пси-функция”. Мне было очень страшно, что там что-то сколлапсирует»

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

«Тогда я еще не разобрался, как нужно бронировать отели, и не знал, что бронировать люксы в ИТМО нельзя. Получилось так, что случайно я забронировал именно люкс. Это было особенно пикантно, учитывая, что руководитель моей лаборатории и заведующий кафедры не смогли остановиться в этой же гостинице, так как там не осталось свободных номеров. Они жили в другой гостинице, в обычных номерах, за несколько километров до места проведения конференции. Как вы думаете, что такое люкс в Беларуси? На самом деле, это когда у тебя ковер не на одной стене, а на трех, а на завтрак у тебя вместо картофельных драников – кабачковые. Поэтому, учитывая небольшую разницу, к счастью, я уложился в бюджет, все обошлось»

«В следующий раз мы отправились на конференцию в Берлин. Но сначала скажите, как вы думаете, сколько нужно кандидатов наук, молодых ученых, чтобы добраться в этом городе из пункта А в пункт Б? Я тоже не знаю, но точно понял, что четырех недостаточно»

Антон Козубов
Антон Козубов

«Что в Германии, что в Австрии очень забавная транспортная система внутри городов. Нет разницы — метро это, электричка или поезд. Можно ехать на чем угодно, если оно останавливается на определенных станциях. Зная это, мы проконсультировались в метро, как нам ехать. Нам даже распечатали листик с информацией, на какую станцию и в какое время надо прийти. Мы пришли, дождались поезда и нас даже не смутило, что там были обычные спальные места, как в наших поездах дальнего следования. Мы сели, едем, и тут видим, что поезд проезжает нашу станцию без остановки. Мы, внимание, нашли проводника — да, он там, оказывается, был. Внимательно посмотрев на наши билеты, проводник вздохнул, ругнулся и сказал нам, что мы сели на экспресс, который без остановок следует в Кёльн. Было уже почти 12 ночи, а нам к утру надо было быть на встрече, которую нельзя было пропустить. Нам очень повезло, проводник остановил поезд в Потсдаме (это 30 км от Берлина) и высадил нам там. В общем, поспав ночь на вокзале, к утру мы все-таки были на встрече».

«В прошлом году нам тоже очень повезло: нас пригласили на конференцию в Кембридж, почти в Хогвартс. К слову, некоторые планы для “Гарри Поттера”, конкретно кадры в столовой, хотели снимать именно там, но остановились на Оксфорде. Хотя в Кембридже столовая ничуть не хуже, там действительно волшебно — очень вкусно, очень красиво и приятно. И да, самое волшебное — там не играло радио “Мегабайт”».

«Еще одна забавная история была, когда мы летели с пересадкой в Азии. Определенный отрезок нашего пути необходимо было проехать на поезде. И вот я сел на поезд, захожу в вагон и вижу, что там спят только двое людей. Я подхожу к проводнику и пытаюсь ему объяснить на всех доступных языках, что мне тоже нужно постельное белье. Он ни в какую не понимает, после чего я перехожу к языку жестов и показываю на постельное белье на полке у этих ребят. На что проводник не растерялся, разбудил этих пассажиров и выгнал их из вагона»

Михаил Курушкин
Михаил Курушкин

Истории из жизни рассказали и Михаил Курушкин, доцент научно-образовательного центра химического инжиниринга и биотехнологий Университета ИТМО, а также специальный гость — самый молодой стендапер России, ученик ФМЛ №239 Борис Зелигер.

Первый научный стендап-клуб придумали в Университете ИТМО для тех, кто любит смотреть стендапы, но в то же время не прочь узнать что-то новое о науке. Таким образом удастся популяризировать науку среди тех, кто, возможно, ранее не посещал лекции на других научно-популярных мероприятиях типа «Курилки Гутенберга» или Science Slam. Первая встреча клуба состоялась в марте 2018 года.

«Квантовый потанцевал» планируется проводить раз в три месяца. При этом примерить на себя роль стендапера будут приглашать и ученых из других вузов. К тому же, выступить на сцене клуба можно и по собственному желанию, достаточно лишь отправить заявку в Департамент по стратегическим коммуникациям Университета ИТМО.