В защиту олимпиадников, которые в защите не нуждаются

  

Об авторе: Анатолий Шалыто, профессор, д.т.н., Университет ИТМО. Егор Бугаенко, автор книги «Элегантные объекты. Java Edition» (СПб.: Питер. 2018, 240 с.), посмотрел видео бесед со мной и взял у меня трёхчасовое интервью. После этого я решил послушат...

Дек 22, 2023
В защиту олимпиадников, которые в защите не нуждаются

Об авторе: Анатолий Шалыто, профессор, д.т.н., Университет ИТМО.

Егор Бугаенко, автор книги «Элегантные объекты. Java Edition» (СПб.: Питер. 2018, 240 с.), посмотрел видео бесед со мной и взял у меня трёхчасовое интервью. После этого я решил послушать Егора на его YouTube-канале. Первым был ролик, в котором ему был задан, в частности, вопрос о том, как он относится к созданию в России федерации спортивного программирования.

Егор понимал под спортивным программированием алгоритмическое программирование, и в целом приветствовал создание в нашей стране такой федерации. Она не единственная в мире. Бывший министр образования, науки, культуры и спорта Армении профессор Ваграм Думанян, участвовавший в проведении соревнований по спортивному программированию с 2001 года, узнав, что мы собираемся организовать федерацию, быстро организовал её в своей стране (сообщение от 21 июля 2022 года). После Армении и России в 2023 году Федерация спортивного программирования была создана в Казахстане.

Минспорт РФ признал и включил во Всероссийский реестр видов спорта «спортивное программирование» и пять его дисциплин: «программирование алгоритмическое»; «программирование продуктовое»; «программирование систем информационной безопасности»; «программирование беспилотных авиационных систем»; «программирование робототехники».

По первым трём дисциплинам с 6 по 10 декабря 2023 года в Москве прошёл первый в России, а возможно, и в мире, чемпионат страны. За месяц до этого в Иннополисе по тем же дисциплинам был проведен первый чемпионат России среди школьников.

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

Программирование алгоритмическое – это вид спорта, который максимально приближен к профессии «программист». Близость к указанной профессии определяется тем, что эти соревнования и тренировки к ним развивают навыки программирования и работы в команде, требуют знаний сложных алгоритмов и структур данных, а также умения оптимизировать программы, находить и устранять в них ошибки. Путь в эту специальность только с умением программировать (здесь: кодировать – ред.) значительно сложнее. Практически все спортивные программисты работают и/или учатся по специальностям, связанным с программированием, и поэтому участие в соревнованиях по спортивному программированию повышают их квалификацию, как в учёбе, так и в работе.

Есть ли какой-нибудь толк IT-промышленности от успехов спортивных программистов? Оказывается, есть и очень большой – в первую очередь, имиджевый. В моем тексте «Кое-что программировании» приведены слова президента по операциям компании Exigen Services Николая Пунтикова, который ещё в 2013 году сказал: «Наличие своих чемпионов мира по программированию – помогает индустрии. Последние годы среди победителей этих соревнований доминируют Россия и Китай, а Америки в лидерах давно нет, что не мешает ей быть лидером IT-рынка (в том числе благодаря выпускникам российских и китайских вузов – А. Ш.). Тем странам, которые ещё только доказывают свое право на лидерство, это очень помогает решить имиджевые проблемы».

Далее он не забывает «лягнуть» олимпиадников: «Другой вопрос, можно ли назвать таких чемпионов элитными специалистами. Это спорт на тему программирования, а не профессия».

Вот подтверждение слов Николая в части имиджевой полезности чемпионов по программированию. Победы команд из Санкт-Петербурга на чемпионатах мира 2000, 2001 и 2004 годов, видимо, привели к тому, что в ноябре 2005 года во время посещения нашего города президент компании Sun Скотт Мак-Нили (Scott McNealy) высказался так: «Если бы 15-20 лет назад я сказал, что наши ведущие разработчики будут работать в России, меня бы сочли сумасшедшим».

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

