Клуб выпускников МГУ (Московский Государственный Университет)
 

О спорт, ты - код!

В ближайшую субботу в американском Сан-Диего завершится финал международного конкурса программистов Top Coder Collegiate Challenge-2006. Надо сказать, что российские "искатели алгоритмов" - одни из главных претендентов на победу, что, в последнее время, становится уже привычным для состязаний такого рода. Однако не стоит забывать, что программирование вообще по сопутствующим параметрам во многом напоминает спорт, и успех "любителей" вовсе не гарантирует им светлую дорогу в профессионалы.

Один Митричев чего стоит!

Тем не менее, в Сан-Диего у россиян есть хорошие шансы на призовые места, так как из 48 финалистов, в числе которых "кодеры" из 20 стран, нашу страну представляют сразу 12 человек. И это - наибольшее национальное представительство. На втором месте по этому показателю идет Китай (9 претендентов), на третьем - Польша (3 программиста).

Надо сказать, что Collegiate Challenge далеко не единственные состязания программистов, проводимое компанией Top Coder Inc. Ей же принадлежит идея Top Coder Open (TCO), который, по сути, является неофициальным чемпионатом мира по программированию. В нем принимают участие как работающие программисты, так и студенты различных учебных заведений со всего мира. В финале турнира этого года, который проходил в мае, в Лас Вегасе, первое место и приз в 20 тыс. долларов получил россиянин Петр Митричев, студент мехмата МГУ. Он единственный из всех финалистов справился с третьей, самой сложной задачей конкурса. В такую же ситуацию Митричев попал и во время своего победного финала на состязании по спортивному программированию www.Test-The-Best.by, в марте этого года.

Петр с самого начала своей "спортивной" карьеры демонстрировал уникальные результаты. Он трижды становился победителем общероссийских школьных олимпиад по информатике, неоднократно завоевывал золотые и серебряные медали в международных школьных и студенческих соревнованиях. В Открытом командном кубке родного МГУ Митричев также занял первое место, представляя команду Petr, в которой был единственным участником, в то время как команды его конкурентов состояли не менее чем из 3-х человек.

Последним достижением студента столичного Универа является победа в Global Code Jam 2006, которую он одержал в Нью-Йорке 27 октября. В финал этого состязания попали сразу 32 россиянина, что значительно превосходит национальное представительство других стран. Кроме Петра Митричева, в десятке лидеров был еще москвич и два представителя Санкт-Петербурга, один из которых, студент СпбГУ ИТМО Андрей Станкевич, занял 3-е призовое место.

Разница в подходах

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

Наиболее распространенной схемой финалов таких конкурсов является постановка перед участниками 3-х задач различной степени сложности. "Спортсменам" предоставляется возможность выбрать, в каком порядке приступать к заданиям. Чем сложнее задача, тем больше очков приносит ее решение, поэтому, программист, потративший время - а оно в финальных турнирах ограничено, - на поиск алгоритма для самой сложной задачи, может по очкам обогнать конкурентов, решивших большее количество задач попроще.

Кроме спортивного программирования на время, проводятся и конкурсы разработчиков программного обеспечения, в которых более всего заинтересованы организаторы. Их участники решают не только сложные алгоритмические проблемы, но работают и над дизайном, а также разрабатывают рабочие части программного обеспечения, годные для повторного использования в готовых коммерческих продуктах. Участники "кодерских" соревнований, как правило, работают, со всеми языками программирования: Java, C++, C#, Python,VB.NET и другие.

Считать по-русски

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

Митричев далеко не единственный пример официального успеха российского программирования. На прошлогоднем Top Code Open наш соотечественник Николай Арчак занял второе место, а победителем тогда стал поляк Эрик Копчинский. Серьезные заявки делают наши программисты и в командных соревнованиях. Среди них, например, победа на крупном международном конкурсе в японской Йокогаме.

Этот успех в "программном" спорте объясняется подходом к подготовке участников турниров. На Западе будущие "спортсмены" - школьники, студенты и даже профессионалы, - не занимаются специальными тренировками. У нас же практикуется именно спортивный подход. Недаром большинство любительских состязаний в нашей стране называют "олимпиадами".

Буквально на днях, в период с 11 по 13 ноября в Новосибирском государственном университете прошел финал Открытой Всесибирской олимпиады по программированию им. И.В. Поттосина. Первое место в ней заняла команда SPbSU Cooler (СпбГУ). Второе и третье места достались москвичам Moscow SUx13 (МГУ) и Moscow SU ST (МГУ). Кроме ценных призов, все члены команд-победительниц получили стипендии исследовательского института компании Samsung SAIT. В России регулярно проводятся отборочные этапы престижнейшего ACM International Collegiate Programming Contest, история которого началась еще в 1977 году.

Из любителей в профессионалы

Но означает ли успешное участие россиян в "программерских" состязаниях, что отечественные IT-технологии и специалисты в этой области занимают и серьезные позиции на мировом рынке? Это так, но лишь отчасти.

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

Те из программистов, кто не смог заявить о себе на крупных соревнованиях остаются работать на родине, в компаниях или во фрилансе. В последнее время на Западе набирает популярность использование так называемого оффшорного программирования. Это когда производитель ПО обращается к разработчикам из других стран, чей труд оказывается значительно дешевле, чем работа штатных сотрудников на местах. Часто эти соглашения заключаются с одним единственным специалистом на разработку одного проекта в течение определенного срока. На сегодняшний день наибольшая часть этого оффшорного рынка принадлежит индусам и китайцам. Но и на русских программистов спрос также весьма велик.

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

Предстоящий финал Top Coder Collegiate Challenge так же сулит хорошие перспективы для его росскийских участников. На сегодняшний день наши соотечественники лидируют по набранным очкам. На втором месте идет Польша. Противостояние кодеров из этих двух стран Восточное Европы на подобных турнирах явление довольно частое. Но в последнее время, особенно после того, как со своими титулами расстался поляк Копчинский, долгие годы бывший лидером мирового рейтинга, россияне обретают все более высокие позиции.

Страница сайта http://moscowuniversityclub.ru
Оригинал находится по адресу http://moscowuniversityclub.ru/home.asp?artId=6019