3. Первые двадцать лет на студенческих чемпионатах мира по программированию побеждали в основном команды американских университетов - и это всегда отмечали ведущие американские газеты. В последние годы "праздник на американской улице" кончился - на одном из последних чемпионатов лучшая команда из США заняла двадцать пятое место. Победителями же стали команды университетов России, Польши и Китая.
4. Программирование - одна из немногих профессиональных областей, где еще со времен СССР нет сомнений в том, что подготовка наших специалистов ведется на мировом уровне. Но только успехи на студенческих чемпионатах мира, за результатами которых следят крупнейшие компьютерные фирмы, привели к тому, что практически все эти фирмы открыли в России центры разработки программного обеспечения. Программирование - одна из немногих массовых отраслей, где мы способны создавать высокотехнологичную и конкурентоспособную продукцию мирового уровня.
5. В крупнейших корпорациях Microsoft и Google найм разработчиков проводится в такой форме, что люди с опытом решения задач на олимпиадах имеют существенное преимущество. Руководители московского представительства корпорации Google неоднократно заявляли, что они готовы принять на работу любое число победителей чемпионатов по программированию. Это и не удивительно - я своими глазами видел, что один из "олимпийцев" мог себе позволить участвовать в интернет-соревновании по программированию через небольшое время после пятичасового собеседования, с которого многие сильные программисты были изгнаны, пройдя лишь половину пути. При этом другой чемпион, быстро решив все предложенные задачи, сказал мне, что эти задачи вообще не представляют ни сложности, ни интереса. А знаете, какой вывод сделали работодатели, которые до встречи с этим молодым человеком еще сильно сомневались, открывать ли им центр разработки в Санкт-Петербурге? "Раз здесь есть такие уникумы, то мы решим этот вопрос положительно!"
6. Наконец-то появились и российские компании, которые готовы взять на работу большое число "олимпийцев" и платить им немалые деньги, так как подготовленные по традиционным методикам программисты не смогли справиться с предложенными им задачами в заданные сроки.
7. На мировом уровне выступают не только команды университетов обеих столиц, но и команды многих региональных университетов России. Это улучшает экономическую ситуацию в регионах, поскольку наличие высококвалифицированных программистов служит основой для создания там компьютерных компаний.
8. Все это привело к тому, что российские программисты (в отличие, например, от математиков) в настоящее время практически не уезжают работать за границу.
9. Отсутствие необходимости переезда в столицы и за границу в поисках достойной работы улучшает ситуацию с воспроизведением высококвалифицированных кадров. Многие из участников чемпионатов, работая в программистских фирмах, не только занимаются подготовкой своей смены, но и преподают в школах и университетах.
10. Очень непростой вопрос - как сохранить в университетах (где зарплата копеечная) "чемпионов", способных и желающих остаться на преподавательской, тренерской и научной работе. Но кадровый дефицит привел к тому, что некоторые российские фирмы берут "на содержание" чемпионов, которые остаются работать в вузе. Это позволяет им не бегать в поисках заработков, тем более что "на бегу нельзя обучать даже бегу", а зарабатывать нормальные деньги, занимаясь обучением студентов и школьников.
11. Участие в командных чемпионатах мира долгое время не рассматривалось как вид спорта. Однако в последние годы в мире стали проводиться индивидуальные соревнования по спортивному программированию, по результатам которых участники зарабатывают очки рейтинга (www.topcoder.com), а лучшие - еще и деньги. Эти соревнования проводятся как среди студентов и аспирантов, так и среди программистов вообще. В этом виде программистской деятельности всего за два-три года многие россияне добились очень высоких рейтингов, а один из них, Петр Митричев, в 2006 году выиграл три крупнейших финала международных соревнований и еще в одном занял второе место. Как вы думаете, кто его "схватил", когда он закончил университет? Вы угадали - одна из упомянутых выше фирм, которая в прошлом году была признана лучшей в мире по социальным условиям, предоставляемым своим сотрудникам.
12. В России уже несколько лет существует Всесоюзная федерация компьютерных игр. Один из университетов Томска намерен готовить специалистов по шахматам. А чем программирование хуже? Существует стройная система всероссийских (не дай бог, ее разрушат, улучшая) и международных соревнований, проведение многих из которых поддерживает государство, есть международная рейтинговая система. Если появится Федерация спортивного программирования, решится вопрос о присвоении квалификации "тренер по программированию" - возникнет новая профессия, которая со временем может стать хорошо оплачиваемой. Это отвлечет некоторое число специалистов из отрасли, зато повысит престиж программирования и охват учащихся.
13. По поводу "потемкинских деревень": как вы думаете, теннис в России или легкая атлетика в Кении имеют ту же материальную базу и охват, как в лучших университетах США? Все знают, что это не так, однако не говорят ни о каких "деревнях", а радуются успехам своих спортсменов. Разве Олимпиады и победы на них никому не нужны?
14. В области образования и науки мы уже и так отстали от многих университетов мира, неужели кому-то станет лучше, если успехов по олимпиадному программированию у нас тоже не будет? Мне кажется, это тот хвост, за который можно вытащить хотя бы одну область образования и науки. Некоторые из чемпионов стали защищать диссертации (только у меня таких трое), а после окончания университетов - оставаться работать в вузах. Программирование, в отличие от математики, "молодая наука". Кроме того, в России можно получить высокооплачиваемую работу по этой профессии. Поэтому в настоящее время лишь немногие победители олимпиад стали известными учеными (например, Илья Миронов из Microsoft Research и Марк Сандлер из Google). Но хочется надеяться, что состязания программистов приведут в науку ученых масштаба Григория Перельмана, Андрея Суслина и Юрия Матиясевича, успешно выступавших на математических олимпиадах.
15. Предлагаю срочно организовать в стране движение "Сохраним в университетах лучших". На это и денег-то много не требуется, так как в программировании людей способных и желающих преподавать, тренировать и заниматься наукой крайне мало. Однако они есть, только у нас на кафедре таких двое. Если сохраним в университетах лучших - к ним потянутся новые таланты, и мы продержимся, перешагнув через демографическую яму. Тогда появится шанс на то, что со временем мы сможем опережать ведущие университеты мира не только на чемпионатах по программированию. А иначе никак!
Олимпиады программистов
В Ленинграде (Санкт-Петербурге) городские олимпиады школьников по информатике начали проводиться раньше всесоюзных. Первая состоялась в 1986 году (anichkovpalace.spb.ru/olimpus/inform), а городская командная олимпиада школьников по программированию - в 1993 году. Как и у математиков, участие юных программистов в этих соревнованиях существенно влияет на их дальнейшую профессиональную жизнь. Олимпиады по программированию проходят и среди студентов. Ежегодный командный студенческий чемпионат мира по программированию проводится с 1977 года, причем курирует его авторитетная международная организация по вычислительной технике Association for Computing Machinery (ACM). В последние годы генеральным спонсором чемпионата стала корпорация IBM. Его охват глобален, сегодня в чемпионате состязаются около шести тысяч команд из почти тысячи шестисот университетов восьмидесяти с лишним стран. Российские команды программистов участвуют в полуфинальных соревнованиях студенческого чемпионата мира с 1993 года (тогда страну представляла только команда СПбГУ, а в 1994 году - команды уже трех университетов: СПбГУ, МГУ и ИТМО).
В 1995 году в Санкт-Петербурге по правилам чемпионата ACM был проведен городской командный чемпионат по программированию, который в дальнейшем был преобразован в четвертьфинал чемпионата мира.
С 1996 года в Санкт-Петербурге ежегодно стали проводиться и полуфинальные соревнования чемпионата мира, которые охватывают Северо-Восточный Европейский регион (по классификации ACM). В рамках этих соревнований проходит и чемпионат России.
Программирование как игра?
Автор: Константин Кноп
Классики (от Дональда Кнута до Дэвида Гриса и Эдсгера Дийкстры) долго спорили о том, чем же является программирование как вид человеческой деятельности - научной дисциплиной, искусством, профессией или чем-то еще. Никому из "отцов-основателей", видимо, не могло прийти в голову, что программирование станет игрой и даже видом "интеллектуального спорта". Однако именно игровое (или, если угодно, спортивное) программирование в последнее время стало одним из путей, приводящих в эту сферу самую талантливую и яркую молодежь. Причем не поодиночке, а целыми командами.