Вячеслав Шебанов: Для начала расскажи, пожалуйста, чем ты занимаешься на протяжении последних лет?
Владимир Ульянцев: Я являюсь руководителем лаборатории «Компьютерные технологии» в Университете ИТМО. Это крупная лаборатория, которая состоит из четырех команд и включает в себя примерно 30 штатных сотрудников. У нас есть команда биоинформатики, команда формальных методов в киберфизических системах, команда машинного обучения и наконец команда эволюционных вычислений. Мы занимаемся наукой, проведением исследований, публикацией их результатов.
В отличие от тебя, я никогда не работал в компании в команде программистов. В 2015 году я защитил диссертацию и остался работать в вузе. Однако начинал я свой путь далеко не с научных исследований: я проводил олимпиады для школьников, публиковал обучающие статьи. Ездил тренировать студентов в Узбекистан, Казахстан, Штаты. Но после этого ушел в науку: начиная с бакалаврской работы, стал заниматься научными исследованиями. И делаю это по сей день.
Как устроен твой рабочий день: сколько времени занимает административная работа, а сколько остается на научные исследования? Насколько сложно совмещать эти виды деятельности?
Конечно, руководить лабораторией и оставаться при этом ученым — довольно сложно. По сути, руководство лабораторией — это всегда борьба за научную деятельность и за то, чтобы заниматься тем, что тебе нравится. Примерно, 80%, а иногда и 90% времени я посвящаю административным делам и вопросам — это и поиск сотрудников, устройство их на работу, финансовые аспекты.
При этом есть группа людей, которые со мной работают, пишут статьи по биоинформатике, машинному обучению и формальным методам. Я, безусловно, работаю с дипломниками, обсуждаю с ними исследования.
Тем не менее, судя по списку твоих публикаций, который я посмотрел до интервью, можно отметить, что у тебя достаточно много исследований, многие проводились уже в последние годы.
Конфликт между административной и научной деятельностью остается, и он довольно часто возникает. Ведь программирование — это моя маленькая страсть, которая со мной еще с 8-9 класса школы. Мне всегда нравилось писать код, придумывать, как он будет устроен, разрабатывать его части, думать, как он будет развиваться дальше. Но потом пришли вопросы, связанные с теми самыми soft skills. Да, можно сидеть, разрабатывать код, никого не трогать. Но мне стало интересно заниматься взаимодействием с людьми.
Хотя и сейчас хочется иногда сказать: «Так, все, отстаньте от меня, дайте позаниматься наукой». Но поэтому я и разделяю свое время. В определенные часы я занимаюсь разбором почты, написанием наших стратегических планов, подачей заявок на гранты, а в другие занимаюсь исследованиями со своими студентами. Так или иначе, в одиночку я это уже не делаю, со мной работают студенты, аспиранты, коллеги, с которыми я как раз и придумываю, как мы дальше будем делать то или иное исследование. Именно поэтому исследований до сих пор много и они, как ты мог заметить, довольно разнообразные. Наиболее активно развивается тема по биоинформатике, но также есть и отдельные исследования по машинному обучению.
К слову о биоинформатике. Ты сказал, что программирование — это твоя страсть. Как получилось так, что ты активно стал заниматься этим направлением?
Изначально та вещь, в которой я разбираюсь — это алгоритмы и структуры данных. Это то, что является основой Computer Science. Что такое биоинформатика? В моем понимании это область информатики, которая применима к биологии и медицине. С моей точки зрения, биоинформатика и вычислительная биология — это практически одно и то же, с тем отличием, что вычислительная биология — это про то, как применять алгоритмы, а биоинформатика включает также разработку новых алгоритмов обработки данных.
В целом когда появились технологии секвенирования генома, начали появляться и очень интересные результаты. Что такое секвенирование генома? Представьте, что берут геном человека или метагеном какой-нибудь среды, допустим, кишечника того же самого человека, и помещают это в некое устройство, называемое секвенатором, после чего на выходе получаются некие геномные данные. Обработка этих геномных данных — это как раз задача биоинформатики и вычислительной биологии. И именно с появлением технологий секвенирования генома ученые получили тот пласт данных, который раньше был недоступен. Но до сих пор здесь еще многое не сделано. Именно поэтому для программиста это направление и сегодня остается такой областью, куда можно прийти и собирать бриллианты.
Это фундаментальная наука, но у нее очень часто есть «выходы» на медицину. Например, поняв, как устроен тот или иной геном бактерии и механизмы, как он работает, мы можем сделать новые медикаменты.
Насколько сложно переквалифицироваться на это направление человеку, который занимался Computer Science?
Переквалифицироваться и не нужно. В биоинформатике есть два типа людей. Первый тип — это программисты, специалисты в области Computer Science, которые пришли в биоинформатику. Например, я один из таких примеров. Какое-то время я работал в Москве в НИИ физико-химической медицины. Это учреждение устроено так: четыре этажа там занимают биологи, а на пятом сидят программисты и биоинформатики, которые для всех остальных решают определенный комплекс вопросов: как хранить все полученные данные, как сделать так, чтобы это было безопасно, как сделать так, чтобы сторонние лица не получили доступ к частным медицинским данным и многое другое.
И второй тип — это биологи, которые приходят в биоинформатику. Например, для таких людей в этом году мы в Университете ИТМО открыли магистерскую программу и хотим обучить их информатике. Зачем? Это явная возможность повысить свою рыночную стоимость.
Каких людей не хватает в сегодняшней биоинформатике?
Прежде всего тут важно иметь четкое понимание, что важна коллаборация. Например, мои статьи по биоинформатике сделаны с биологами. И важно понимать, что у биологов и программистов свои привычки. Вот мы с тобой как программисты любим все абстрактно обобщать, ведь программирование — это про абстрактное мышление: здесь мы это обобщим в такую структуру данных, а там мы напишем общий алгоритм для всего. У биологов все по-другому: тут частный случай, там частный случай, тут непонятно что делать… Поэтому коллаборация между людьми с таким разным мышлением, во-первых, очень трудна — нужны люди, которые умеют строить мосты между разными направлениями, а во-вторых, именно она и есть самое ценное. Когда мы ее получаем, мы имеем самые интересные результаты.
Кого не хватает? Не хватает тех самых, кто налаживает мосты, то есть тех людей, которые умеют поставить на языке программистов биологическую задачу, и наоборот — тех, кто может выразить на языке биологов результаты, полученные программистами. И в этом смысле очень важными становятся те самые soft skills — умение слушать собеседника, понять, что он пытается тебе донести и так далее.
Здесь много раз уже прозвучал термин Computer Science, многие с ним до сих пор не знакомы. Что это в твоем понимании?
Это очень интересный термин, который не имеет хорошего перевода на русский язык. Некоторые пытаются перевести это как «компьютерные науки», но звучит это так себе. Это то, что в школе преподается как информатика. Мне же кажется, что Computer Science — это раздел дискретной математики, который включает в себя такие больше главы, как алгоритмы и структуры данных.
Структуры данных для обычного пользователя — это примерно то, как мы укладываем в компьютере информацию, как мы ее храним, например, как мы храним пользователей «ВКонтакте», какую базу данных мы используем, как эти базы данных строятся и так далее. Алгоритмы — это то, что мы можем дальше сделать в этих структурах данных и как мы собираемся это делать.
У меня за достаточно длительное время, которое я провел в профессии, сложилось впечатление, что, чтобы стать программистом, в 2018 году никакой Computer Science не нужен. Сейчас есть гигантское количество областей, в которых не требуется знание продвинутых алгоритмов. Что ты думаешь об этом?
С моей точки зрения, программист — это широкопрофильная профессия. Ты можешь быть программистом 1C, веб-программистом и так далее. Computer Science нужен очень малому проценту людей в этой области — это 2-3% максимум. Здесь я имею в виду необходимость разбираться, как это работает. Например, я думаю, что нельзя было написать «ВКонтакте», не зная Computer Science.
Если Computer Science требуется такому малому количеству специалистов, как мотивировать студентов, которые у тебя сейчас находятся на первом курсе, изучать это, получать фундаментальные знания?
Зачем знать Computer Science программисту? Людей, которые знают и разбираются, как это работает, очень мало и им очень много платят. Все логично: чем больше ты знаешь, тем выше ты ценишься на рынке.
С другой стороны, рыночная стоимость — это, безусловно, хорошо, но зачастую людей движет именно интерес. Если ты уже начал разбираться в алгоритмах и структурах данных, то чаще всего тебе становится интересно, как это устроено, что еще есть, как это доказывается. Интерес двигал мною, моими одногруппниками, он движет ребятами, с которыми мы работаем сейчас, теми специалистами, которые создавали и создают компании.
А что касается тех ребят, которые уже оканчивают университет и делают выбор — идти в компанию или заниматься наукой. Что мотивирует их выбрать второе?
Короткий ответ: стоит так делать, когда у тебя интерес в квадрате. Когда тебе не просто интересно применять алгоритмы, придуманные ранее, не просто узнавать, что было открыто до тебя, а когда тебе самому интересно открывать новое. Именно поэтому я занялся наукой и встал на этот путь.
Когда я разговариваю об этом со школьниками, студентами, то говорю им одну простую вещь: среди вас примерно 5% людей с желанием делать что-то новое, тех, кто не хочет и не может сидеть на месте, обладает предпринимательским мышлением. Такие люди, как правило, либо организуют собственные стартапы, и у нас есть такие примеры, либо идут в науку. По моей статистике примерно один человек из класса поднимает руку на вопрос, хочет ли он заниматься наукой. И именно таких людей мы ищем.
Как сейчас в целом обстоят дела с научными исследованиями в области Computer Science в России?
В России, безусловно, очень классная математическая подготовка, наши школьники всегда берут золотые медали на олимпиадах по математике, физике и так далее. Также у нас есть очень классные университеты, которые готовят специалистов в области программирования и Computer Science.
Многие до сих пор представляют себе образ науки в России, образ ученого как некого бедного доцента, работающего за 18 тысяч рублей и живущего с родителями в свои 35 лет. Сейчас ситуация меняется, государство более или менее понимает, что нужно финансировать науку, и поэтому у сильных подразделений, например, такого, как наша лаборатория, возможности есть. В целом по России ситуация хуже, чтобы заниматься наукой, тебе нужен либо инвестор, либо грант.
Насколько обучение в области Computer Science, научная деятельность в России отличается от того, как это происходит в западных странах?
Подготовка в зарубежных университетах устроена по-другому: там берут практически всех, и, если ты не справляешься, ты уходишь. Наши топовые кафедры набирают студентов по довольно жесткому рейтингу — по олимпиадам, ЕГЭ, то есть тех, кто уже способен. В западных странах становление программистом, выбор профессии в среднем начинается позже. У меня определенная свобода действий сложилась уже в магистратуре, уже тогда я набирал людей на курсовые работы, работал с командами и так далее.
В общем и целом различие в наших идеологиях можно описать одной простой визуальной аналогией. Представь, что на Западе тебе дают стул, ты можешь себе подрегулировать ручки, придумать, что на него можно постелить. В России тебе базово дают маленькую табуреточку, на которую ты можешь сесть и сидеть на своей зарплате. Но при этом вокруг разбросано много частей из условной IKEA, из которых, если хочешь, ты можешь собрать себе хоть трон.
На Западе тебе как профессору дают ставку, но, если ты хочешь нанять аспиранта, — выиграй на него грант. Если ты хочешь быть аспирантом, ты должен пойти туда, где есть грант, ты не можешь просто так прийти в аспирантуру. В России в этом плане ситуация проще: «Пожалуйста, вот тебе ставка, но формальные ограничения нас не держат».
А что есть в западных университетах, что можно было бы задействовать в работе в России?
Чтобы ответить на этот вопрос, для начала опишу, как устроена моя деятельность. Она выглядит достаточно рискованно: мы подаем заявки на грант, но при этом мы не знаем, что будет с финансированием на следующий год. Но, в частности, меня это не смущает: получили грант РНФ — отлично, не получили — бывает, попробуем еще. Но есть много людей, которым это не нравится. Но им нравится то, что называется на Западе tenure track. Если ты встал на tenure track, то тебя уволить уже довольно сложно. Поэтому для той части сотрудников, которые хотят заниматься наукой, но не хотят иметь зыбкую почву под ногами, я хотел бы организовать такую стабильность.
Есть предпосылки, что это возможно?
Да, есть. Заключаются они в наличии финансирования от государства. Кроме того, количество грантов за последние годы увеличилось довольно значительно. С моей точки зрения, сейчас в России не хуже, чем в западных странах. Если глобально задать себе вопрос: хотел бы я уехать? Нет, не очень. Но, опять же, потому что я сам хочу строить себе свою табуретку.