За последний месяц я оказался сразу на двух соревнованиях, где состязались программисты. И это были настолько разные форматы, что о каждом стоит рассказать подробно.
Спортивное программирование
Facebook устаивает Hacker Cup. Ежегодно проводится Google Code Jam. Чем хуже наши компании? Ничем! Яндекс растит чемпионат по программированию с незатейливым названием Яндекс.Алгоритм, финал которого прошел в конце августа в Питере.
По формату это похоже на спринт для программистов. За сто минут необходимо решить шесть задач. Решить все — безумно сложно, поэтому важно сходу выделить наиболее простые, чтобы начать с них. Есть суперсложные «гробы», их, как правило, решает один участник или вообще никто. Совсем простых задач нет — в финале они уже не нужны. У каждого есть любимые темы. Кто-то любит задачки на графы, кто-то — на комбинаторику, кто-то — на теорию чисел.
Но это не единственный элемент тактики. Яндекс.Алгоритм интересен правилами, которые позволяют использовать разные стратегии. Все стоят одинаковое количество очков, но бонус только в том, чтобы сдать втемную. Задачи можно сдавать в открытую (проверочная система сразу отвечает, «прошла» задача или нет). А можно послать задачу в закрытую и узнать результат только в конце соревнований. Риск оплачивается большим количеством очков, и игроки готовы на него идти.
Соревнование проходит в несколько этапов. Всего зарегистрировалось более 3000 человек из 84 стран мира. В офлайновый финал, который проходил в Питере, вышло 25 человек из 8 разных стран. Главная интрига заключалась в борьбе между одним из трех золотых финалистов ИТМО Геннадием Короткевичем (талантливый первокурсник, который уже в школе показывал невероятные результаты) и Петром Митричевым из Google (про Петю складываются легенды :)). Оба занимают топовые позиции в рейтинге Top Coder. Победителем, впрочем, стал Геннадий Короткевич, а Митричев не попал в тройку.
Участники очень сильно натренированы решать такие задачки, хотя сами признаются, что в реальной работе они попадаются в лучшем случае раз в месяц. Но люди именно с такими скиллами могут выстраивать эффективную работу с big data, разрабатывать компьютерное зрение, алгоритмы сжатия, заниматься наукой. И это очень круто.
Кстати, такие соревнования не только fun. Это и дополнительный финансовый стимул. Например, победитель «Алгоритма» получает 300 тысяч рублей. Если ездить и выигрывать соревнования круглый год, выходит неплохая прибавка к зарплате :).
Создай продукт за 24 часа
Хактон — это совсем другой формат. Здесь не нужно знать алгоритмы, но надо уметь работать в команде и делать настоящие продукты. Особенно хорошо, если это у тебя получается быстро, — на все отводится 24 часа.
В начале сентября прошел российский этап хак-марафона PayPal Battle Hack — нон-стоп событие, в котором могут участвовать все, кто хочет создавать продукты. Молодые предприниматели, дизайнеры и, самое главное, программисты :). Здесь уже нет искусственных и тщательно проработанных задач. Есть цель — создать веб- или мобильный продукт, решающий проблемы больших городов. А что это будет — нужно придумать как раз самим. К услугам любые стеки технологий, любые API разных сервисов (в том числе, естественно, организатора — PayPal), любые вспомогательные средства. Лишь бы в результате получился работающий прототип.
Многие приходят на хакатон уже со своей командой (еще до мероприятия на разных сайтах можно было найти топики, в которых кто-то рассказывал о своей идее в поиске единомышленников для реализации на хакатоне). Однако есть и те, кто формирует команды прямо на месте — в этом, наверное, есть особый фан. Хотя шансов на победу в последнем случае, как мне кажется, меньше.
Как это выглядит? Утром первого дня участники получили время для общения и формирования команд, после чего представили 38 идей (в работу пошли только 21). Программировать все команды начали в одно и то же время и получили 24 часа в свое распоряжение. Работа над кодом шла с полудня субботы — всю ночь и всю первую половину следующего дня.
Я приехал к полудню воскресенья, не выспавшись. Но когда увидел парней, которые всю ночь кодили, поддерживая себя Red Bull’ом, понял, что жаловаться мне не на что :). Было приятно увидеть нескольких знакомых людей среди участников. Состоявшихся профи, но заражающих энтузиазмом и энергией людей — пример того, что участвовать в хакатонах никогда не поздно.
Победителем московского этапа Paypal Battle Hack стал проект TalkingCity. Парни создали настоящий городской навигатор для слепых и слабовидящих, за что получили главный приз — оплаченное участие в мировом финале в Силиконовой долине и шанс для команды стать одним из десяти счастливчиков, которые выиграют 100 тысяч долларов.
Может, в следующем хакатоне поучаствую и я :). Главное — не стать бездельником, которые есть в любой команде. А для этого неплохо бы не растерять скилл в программировании.