JustPaste.it
User avatar
@anonymous · Sep 11, 2018

Хакер - Олимпиады по программированию. Куда податься, если ты молод, умен и хочешь выиграть несколько тысяч долларов

https://t.me/hacker_frei

Денис Колисниченко

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

Семь лет назад «Хакер» уже рассказывал о чемпионатах по программированию. С тех пор много что поменялось — попробуем разобраться.

ACM/ICPC

Традиционно начинаем обзор с самой известной и самой древней студенческой олимпиады по программированию. Корни этого мероприятия уходят в семидесятые годы прошлого века. Современный облик оно приобрело в 1977 году, с тех пор проводится ежегодно. Раньше принять участие могли только студенты из США и Канады, но со временем олимпиада стала всемирной, и, что самое интересное, последние семь лет (с 2012 года) ее победителями становятся студенты из России. Всего с 2000 года чемпионский кубок ACM/ICPC побывал в России тринадцать раз. Кстати, с конца девяностых ни разу студенты из США не побеждали в олимпиаде. Основать основали, а вот программировать так и не научились.

 

Финал ACM/ICPC 2018, Пекин, Китай

ACM/ICPC — соревнование командное. Команда состоит из трех человек, участвовать могут студенты вузов и аспиранты первого года обучения — главное, чтобы возраст не превышал 25 лет. Не допускаются студенты, пятикратно принимавшие участие в олимпиаде или же дважды попадавшие в финальную стадию. Правила олимпиады неизменны: за пять часов программисты должны решить от восьми до двенадцати алгоритмических задач (условия написаны, естественно, на английском). Из года в год меняется только список допустимых языков программирования. В 2018 году в нем были C, C++, Java, Kotlin и Python. Ранее был доступен и Pascal, но теперь он закономерно ушел в прошлое.

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

В этом году впервые чемпионский кубок уехал в Москву — победителем стала команда из МГУ. В составе команды — Михаил Ипатов, Владислав Макеев и Григорий Резников. До этого кубок, как эстафетная палочка, переходил от Университета ИТМО к СПбГУ и обратно.

Поскольку олимпиада международная, то место ее проведения каждый год меняется. В этом году она проходила в Китае, в прошлом — в США, а в 2013-м и 2014-м — в Санкт-Петербурге и Екатеринбурге соответственно.

Теперь о профите. Команда-победитель в этом году получила 15 000 долларов, команды, завоевавшие золотые медали (первые четыре места), — по 7500 долларов, серебряные медали (5–8-е места) — по 6000 долларов. А утешительный приз (10–12-е места) составляет 3000 долларов — для обладателей бронзовых медалей. Впрочем, деньги здесь не главное. Участие в этой олимпиаде — шанс получить высокооплачиваемую работу и даже встретиться с президентом РФ.

 

Яндекс.Алгоритм

Яндекс.Алгоритм — это международный чемпионат по спортивному программированию. Участвовать может каждый, кто умеет решать алгоритмические задачи и знает один из тринадцати допустимых языков программирования. Других ограничений, в том числе возрастных, нет. Тематика задач чемпионата меняется из года в год, в 2018-м упор был сделан на оптимизацию и машинное обучение.

Чемпионат Яндекс.Алгоритм

Соревнования состоят из нескольких отборочных раундов, в каждом из которых нужно решить пять задач за 100 минут, и финала, в который попадают 25 человек, показавших лучшие результаты. Призеры чемпионата получают денежные призы. Кстати, о призах. В 2018 году призовой фонд чемпионата составил солидные 980 тысяч рублей.

Победителем в этом году стал Геннадий Короткевич (Белоруссия), второе место занял Алексей Данилюк, а на третьем — Михаил Ипатов (призер ACM/ICPC).

Пять причин попробовать участвовать в чемпионате в следующем году:

  • нет ограничений по возрасту и принадлежности к вузу;
  • широкий выбор языков программирования;
  • возможность завести полезные знакомства — Яндекс.Алгоритм ежегодно собирает лучших программистов международного класса;
  • возможность заработать солидную сумму;
  • минимальные затраты со стороны участника (тебе не придется выезжать за пределы страны, не нужен загранпаспорт, визы и прочее).

На наш взгляд, Яндекс.Алгоритм даже интереснее, чем ACM/ICPC. Во-первых, меньше всевозможных ограничений, мешающих участию, во-вторых, можно участвовать одному. И если в ACM/ICPC приз делится между всеми членами команды, то здесь он принадлежит тебе и только тебе. А приз немалый — за первое место в алгоритмическом треке можно получить 300 тысяч рублей, а за первые места в оптимизационном и ML-треках полагается 100 тысяч.

 

Google Code Jam

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