Егор не первый, кто имеет такое мнение. Например, Питер Нордвиг (директор по исследованиям в Google, соавтор одного из самых популярных вузовских учебников по ИИ, который опубликован в трёх томах, в 2015 году сказал, что победы на олимпиадах по программированию могут негативно коррелировать с успехами в работе, так как вдумчивость при решении задач часто важнее быстроты их решения.

В том же году компания «Яндекс» выпустила ролик «Помогает ли опыт в спортивном программировании в работе?» В целом мнение было такое: «Олимпиадное программирование в принципе не нужно для приёма на работу, но без опыта и знаний, полученных в нём, мы вас на работу не возьмём!» А один из бывших известных олимпиадников Иван Фефер в этом ролике сказал, что он знает, как надо писать код на соревнованиях, а как на работе. На этом, казалось бы, обсуждение этого вопроса можно было бы и закончить, но он стал «вечным».

Вопрос, хороши или нет олимпиадники, стоял и 15 лет назад. Своё мнение по этому вопросу я изложил в статье «Зачем нам чемпионы по программированию? Пятнадцать аргументов в пользу программистских олимпиад» // «Компьютерра». 2008. № 14 (730), с. 22-24. Через два года после этого свои 15 пунктов о пользе олимпиад в статье «Зачем нужны студенческие олимпиады по программированию» написал основатель всемирно известной платформы для проведения соревнований по программированию Codeforces, выдающийся спортивный программист и тренер Михаил Мирзаянов. Сейчас, учитывая новые вызовы, и в связи с ситуацией в IT в стране и в мире, напишу новые доводы в защиту олимпиадников, которые в моей защите не нуждаются.

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

1. Сначала расскажу о блистательной IT-карьере Никиты Шамгунова. Этапы его большого пути описаны в моем тексте «О шестимесячных и не только». Он закончил специализированный учебно-научный центр Уральского государственного университета, потом матмех Уральского государственного университета. В студенческие годы был трёхкратным чемпионом Урала по спортивному программированию (в 1998-2000 годах), а в 2001 году завоевал бронзовую медаль на командном студенческом чемпионате мира по спортивному программированию ACM ICPC, достижение выдающееся.

2. Свой олимпиадный опыт Никита обобщил в статье «Как стать чемпионом Урала по программированию» // Компьютерные инструменты в образовании. 2002. № 5, c. 44-48. Сложная учёба, тренировки и участие в соревнованиях высокого класса не помешали ему стажироваться и работать в IT-компаниях Екатеринбурга. Учёбу в аспирантуре в ИТМО он совмещал с работой в IT-компании. После защиты диссертации успешно работал в таких компаниях, как Microsoft и Facebook, где, якобы, не любят олимпиадников. После этого он окончил стартап-акселератор Y Combinator, получив большую, чем другие, инвестицию от Юрия Мильнера, и стал сооснователем стартапа, название которого совпадает с названием создаваемого им продукта – MemSQL – система управления реляционными базами данных в оперативной памяти. Со временем стартап превратился практически в единорога и был переименован в SingleStore. Компания имеет представительства в ряде страна мира. В настоящее время Никита партнёр в инвестиционном фонде Khosla Ventures и пытается вырастить ещё одного «единорога». Как говорится, «простенький» путь получился…

3. В стартапах могут быть свои, более мягкие требования к качеству кода, отличные от принятых в больших корпорациях. Это может быть на руку олипиадникам. Мой текст «Любителям легенд» рассказывает о судьбе ещё одного олимпиадника высокого класса, Александра Скиданова. Он входил в команду Ижевского государственного технического университета, занявшую третье место на ACM ICPC 2008 года, и был первым сотрудником в MemSQL (2011-2016 годы). Потом создал стартап, который решил проблему масштабирования в блокчейн, что не смог сделать больше никто в мире. Как вы думаете, качество кода в этом случае было важно?

4. Суперолимпиадник со школы, наш выпускник Роман Елизаров мало того, что в течение более 15 лет был профессиональным разработчиком ПО для биржевой и брокерской деятельности, он, как координатор группы проектов в компании «Эксперт-Система», известной на международном рынке как Devexperts, участвовал в разработке торговой платформы Thinkorswim, признанной в свое время на рынке США платформой № 1 по версии журнала Barron’s. С 2020 по 2023 год Роман возглавлял разработку получившего всемирное признание языка программирования «Котлин» в компании JetBrains. Прошло много лет, а Елизаров продолжает активно участвовать в организации полуфинала (председатель программного комитета) и финала чемпионатов мира ICPC и «рулит» в разработке «Яндекс.Такси».

5. Егор в своём выступлении противопоставляет «тяжеловесную» работу Facebook быстрому Telegram. Об основателях Telegram мой текст «В контакте». Telegram, как и ранее «ВКонтакте», были созданы под руководством суперолимпиадников Николая Дурова (старшего брата филолога Павла Дурова, имя которого у всех на слуху) и Андрея Лопатина, которые в 2000 и 2001 годах становились чемпионами мира по спортивному программированию, а Андрей ещё дважды как тренер приводил команды СПбГУ, где он и Дуровы учились, к победам на этих же соревнованиях. При этом оказалось, что эти олимпиадники знали, как построить архитектуру столь сложных систем, в чём олимпиадникам обычно тоже отказывают. Они знают как сами алгоритмы, так и их реализацию, а также умеют проводить оптимизацию программ и серверов, что, в частности, обеспечило высокое быстродействие Telegram. Таким образом, свойства, развитые олимпиадным программированием в этих людях, очень пригодились человечеству.

6. А ещё олимпиадники, правда, не столь высокого класса, умеют зарабатывать деньги, и весьма большие. Стартап, основанный в 2018 году Виктором Шабуровым, который закончил СПбГУ, выпускником МФТИ Александром Машрабовым и окончившим в 2017 году нашу кафедру Григорием Ткаченко, разработал приложение Cameos, которое из селфи делает короткое видео с наложением разных эффектов и стикеров. Стартап был куплен компанией Snap за $166 миллионов. Машрабов и Ткаченко перешли на работу в Snap, видимо, с неплохой зарплатой, так как даже стажёры в этой компании получают $7 тысяч в месяц. Александр и Григорий закончили известный в стране физмат-лицей № 31 в Челябинске. При этом отмечу, что Гриша был призёром Всероссийской олимпиады школьников по информатике. Так что без участия в олимпиадах не обошлось и здесь.

А вот что говорил Григорий, перешедший в то время на второй курс магистратуры, в августе 2016 года в статье «Выбор студентов-программистов: стартап вместо Facebook, Сочи вместо Калифорнии и наука вместо IT-компании»: «К середине последнего курса бакалавриата, который мне удалось окончить с красным дипломом, я уже почти два года работал в «Яндексе». Трудоустройство в крупной IT-компании – это отличная возможность стабильной работы, в течение которой человек может спокойно решать определённые задачи. Однако вскоре я понял, что такая занятость – не моё. В крупных компаниях ты не всегда чувствуешь ответственность за судьбу проекта, так как работаешь в числе многих и, как это часто бывает, с течением времени в тебе затухают амбиции, утрачиваются драйв и вовлечённость.

Как-то на лекции Анатолий Абрамович Шалыто сказал, что, если человек хочет пойти работать в Google, то ему предварительно стоит провести мысленный эксперимент: на большом белом листе бумаги изобразить 48 тысяч чёрных точек, а потом «вбросить» туда ещё одну – себя самого :-).

