Сложность алгоритмов

ФОТО Дмитрия СОКОЛОВА
Гость редакции — профессор Университета ИТМО Анатолий ШАЛЫТО.
Наш собеседник стал одним из первых, кто получил возрожденную в России награду «За наставничество». Вообще‑то подобных наград у профессора несколько, от разных инстанций, в том числе от ICPC, чемпионата мира по программированию. С формулировкой «За глобальное академическое влияние». Команды ИТМО семь раз становились абсолютными чемпионами мира, это рекорд. С этого состязания мы беседу и начали.
— Анатолий Абрамович, в ноябре очередной чемпионат мира по программированию, в Египте. Мы участвуем?
— Участвуем! У исполнительного директора чемпионата Билла Паучера требовали отказать российским и белорусским командам, но он на это не пошел. Более того, «наш человек» Матвей Казаков, региональный представитель чемпионата ICPC (он выпускник ИТМО, когда‑то участвовал в этих соревнованиях), будет там главным по разным организационным вопросам. А другой «наш человек» Роман Елизаров, который сейчас возглавляет работу над важным языком программирования Kotlin, отвечает за трансляции с чемпионата.
Но тут вот еще в чем дело. В чемпионате мира по программированию состязаются не государства. А университеты. Знаете, кто несколько лет назад занял седьмое место в мире, что очень круто? Команда из Кореи. Из Северной!
— Кажется, некоторые иностранные команды прорывались в мировой финал чемпионата благодаря тому, что их «на досуге» тренировали петербургские студенты-программисты.
— Да. Например, наши в свое время ездили тренировать швейцарских школьников и студентов. Уже на второй год после начала тренировок команда ETH (это Швейцарская высшая техническая школа) впервые попала в финал. Об этом писали все тамошние компьютерные издания. А в прошлом году команда ETH добралась до пятого места!
— В прошлом году Россия первой признала спортивное программирование видом спорта. Вы много лет за это ратовали — теперь, наверное, довольны?
— Чувства глубокого морального удовлетворения я не испытываю. Объясню почему.
В 2011 году я высказал идею о создании в России федерации спортивного программирования. Никаких высоких целей у меня не было. Я просто хотел, чтобы у ребят, которые в этом деле преуспели, появился соответствующий их достижениям статус. Чемпионы мира, по моему мнению, должны быть заслуженными мастерами спорта, а их тренеры — заслуженными тренерами.
Мировые программистские состязания — по сути, всемирное соревнование молодых людей, способных решать задачи, которые никто никогда не решал. Я в какой‑то статье писал: когда российские команды, в том числе петербургские — СПбГУ, ИТМО, — в дефолтные 1990‑е стали вдруг побеждать на чемпионате, это повысило в целом статус российских разработчиков на мировом рынке. Разве не заслуга?
Вот учился в ИТМО Гена Короткевич. Про него пишут как про «самого титулованного спортивного программиста планеты». Он, например, дважды в составе команды нашего университета становился чемпионом мира по программированию (больше двух раз в финалах участвовать нельзя), кучу мировых одиночных состязаний выиграл.
Я Гену называю гением. Он родом из Белоруссии, его землячка четырехкратная олимпийская чемпионка биатлонистка Дарья Домрачева получила от Лукашенко звание «Герой Белоруссии». А у Гены вообще‑то успехов не меньше. Только Домрачева занимается олимпийским видом спорта, а он как бы черт-те чем. А была бы спортивная федерация, было бы другое отношение.
Послушайте: доцент ИТМО Андрей Станкевич, который все эти команды-чемпионы тренировал и был признан самым эффективным тренером в мире, никаких званий не имеет.
В 2021 году (вон сколько лет прошло!) на финале чемпионата мира, проходившем в Москве, премьер Мишустин объявил: решено создать федерацию спортивного программирования.
В 2022 году на Петербургском международном экономическом форуме два министра — спорта Олег Матыцин и цифрового развития Максут Шадаев — подписали документ о ее создании, но вузы к этому делу не привлекли.
— Федерация создана еще и для того, чтобы популяризировать IT. Говорят, что российской экономике не хватает миллиона айтишников. Но, например, Герман Греф предупреждал: в Индии четыре миллиона программистов, и не все трудоустроены. Видимо, айтишник айтишнику рознь.
— Еще несколько лет назад звучало, что программистов в России готовят 425 вузов. А мы с Владимиром Парфеновым, соруководителем кафедры КТ, то есть компьютерных технологий (той самой, которую оканчивали чемпионы мира по программированию), утверждали: по‑настоящему программистов готовят около десятка университетов.
Каждый вуз считает, что он «готовит программистов». Вопрос — каких? И если миллиона программистов не хватает — то опять же каких?
Я так скажу: все труднее готовить тех, кто решает нетривиальные задачи, работает не по написанному кем‑то алгоритму. А знаете почему? В том числе из‑за индивидуальных траекторий образования, за которые все так «топят».
— Вы о праве студента набирать для себя курсы, которые ему интересны? А что с этим не так?
— Я с молодым ученым Максимом Буздаловым (он тоже чемпион мира по программированию) писал статью о двух направлениях в динамическом программировании. Сверху вниз и снизу вверх. Метафорически это можно распространить на управление образованием.
Движение «сверху вниз» — это когда хочешь стать, например, системным программистом и тебе говорят, какие курсы и дисциплины для этого необходимы. «Снизу вверх» — это когда студент сам набирает такой курс, сякой, пятый… Только вот не станет он системным программистом!
— Почему?
— Да потому, что в сложной технической профессии, связанной с математикой, нет никакой свободы выбора в дисциплинах! Нет у тебя возможности вот этот курс взять, а другой не брать. Это в гуманитарных направлениях можно набирать дисциплины по желанию, а в математике такое невозможно.
В 2016 году вышла потрясающая статья академика-математика Сергея Новикова о глобальном интеллектуальном кризисе. Как он сказал: математика — это как пирамида, без нижних этажей не попадешь на верхние.
Есть замечательный российский университет Сколтех. В свое время он создавался по образцу Массачусетского технологического института, одного из лучших в мире. В MIT студенты сами выбирают себе курсы — и в Сколтехе такое ввели. И вот его ректор Кулешов констатировал: на нашей почве такой подход не годится. Почему? Потому что американские студенты, которые платят огромные деньги за свое образование, стараются набрать максимально трудные курсы. Если уж платишь, то надо брать по максимуму, самое ценное, чего сам не освоишь. А наши, поступив бесплатно, берут курсы легкие!
И в этом еще не вся трагедия. Трагедия — в том, что это может устраивать и вузы, и работодателей.
— Почему студент берет курсы полегче — понятно. Но почему это удобно другим?
— Есть такая штука — функан, функциональный анализ. Сложная математика крайне редко кому потом по работе требуется. Большинству работодателей достаточно «просто программиста»: на черта им, чтобы студент ломал голову над функциональным анализом?
Руководителю образовательных программ это тоже не нужно. Потому что, чем сложнее программа, тем меньше людей на нее запишутся, а деньги‑то вузу от государства идут «за студентом». Один из лучших преподавателей высшей математики в одном из лучших вузов страны мне пишет: второкурсники не хотят слушать дифференциальные уравнения. Говорят: «Нам не понадобится».
Да откуда вы знаете, что это вам не понадобится?! Это во‑первых. Во-вторых: вуз инженерный, а как без дифференциальных уравнений ты можешь быть инженером?!
Все сложные предметы нужны для того, чтобы готовить главный инструмент: мозг. Максим Буздалов как‑то написал, что он совершенно не жалеет, что в ИТМО был функан, теория комплексной переменной и все другие сложные предметы. Потому что те, у кого они были, могут решить любую задачу. Для них нет преград, которые есть для всех остальных, которые сложными предметами типа функана не заморачивались.
Мне рассказывал один человек, ему чуть за пятьдесят, такую историю. Зашел он в Москве в одну известную фирму. В ней есть команда тридцатилетних программистов — и команда пятидесятилетних инженеров. Молодые блестяще владеют языками программирования. А старшие знают и дифференциальные уравнения, и функан у них был. Они учились еще на остатках советской системы высшего образования. Оно просто не предполагало возможности избежать сложных предметов. А сейчас трудно себе представить, чтобы человек взял курс, в названии которого есть слово «сложный». Какую‑нибудь «сложность алгоритмов».
— Наверное, студенты просто трезво оценивают свои способности.
— Эти «сложности» учил любой инженер в 1970‑х. А сейчас от них отказываются. Будто не понимают, что программисты — это инженеры. А инженеры — это люди, которые должны решать любые задачи. Любые!
Вот рассказывают, как был создан знаменитый МФТИ. Стране нужны были ракеты и кадры. У нас были блестящие матмехи и физфаки, но математики, не знающие физики, не годились, и наоборот. А учиться сначала одному, потом другому — слишком долго.
И тогда было решено объединить трудную физику и трудную математику в одном вузе, чтобы за пять с половиной лет выучили и то и другое. В полном объеме. Это крайне трудно, но для тех, кто «выживет», не будет проблем с решением задач в любой области.
Кстати, если говорить и о подготовке «массовых» айтишников, то у меня сомнения, что она так уж хороша. Я убеждаюсь в этом всякий раз, когда мне надо… не знаю… сделать, например, обновление у интернет-телевидения. Видели, время от времени приходит сообщение на экран: «Перезагрузите, появилась новая версия». Я никогда не поддавался. А однажды решил на эту кнопку нажать. Нажал, ушел на работу, прихожу поздним вечером — не работает…
— Ого, профессура из программистского вуза тоже от этого страдает.
— Звоню в техподдержку. А дальше мы с барышней на другом конце провода уйму времени тратим на то, чтобы все перезагрузилось. Она мне: «А вы на трехсотый канал заходили? Там вторая часть загрузки… Давайте попробуем так… Давайте эдак…». Уже совсем отчаялась, но все перезагрузилось — и мы оба не понимаем, как.
И ведь это программисты разрабатывают! Их никто не учит делать так, чтобы любой обыватель, хоть бабушка, мог с этими обновлениями справиться. А я про этот «трехсотый канал», о котором до того не было сказано ни слова, буду помнить теперь всегда.
— Анатолий Абрамович, вы иногда критикуете то, что кажется абсолютным благом. Например, академическую мобильность, благодаря которой ученый может поработать в разных вузах и разных странах.
— Знаю-знаю. На Западе ученый после защиты диссертации почти никогда не остается на родной кафедре, а уезжает в другие университеты. В альма-матер если возвращается, то через много лет. Считается, что это уберегает от так называемого академического инбридинга, когда нет притока свежей крови, новых идей. Но сторонники мобильности как бы не замечают, что научная школа при этом разрушается.
В России всегда было понятие «научная школа». Берем школу академика Лузина — и пошли: Колмогоров, Лаврентьев, один гений за другим. Был великий ученый в Ленинграде, Людвиг Фаддеев. Он как‑то сказал, что воспитал около 15 докторов наук. Но ворота открылись, все уехали, он тоже уехал — лечиться. Приехал обратно — а здесь выжженное поле.
Или вот в некоторых вузах стали вводить отдельные образовательные программы, не привязанные к каким‑либо кафедрам. Я сравниваю кафедру с репертуарным театром: БДТ, МДТ, Ленкомом и так далее. Это здание, традиции. Но главное — коллектив. Нет случайных людей: человек сначала становится ассистентом, постепенно растет, становится доцентом и так далее.
А образовательная программа — это вроде театральной антрепризы. Есть руководитель образовательной программы, он ее составляет, набирает людей, которые его устраивают. Конечно, выдающийся ученый может собрать других видных ученых и вместе с ними создать какую‑то образовательную программу. Но не коллектив.
Была такая Елена Сергеевна Вентцель, советский математик, профессор. В военных училищах преподавала. И книги писала, под псевдонимом И.Грекова, то есть «игрекова», от «игрек». Одна из повестей называется «Кафедра». Как думаете, про что она? Про интегралы? Нет! Про отношения. Если есть коллектив, значит, есть все — люди хорошие, плохие, есть неприятие, есть любовь. А можно себе представить кино или книгу под названием «Образовательная программа»? Нет, потому что нет там отношений, коллектива и традиций. Люди никак друг с другом не связаны, и, мне кажется, это сказывается на результатах.
Я про свое место работы написал четыре тома, 1200 страниц — «Мои счастливые годы жизни на кафедре «Компьютерные технологии» Университета ИТМО».
— Возвращаясь к наставничеству: мало от какого официально отмеченного наставника доводится слышать столько… как бы это сказать… крепких слов.
— В ИТМО я пришел в возрасте 50 лет и преподаю там четверть века, а всю жизнь параллельно работал в НПО «Аврора». Меня там учили: если кто плохо что‑то сделал — говори, не смягчай. Хорошо сделал — хвали.
Я ведь и хвалю безудержно. В отличие, кстати, от большинства замечательных молодых наставников. Ощущение, что им сложно дается произнесение добрых слов. Будто какой‑то лимит задан.
А насчет крепких слов — да. Как‑то для федерального телеканала снимали документальный фильм про академика Акселя Берга, у меня брали комментарий и некоторые слова в нем пришлось запикать. Я просто высказал свое возмущение.
— Чем именно?
— Тем, что мало кто знает Акселя Ивановича Берга. И причиной этого. Есть книжка Ирины Радунской «Четыре жизни академика Берга». Он на российских подлодках ставил радиосистемы, в 1937‑м его посадили, потом отпустили, во время войны он делал радиолокацию, стал адмиралом, потом замминистра обороны. Создал комитет по кибернетике, когда ее называли продажной девкой империализма.
Сейчас о его судьбе мало кому известно. Это прискорбное обстоятельство прозвучало и в документальном фильме, а поскольку у меня брали комментарий, я объяснил, почему мы такие «родства не помнящие». Привел в пример российскую книжку про искусственный интеллект. Она очень хорошая. За образовательную миссию я поставил бы ей пять. А за воспитательную — кол. Потому что если открыть список литературы, то там нет ссылок ни на одного советского или российского ученого. А в этой области они сделали на самом деле до хрена. Я был возмущен: откуда читатель этой прекрасной книги будет знать, что в Советском Союзе и России эта сфера развивалась?
— От наставников узнает. Вашим кто был?
— Выдающийся профессор ЛЭТИ Владимир Андреевич Тимофеев. Его мать танцевала на балу с Александром III, сам он ходил к Ленину отстаивать ЛЭТИ, чтобы не закрыли, был проректором. А во время войны за одно из своих предложений был приговорен к расстрелу. Казнь заменили на 10 лет лагерей. Валил лес, оттуда писал Сталину предложения — как создавать высокоточное оружие. Экономикой в лагерях занимался. Когда его отправили на вольное поселение, началось самое страшное: в лагере хоть кормили, а тут 700 км от Красноярска, лес. Он писал жене, просил выслать обувку.
Много времени спустя он нам в ЛЭТИ читал лекции. Вот он был одним из моих наставников.
Я сейчас на молодых наставников смотрю. Помню, после очередной победы ИТМО тренер Андрей Станкевич поехал не отдыхать, а работать — в летнюю компьютерную школу. Учить детей. И просил меня до десяти вечера ему не звонить. Потому что отбой, детей надо укладывать спать.
Вот там, где педагоги до такой степени детьми заняты, что им до позднего вечера не позвонишь, там и успехи начинаются.
Комментарии