Читать «Журнал "Компьютерра" N782» онлайн - страница 21

Компьютерра

Сами американцы объясняют несоответствие места, которое занимает их софтверная индустрия, и мест, которые занимают американские команды на чемпионате, тем, что в России и Китае лучшие мозги идут в программирование, а а США - в бизнес.2 Согласно другой теории, чемпионат по программированию вообще не имеет никакого значения, поскольку задачи, которые приходится решать конкурсантам, не имеют отношения к реальным программистским задачам, да и вообще, для программиста главное - это умение работать в команде, а гении-одиночки давно никому не нужны. И американцы, в отличие от русских и китайцев, это понимают.

Упрек в отрыве от реальности не слишком справедлив. С тем же успехом можно заставлять биатлонистов стрелять по живым мишеням (зрелищность, кстати, повысилась бы). Реальные задачи сопровождаются таким невероятным количеством граничных условий разной степени разумности, что воссоздать их полностью в рамках соревнования невозможно и наверняка не нужно. Впрочем, оргкомитет ACM ICPC, видимо, устал объяснять условность, заложенную в спортивное состязание, и последние несколько лет а списке всегда присутствуют задачи, напоминающие «бизнес-кейсы». В этом году с муравьем Карлом, запутавшимся в ребрах правильного восьмигранника, соседствуют авиадиспетчер, чью работу нужно частично автоматизировать, и работник бюро городского планирования, которому нужно оптимизировать городской трафик. Понятно, что на месте авиадиспетчера легко мог оказаться муравей, и бизнес-упаковка на суть задачи никак не влияет.

Что касается навыков командной работы, то они для успешного выступления на чемпионате являются ключевыми. Успех команды во многом зиждется на -зсколько хорошо участники исполняют свои юли. Компьютер на троих один, и для экономии времени важно максимально эффективно распределить связанности. Как правило, "Центровой» у команды - один. Именно он придумывает, как решать задачу, и пока двое остальных участников программируют решение, ломает голову над следующей. Теоретически роли могут меняться в ходе соревнования, но на практике такое происходит редко.

Разумеется, хорошие программисты здесь на вес золота: если поинтересоваться индивидуальными достижениями участников, то окажется, что в самых успешных командах многие могут похвастать ведущими позициями в индивидуальном рейтинге TopCoder. Но это всего лишь необходимое условие. Московскому программисту Петру Митричеву (второе место в TopCoder Algorithm) и китайцу ACRush (первое место в том же рейтинге плюс победа в прошлогоднем Google Code Jam) ни разу не удавалось подняться в чемпионате ACM ICPC выше второго места.

- Даже «звездный» игрок победы не гарантирует. - говорит Роман Елизаров. - Нужна уникальная команда. И немного везения.