«Не думаю, что в этой «толпе» Вы почувствуете себя уютно, и многим из Вас захочется подыскать для себя другие варианты трудоустройства», – сказал он. Я так и поступил, пойдя работать в стартап Machine Learning Works в Сочи, в котором тогда было всего 27 человек, из которых 23 – программисты». Всё это, как рассказано выше, закончилось удачно.

7. Указанная сделка – это уже не первый успех Виктора Шабурова. Сначала он с другими инвесторами за $38 миллионов продал «Яндексу» компанию SPB Software. В 2015 году Виктор за $150 миллионов продал Snapchat приложение Looksery, которое позволяет накладывать «маски» на фотографии в режиме реального времени. Оно было создано олимпиадниками, правда, не очень высокого класса.

8. После всего изложенного Шабуров полюбил олимпиадников. Он и ранее понимал, что с ними можно иметь дело, так как один из трех компаньонов по SPB Software, Василий Филиппов, был крутым олимпиадником. Когда однажды команда ИТМО заняла седьмое место на чемпионате мира, Василий, чтобы поднять мне настроение, написал: «Только человек, занявший седьмое место на чемпионате мира, может понять, насколько круто там стать седьмыми».

9. Любовь Виктора к олимпиадникам выразилась в том, что несколько лет назад он создал инвестиционный фонд Botan Investment, который в настоящее время готов выделить миллиард рублей на реализацию собственных проектов в области машинного обучения. При этом фонд инвестирует не в кого угодно, а в золотых и серебряных медалистов соревнований в области Data Science, проводимых на платформе Kaggle, финалистов чемпионата мира по программированию ICPC, а также успешно выступающих в соревнованиях по программированию, проводимых на портале Codeforces, и только потом в сильных Back-and developers, сильных iOS and Android developers и тех, кто сможет доказать, что он мастер в машинном обучении (отмечу, название чемпионата мира по программированию к тому вермени сменилось с ACM ICPC на просто ICPC).

