Support us

Докажи, что режешь мышку не просто так. Scala-разработчик ушёл в науку — и вернулся обратно

Оставить комментарий
Докажи, что режешь мышку не просто так. Scala-разработчик ушёл в науку — и вернулся обратно

— Я сказал работодателю «извините» и пошёл собирать чемодан: меня ждала наука, — поработав в белорусском аутсорсе, программист Александр Грызлов уехал в Бельгию учиться на биоинформатика. В интервью dev.by он рассказал, чем научный мир отличается от айтишного и почему его в конце концов «отвернуло» от науки — зато опыт обработки больших данных пригодился в одной из ИТ-компаний в Вильнюсе.

Читать далее...

Извините, но меня ждёт наука

13 лет назад Александр учился на факультете прикладной математики и информатики БГУ и параллельно проходил онлайн-программу университета Мангейма в Академии Наук. Подрабатывал сперва в IBA и Exadel, после вуза поработал в аутсорсинговой ИТ-компании Elilink. За год освоился и начал интересоваться... биологией: устройством клетки, геномом.

— Я подумал, а почему бы мне не объединить две науки: Computer Science, которой я увлёкся ещё на первом курсе, и биологию. Стал смотреть вакансии в области биоинформатики, подавал заявки в аспирантуру за рубежом. И так сложилось, что прошёл в подразделение биотехнологий Гентского университета (Бельгия). Долго ждал подтверждения и, когда уже согласился на вакансию во Львове, пришло письмо из Гента. Я так обрадовался, что сказал работодателю «извините» и пошёл собирать чемодан — меня ждала наука.  

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

Flickr, EMSL

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

Но затем произошёл несчастный случай с преподавателем — и работа остановилась почти на год.   

«Сухая» и «мокрая» лаборатория

— Когда-то биоинформатику называли сборной солянкой, потому что у неё много ответвлений, одно из популярных — системная биология, которая пытается не просто посчитать корреляции одних генов с другими, а смоделировать какие-то клеточные процессы. Есть проекты и по эволюционной биологии — моделируют и восстанавливают по косвенным признакам процесс микроэволюции каких-то генетических или белковых подсистем. Целиком на организм пока не замахиваются, но какие-то отдельные признаки изучают разные группы учёных.    

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

— В науке есть такие понятия, как «сухая» и «мокрая» лаборатория. Мокрая — это экспериментаторы, а сухая — это мы, компьютерщики. Между ними, как и в любой составной группе, может возникать недопонимание, различия в мировоззрениях. У экспериментаторов работа очень выматывающая: большую часть времени просто сидишь с пипеткой и капаешь по пробиркам. При этом уходит на это не 8 часов в день, а все 12. Далеко не всегда это творческая работа: она требует выносливости.

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

Flickr

— Целиком «размотать» цепь ДНК с текущими технологиями очень сложно. Поэтому её, как правило, «рубят» на мелкие куски и считывают их по отдельности, а потом склеивают. Сейчас эта задача уже решаема, есть подходы, с помощью которых сравнительно быстро проводится такое полногеномное секвенирование. Каждое из них — это научное статья. Поэтому часто можно увидеть статьи с заголовками «секвенирован геном картошки» (или баклажана) — и перечисляется весь список учёных (40-70 человек), которые этим занимались: начиная от тех, кто получал материал, и заканчивая теми, кто писал вспомогательные программы.    

Как учёные жертвуют временем и мощностями своих компьютеров — но не ради биткоинов 

Одна из фундаментальных на сегодня проблем в биологии — свёртка (или фолдинг) белка, т.е. сворачивание аминокислотной линейной цепи в уникальную трёхмерную форму, похожую на клубок или причудливую фигурку. Это важный процесс, поскольку свёрнутая форма определяет функционирование белка: он может прицепиться к какой-то молекуле и разрезать её пополам, или, наоборот, способствовать «склейке» двух молекул в одну. В общем, это основной элемент огромной биохимической фабрики.

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

folding.stanford.edu

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

Баги научного мира: учёные-кочевники и научная паранойя

Из-за долгой паузы (около года), которая образовалась из-за несчастного случая с преподавателем Гентского университета, запал осваивать мир биологии у программиста погас.

— Я потерял время, а из-за этого и мотивацию учиться, поэтому решил это прекратить: бросил, так и не защитив диссертацию. Ещё одна причина, почему я ушёл из науки — там не было хардкорного Computer Science. Нужно было писать стандартные скрипты, которые будут «перемалывать» какую-то штуку — чисто технически-прикладное занятие, — поясняет собеседник.  