Чемпионат Google Code Jam проводится с 2003 года. Участники должны решить алгоритмические задачи за фиксированное время. Особенность чемпионата в том, что разрешается использовать любой язык программирования и любую среду разработки — никаких ограничений нет, главное, чтобы участник сумел решить задачу и закодировать ее реализацию.

Соревнования Google Code Jam

Приз за первое место составляет 15 000 долларов. Примечательно, что последние пять лет (с 2014 по 2018 год) первое место принадлежит Геннадию Короткевичу из Белоруссии с ником tourist, который более чем оправдан — чемпионат за эти годы проводили в США, Ирландии и Канаде.

 

Facebook Hacker Cup

По примеру Google социальная сеть Facebook также запустила собственный чемпионат по программированию, который проводится с 2011 года. При этом компания и не скрывает, что чемпионат используется как средство поиска лучших умов для потенциальной работы в Facebook. Информации об этом конкурсе маловато, даже в Википедии ничего толком нет, но «Хакер» специально для тебя раздобыл подробности.

Чемпионат от Facebook

Постановка задачи выглядит так: условия, форматы входных/выходных данных, а также сами входные данные в виде файла. Нужно прочитать условие, придумать решение, реализовать его программно и протестировать. На все про все есть шесть минут. За эти шесть минут решение можно отправлять несколько раз, главное — уложиться в это ограничение. Использовать можно любой язык программирования и любую среду. Особняком стоит Visual Studio, поскольку в свободном доступе имеется только Visual Studio Express.

Структура соревнования следующая: квалификационный раунд, первый и второй раунды, финал. Квалификационный раунд длится 72 часа, и участникам нужно решить хотя бы одну из предложенных задач. На решение задачи дается шесть минут. Первый раунд состоит из трех отдельных подраундов, на каждый из которых отведено по три часа. Лучшие 1000 программистов проходят во второй раунд. Участвовать можно во всех трех подраундах, при условии, что ты не попал в top-1000 в одном из предыдущих подраундов. Поэтому во второй раунд выходит 3000 человек. Второй раунд длится тоже три часа. Призы этого раунда распределяются так: top-300 получают утешительные футболки; top-25 едут в Калифорнию участвовать в финале.

Ограничений практически нет, если не считать возрастного — тебе должно быть как минимум 18 лет, и ты не должен работать в Facebook.

Первое место в 2017 году занял российский программист Пётр Митричев, а в 2014 и 2015 годах первые места принадлежат уже известному Геннадию Короткевичу. В общем зачете по количеству побед лидирует Россия, на втором месте — Белоруссия, на третьем — Япония.

Призы здесь поскромнее, чем у Google, — 5000 долларов за первое место, 2000 — за второе и 1000 — за третье. Также компания платит утешительные 100 долларов участникам, занявшим с 4-го по 25-е места. Ко всему этому прилагаются бесплатные билеты в Калифорнию и проживание в кампусе Facebook. Суммы довольно скромные, но ведь главное — это потенциальная работа в Facebook, где можно заработать гораздо больше, чем полагается за первое место. Кстати, ты еще можешь успеть зарегистрироваться в Facebook Hacker Cup 2018 — поспеши.

 

Topcoder Open

Topcoder Open — ежегодный международный турнир, который проводит компания Topcoder Inc. с 2001 года. Считается, что это что-то вроде чемпионата мира среди профи — в нем участвуют только лучшие из лучших.

TCO2017

Принять участие может любой человек, достигший 18 лет. Ежегодно в турнире участвуют 4000 программистов. Последний раз чемпионат проводился в октябре 2017 года, так что у тебя есть еще время попытать удачи, тем более что приз более чем достойный — 15 000 долларов за первое место.

Несколько мыслей

Хочется поучаствовать, да еще и немного заработать, но пока ты не определился, с чего начать? Сложнее всего участвовать в ACM/ICPC — ты должен быть студентом или аспирантом, жесткие ограничения по возрасту, языку программирования, вузу (не каждый вуз будет спонсировать участие в этой олимпиаде), нужна команда и так далее. В общем, должно совпасть сразу множество факторов.

Проще всего попытаться участвовать в Яндекс.Алгоритм. Далеко ехать не придется, команда не нужна, приз тоже достойный — практически такой же, как на Facebook Hacker Cup. Да еще и есть возможность ознакомиться с примерами задач.

Участвовать в Google Code Jam и Facebook Hacker Cup можно не только ради денежного вознаграждения, но и ради возможности получить работу в этих известных компаниях. Google более щедрая, а Facebook, видимо, ищет энтузиастов, для которых деньги не на первом месте.

Читайте ещё больше платных статей бесплатно: https://t.me/hacker_frei