10. Таким образом, у Бугаенко, Пунтикова и Нордвига одно мнение об олимпиадниках, а у Дурова, Шабурова и меня – прямо противоположное. Это во многом связано с тем, что первые трое являются представителями больших компаний, а остальные в них не работают.

11. Упомянутый выше Василий Филиппов также сказал мне, что на практике редко необходимо применять сложные алгоритмы, в которых сильны олимпиадники. Однако олимпиадники, тем более высокого класса, штучный товар, и они всегда найдут работу там, где написание легко поддерживаемого кода не является основным достоинством программиста. Да и что там говорить об олимпиадниках, тем более высокого класса, если исследование, выполненное недавно HeadHanter, показало, что 66% (!) ныне работающих IT-специалистов не имеют высшего профильного образования, причём чем старше специалист, тем меньше шансов, что у него есть такое образование. Если среди разработчиков в возрасте от 25 до 34 лет 67% имеют непрофильное образование, то в группе 45 лет и старше такого образования не имеют 78% участников исследования.

12. Сегодня известно, что самый эффективный способ повышения зарплаты – это переход из компании в компанию. Если, грубо говоря, в компании «проходной двор», то для обеспечения преемственности код в ней, несомненно, необходимо писать по принятым там правилам. Если же «проходного двора» в компании нет, то, как часто говорят теперь, всё в этом вопросе не так однозначно.

13. Кроме IT-стартапов, к IT относится и так называемая алгоритмическая торговля. Из самого названия следует, что именно здесь, в первую очередь, нужны олимпиадники, которые на высоком уровне знают алгоритмы и математику, так как в данном случае невероятно высока цена (в прямом смысле этого слова) ошибки, а вот требования к качеству кода могут и вовсе отсутствовать, так как в связи с огромными зарплатами оттуда увольняются редко, и новые люди, которые будут «возиться» после этого с твоим кодом, вряд ли появятся. В высокочастотной торговле к алгоритмам и программам предъявляются особые требования.