В науке образовался кризис перепроизводства, считает он. В мире выдают много грантов на обучение, но проблема в том, что позиций для докторов наук очень мало, и за ними все «охотятся». К тому же грантовая публикационная система работает таким образом, что твои публикации должны цитировать другие. В итоге возникает сообщество, где все друг друга повально цитируют: «Кто эти статьи читает, кроме рецензентов, и насколько это применимо к жизни — спорный вопрос», — разводит руками Александр.

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

К тому же атмосфера конкуренции приводит к тому, что учёные не стремятся помогать друг другу — каждый «строгает» свою часть работы и бдительно следит, чтобы её не украли. «Бывает, что ты почти дописал работу, а её кто-то уже опубликовал, — рассказывает Александр. — И 2-5 лет исследований отправляются коту под хвост. Поэтому все параноидально следят за своими данными и наработками, и из-за этого формируется иногда не совсем здоровая атмосфера».

— Пригодилась бы мне сейчас докторская степень? — задаётся вопросом собеседник. — Собственно, как и диплом, чтобы показать, что я не просто какой-то парень с улицы — у меня есть крутая корочка, и я что-то знаю. В ИТ в этом плане гораздо проще.     

The group of researchers who figured out the molecular structure of RNA. Flickr, marsdd

Java и JVM созданы друг для друга, но я выбираю Scala

Сейчас Александр — Data Scientist в ИТ-компании в Вильнюсе. Задачи у него, конечно, не такие наукоёмкие, как в Бельгии, но, по его словам, тоже интересные:

— На уровне программирования не так уж и важно, какие у тебя данные: показы баннеров или вспышки активности каких-то ферментов. Основное — это работа с данными и распределёнными фреймворками, такими как Apache Spark. Причём большую часть времени занимает очистка и приведение данных в надлежащий вид, а поиск каких-то закономерностей происходит практически вручную или по известным алгоритмам.

Программист работает на Scala, несмотря на то, что большинство разработчиков не жалуют этот язык:

— Scala я выбрал по историческим причинам. Когда учился в университете, ходил на курсы по Java. Мне интересно было функциональное программирование, и я самостоятельно изучал Lisp и OCaml. А потом из всего этого синтезировалась Scala. В этом языке много инструментария, которым можно делать сложные вещи, но, если не задаваться такой целью, то можно писать и довольно просто. Всё равно существует баланс между выразительностью и абстрактной сложностью.    

Разработчик считает, что нельзя сравнивать, какой из языков — Scala или Java — раскрывает больше возможностей JVM: «Java и JVM созданы друг для друга, поэтому нельзя сказать, что Scala в этом плане лучше. Scala сейчас пытается развиваться как многоплатформенный язык: и JS там уже есть, и экспериментальный нативный код. К тому же в процессе трансляции какие-то функциональные нюансы теряются».         

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

 

Фото: Flickr, из личного архива героя

 

Место солидарности беларусского ИТ-комьюнити

Далучайся!

Читайте также
Где изучать Scala тем, кто уже что-то знает. Собрали множество курсов и платформ (июнь, 2023)
Где изучать Scala тем, кто уже что-то знает. Собрали множество курсов и платформ (июнь, 2023)
Где изучать Scala тем, кто уже что-то знает. Собрали множество курсов и платформ (июнь, 2023)
Язык программирования Scala — один из самых популярных коммерческих языков, который используют Twitter, LinkedIn, WhatsApp. Scala-разработчики, возможно, не так востребованы как их коллеги, пишущие на Python или Java, но хороший специалист будет цениться высоко, а знание языка станет безусловным плюсом в резюме. В помощь тем, кто хочет пополнить ряды адептов Scala, Digitaldefynd составил (а мы дополнили) подборку онлайн-курсов и тренингов разных уровней сложности.
1 комментарий
Думскроллинг вредит психике и физическому здоровью пользователей
Думскроллинг вредит психике и физическому здоровью пользователей
Думскроллинг вредит психике и физическому здоровью пользователей
3 комментария
Компании с беларусскими корнями заплатили в Литве €25 млн налогов в I полугодии. Половина - из ИТ
Компании с беларусскими корнями заплатили в Литве €25 млн налогов в I полугодии. Половина - из ИТ
Компании с беларусскими корнями заплатили в Литве €25 млн налогов в I полугодии. Половина - из ИТ
3 комментария
Россия и Беларусь в геймдев-изоляции. Что было на DevGAMM в Литве
Россия и Беларусь в геймдев-изоляции. Что было на DevGAMM в Литве
Россия и Беларусь в геймдев-изоляции. Что было на DevGAMM в Литве

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.