14. Олимпиадники высокого класса в условиях дефицита классных преподавателей также необходимы для обеспечения учебного процесса в бакалавриате, так как в рамках его они практически всё знают и умеют, особенно учитывая то, что они сами сравнительно недавно все эти предметы учили и сдавали, и поэтому знают, как их преподавать. Особую важность наличие молодых авторитетных в глазах студентов преподавателей, по словам Станислава Смирнова – лауреата премии Филдса, имеет место на тех немногих в мире кафедрах, где в одной группе обучается 25 сильных студентов. Есть кафедры, на которых такая группа не одна. Например, студенты кафедры «Компьютерные технологии» университета ИТМО гордятся тем, что все компьютерные предметы им преподают чемпионы мира по программированию, и радуются тому, что возраст этих преподавателей и студентов близок.

15. Приведу пример о знаниях олимпиадников высокого класса. В своё время с моей подачи на указанной выше кафедре была сформирована «Всемирная школа программирования чемпионов мира из Университета ИТМО». В 2016 году олимпиадник Павел Кротков и чемпион мира по программированию 2015 года по версии ICPC Артём Васильев провели тренировки по программированию для студентов нескольких университетов Бразилии, причём Артём практически без подготовки провёл два часовых занятия по темам, предложенным студентами. После этого Павел сказал мне: «Чемпионами мира просто так не становятся – Артём очень многое знает досконально». Это напомнило мне рассказ кандидата в мастера по шахматам, который считал, что для шахматистов, находящихся в хорошей форме, разница в классе между спортсменами, имеющие «соседние» звания (кандидат в мастера и мастер, мастер и гроссмейстер), может отличаться на порядок. Примерно то же самое мне говорил международный мастер по стоклеточным шашкам, который играл с чемпионом мира того времени по регламенту пять минут против одной. Такой разрыв в классе может быть и у тех, кого люди называют олимпиадниками.

16. А ещё Егор говорил, что ему очень нравится парное программирование. В командах из трёх человек, выступающих на чемпионатах мира ICPC, участники обучаются работе в таких вот микроколлективах.

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

18. Надо отметить, что раньше соревнования по программированию, несмотря на приведённые выше мнения об олимпиадниках, несомненно, были социальным лифтом для победителей и призёров. Однако таких людей крайне мало, а путь к победам у них чрезвычайно тернистый, особенно учитывая то, что в финал чемпионата мира ICPC может выйти только одна команда от вуза. Я видел практически рыдающего молодого человека, который тренировался восемь лет, начиная со школы, и его команда стала третьей в очень сильном полуфинале чемпионата мира, из которого в финал выходило 15 команд, но в финал он не попал, так как первое место заняла другая команда того же университета. А тем временем число индивидуальных соревнований высокого уровня в мире сокращается. Так, например, такие соревнования перестала проводить компания Google, и не исключено, что по причине восьми побед на них, причём семь раз подряд, нашего выдающегося выпускника Геннадия Короткевича.

19. Сейчас ситуация в стране и мире изменилась, а интерес к соревнованиям по спортивному программированию, например, в рамках ICPC – структуре параллельной федерации спортивного программирования – только увеличился. При этом отмечу, что эти структуры, по крайней мере пока, пересекаются примерно так, как это происходит с параллельными прямыми в геометрии Лобачевского.

20. Сначала об изменениях. Из-за огромного дефицита программистов их зарплаты резко увеличились, и большому числу хороших студентов стало не до соревнований по программированию и занятий наукой – социальный лифт программистов не самого высокого уровня резко пошёл вверх, и они практически все бросились помногу работать. А те, кто хочет соревноваться, может участвовать в огромном числе хакатонов, в которых конкуренция значительно меньше, чем в соревнованиях в рамках ICPC, а денежные призы выше. В ICPC исторически призы всегда были небольшими, так как при огромном напряжении участников в ходе соревнований если бы на кону стояли бы ещё и большие деньги, то у некоторых из участников могла бы не выдержать психика.

21. Теперь о расширении интереса к соревнованиям по спортивному программированию в рамках чемпионата мира ICPC. В подтверждение сказанного приведу текст от ICPC: «За более чем четыре десятилетия ICPC превратилась в глобальную конкурентоспособную образовательную программу, которая повысила устремления и производительность поколений специалистов мира по решению задач в области компьютерных наук и инженерии. Сообщество ICPC насчитывает более 400 тысяч выпускников по всему миру, и в последнее время ежегодный уровень участия достигает 10 тысяч волонтёров и более 5 тысяч тренеров, работающих с 60 тысячами участников из 20 тысяч команд, представляющих 3450 университетов из 111 стран мира. Даже в годы пандемии COVID, при ограниченном доступе к соревнованиям, ежегодное участие продолжало превышать 49 тысяч членов команд из 2640 университетов из 93 стран».

22. Ещё о том же. Если несколько лет назад в мире повсеместно соревнования ICPC проходили офлайн в три этапа – четвертьфиналы, полуфиналы и финал, то последние годы в некоторых регионах мира из-за возрастания числа команд, желающих участвовать в этих соревнованиях, стал проводиться предварительный онлайн-тур. Так, в чемпионате 2023-2024 годов в предварительном туре в Москве участвовало 490 (!) команд, а в подрегионе «Юг и Поволжье России» – 397 (!) команд. Всего в предварительном туре в регионе «Северная Евразия», где основной игрок Россия, участвовало 2700 (!) команд. При этом, например, в московском четвертьфинале – 90 команд, а в полуфинале указанного региона – 276 команд, из которых 77 решили шесть и более задач и были отмечены жюри. Теперь у меня риторический вопрос: «Как вы думаете, по крайней мере 231 человек из команд, отмеченных жюри, смогут ли найти работу несмотря на то, что они олимпиадники?» Вопрос напоминает галлюцинацию нейронный сети. В этом году команда МФТИ (В. Нагибин, Т. Евтеев, Д. Мустафин) решила все 12 задач и второй год подряд стала победителем этого полуфинала. При этом не менее 12 команд разных вузов из этого полуфинала поедут на финал, в котором в 2024 году будут участвовать 128 команд со всего мира.

23. Возвращаюсь к федерации спортивного программирования. Как отмечено выше, в состав спортивных дисциплин Минспортом включено и «программирование продуктовое». Поэтому я предложил Егору вместо проводимых им лично соревнований по различным аспектам промышленного программирования включить их в календарь работы федерации. Егор заинтересовался. Ведь не зря говорят: «Знание – сила!»

24. А потом я прослушал потрясающий доклад Егора о его взглядах на проведение собеседований при приёме программистов на работу и понял, что его претензия к качеству кода – это только мелкая придирка, о которой он даже в докладе не упоминает, перечисляя качества программиста, которого он бы взял на работу. Более того, он сказал, что в ходе интервью никогда не просит писать код, а предлагает указать недостатки в коротком специально написанном им для этой цели фрагменте программы. Более того, в отличие от многих особенно больших компаний, которые на собеседованиях просят продемонстрировать знания алгоритмов, в чём сильны олимпиадники, он, утверждая, что сам не силён в них, придаёт значение другим качествам, которыми, по его мнению, должен обладать программист. Не исключено, что именно по этой причине Егор олимпиадников и недолюбливает, возможно, подсознательно.

25. Сначала расскажу о требованиях, которые Егор предъявляет к программистам, а потом покажу, что олимпиадники, обучавшиеся на кафедре «Компьютерные технологии» Университета ИТМО, удовлетворяют практически всем его требованиям.

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

27. Сначала Егор перечислил качества, относящиеся, по его мнению, к Hard Skills. При этом его не интересует ни предыдущее место работы (Previous Employment) соискателя, ни чем он там занимался – он должен рассказать, в чём он силен, а, возможно, и уникален. Егора интересует следующее: умение находить ошибки в специально написанном коде; наличие международных сертификатов от тестовых центров по различным аспектам создания ПО; наличие опубликованного open source code; известность соискателя в сообществе программистов по его активности в нём, например, как организатора семинаров и конференций; имеет ли соискатель высокую репутацию, «заработанную» на сайте вопросов и ответов для программистов Stack Overflow; наличие любимого проекта (Pet Projekt), сделанного вне работы.

28. После этого Егор перечислил качества, относящиеся, по его мнению, к Soft Skills, отметив, что они не про эмоции, воспитание и харизму, а являются продолжением Hard Skills. Он считает, что хороший специалист в области создания ПО должен уметь декомпозировать задачу и уметь работать c разными её частями (Branching); уметь излагать свои мысли с помощью диаграмм (Drawing); уметь писать документацию и тексты (Writing); уметь писать отчёты о выполненной работе (Reporting); уметь понимать «политику» и организацию компании, подразделения (Intiguing); участвовать в активностях, за которые на платят (Volunteering) и т.п., в том числе уметь работать в команде (Teamwork).

29. Не знаю, соответствуют ли все олимпиадники даже очень высоко класса критериям Егора, но те из них, кто закончил нашу кафедру – «Компьютерные технологии» университета ИТМО, – обладают многими из требуемых им качеств. Это объясняется программой обучения, в рамках которой наряду с классным обучением по основным математическим и программистским предметам развивают соревновательный и проектный подходы, а также культивируют среди студентов занятия наукой. Педагогическая новизна нашего подхода состояла в том, что все это относилось ко многим студентам нашей кафедры.

30. Особая новизна состояла в объединении соревновательного и проектного подходов. Она привела к тому, что мы в 2008 году получили премию правительства России в области образования за научно-практическую и методическую разработку «Инновационная система поиска и подготовки высококвалифицированных специалистов в области производства программного обеспечения на основе проектного и соревновательного подходов» для образовательных учреждений высшего профессионального образования, так как эти подходы развивают в учащихся взаимодополняющие качества.

31. Перечислю, что умеют наши олимпиадники, которые не только много раз были призёрами чемпионатов мира по программированию по версии ICPC, но и чаще любого университета мира (семь раз!) побеждали в них. Сначала Hard Skills по Бугаенко. Искать ошибки в коде они умеют, так как это неотъемлемая часть подготовки олимпиадников. Думаю, что сертификатами мало кто из них обладает, но зато многие из них стажировались (некоторые неоднократно) в компаниях, многие из которых выдают сертификаты. Имеют опубликованный open source code. Их знают в сообществе олимпиадных программистов по их активности в нём, например, как организаторов и участников соревнований по программированию различного уровня вплоть до мирового. Они обычно имеют очень высокую репутацию на Codeforces и «Хабре».

32. Теперь Soft Skills. Умеют декомпозировать задачу на систему взаимосвязанных автоматов. Умеют излагать свои мысли о поведении программ с помощью графов переходов автоматов. Умеют писать проектную программную документацию, а многие из них и научные тексты. Многие из них умеют писать отчёты по выполненным научно-исследовательским работам. Неоднократно участвовали в активностях, за которые не платят (в конференциях с докладами и без них, организации соревнований по программированию и т.д.). Все умеют работать с социальными сетями. Умеют задавать вопросы. Умеют докладывать и презентовать бакалаврские и магистерские квалификационные работы, которые у нас очень трудно защитить, а также научные работы на семинарах и конференциях. Некоторые из них защитили кандидатские диссертации.

В заключение отмечу, что генеральными спонсорами финалов чемпионатов мира более сорока лет последовательно являлись крупнейшие компании мира (Microsoft, IBM, Huawei), в которых, по утверждению некоторых специалистов, якобы не любят олимпиадников. Да и в полуфинале этого года в регионе «Северная Евразия» среди спонсоров были «Яндекс» и «ВКонтакте», которые никак нельзя отнести к не крупным компаниям.