«Если апатия приводит в Python, то конструктивный поиск ведёт к Rust или Go»

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

«Хтоническая логика Haskell, тяжеловесная мощь «плюсов» и грязная гибкость скриптовых языков наталкивают человека на экзистенциальный поиск. Если апатия приводит в Python, то конструктивный поиск в итоге ведёт к Rust или Go», — считает Игорь Нетай, специалист отдела перспективных исследований компании «Криптонит».

Наш следующий собеседник — математик и аналитик, изучающий нейросети. Он знает несколько языков программирования, играет на разных музыкальных инструментах и рисует на стенах заметающие кривые нового типа. Знакомьтесь: Игорь Нетай, увлечённый исследователь и человек-оркестр!

— На каких языках ты учился программировать?

— Я ведь до какого-то момента не понимал программирование, а задачи на Мехмате решал более-менее наугад, не задумываясь, что происходит, просто на интуиции. Потом подумал, что с этим непониманием пора завязывать и пошёл в Школу анализа данных (ШАД) Яндекса. Это помогло, дало больше понимания, основу культуры и базу, с которой можно эффективно развиваться уже самостоятельно. Я начал участвовать в образовательных проектах уже как программист и параллельно учился на Мехмате МГУ, в НМУ, в ШАД и посещал курсы в Математическом институте им. Стеклова. Потом у меня было программирование для нужд образования на чём попало (Python, Perl, Ruby), которое постепенно перешло в аналитику на Haskell.

— Какой язык оказал на тебя наибольшее влияние?

— Определённо Haskell. После C++ и скриптовых языков он меняет сознание, если проникнуться им достаточно глубоко, после него и на других языках начинаешь писать код иначе. Однако постепенно это изменение восприятия и образа мышления логично приводит к освоению Rust. Хтоническая логика Haskell, тяжеловесная мощь «плюсов» и грязная гибкость скриптовых языков наталкивают человека на экзистенциальный поиск. Если апатия приводит в Python, то конструктивный поиск в итоге приводит к Rust или Go.

— Каждому языку – своя область применения?

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

— Игорь, как ты пришёл в «Криптонит»?

— Я попал в нашу компанию практически на старте, когда коллектив только собирался. Как раз в то время решил заняться исследованиями в ИТ, так что было очень удачное стечение обстоятельств.

—  Чем ты занимаешься в нашей компании?

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

— Что помогло тебе получить столь необычную должность?

— Думаю, что получить работу помог опыт в фундаментальных исследованиях и серьёзный научный бэкграунд. Я закончил механико-математический факультет МГУ и Независимый московский университет (НМУ), получил учёную степень к. ф.-м. н. Вдобавок у меня уже на тот момент был большой интерес к прикладной области и опыт программирования на разных языках.

— Какие у тебя увлечения? Что помогает работать, или наоборот — отвлечься от работы?

— В нашем первом офисе я играл на скрипке. На обычной, акустической. Электрическую скрипку я принёс в офис уже потом, а вслед за ней появилась электровиолончель, электрогитара и гобой. Как-то к нам собеседовалась группа разработчиков. Они интересовались, нормально ли, что они обсуждают рабочие вопросы живо, эмоционально и громко. Им ответили, что громкое выражение мыслей никому не мешает. Тут один сотрудник вообще играет на скрипке прямо в офисе, и все рады. Мне соседний отдел даже делал замечания... что я слишком мало играю! Иногда люди спрашивали, кто громко включает классическую музыку. Мы отвечали, что никто не включает, я воспроизвожу не mp3, а pdf с нотами.

— Насколько для тебя подходящие условия на работе?

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

— Говорят, ты чертил на стене H-кривые?

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


— Если кратко, то что это за кривые, и как они применяются в ИТ?

— Пространственные заметающие кривые полезны для построения индексов баз данных, а большие базы данных в повседневной жизни везде. Это и соцсети с мессенджерами, и медиаконтент в интернете, и ещё куча всего. Чтобы мы могли смотреть всё на смартфончике в каком-то приложении, где-то должна быстро крутиться здоровенная база данных (БД). А для любой БД ключевой инструмент — это индексы. Именно построение индексов H-кривые сильно ускоряют при сохранении прочих полезных свойств. Логика их применения в том, что сложение по модулю степеней двойки — быстрая операция, а композиции вращений пространства (как при построении кривой Гильберта) — операция не столь быстрая. Более развёрнуто можно прочитать в статье, опубликованной в нашем научном блоге. В ней можно найти ссылку на препринт в arXiv и на журнальный вариант научной статьи.

— Как ты придумал новый тип H-кривых? Это было озарение, или кропотливая проработка вариантов?

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

— Что порекомендуешь тем, кто тоже хочет заниматься перспективными исследованиями, но не знает, с чего начать?

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


P.S. Если хотите стать коллегой Игоря, то в «Криптоните» открыта вакансия специалиста-исследователя в отделе перспективных исследователей.

Источник: https://habr.com/ru/company/kryptonite/blog/690992/


Интересные статьи

Интересные статьи

Ранее в этом блоге я уже рассказывал о современных научных представлениях по поводу четвертого измерения. Особо упомяну статью «Большой взрыв и песочные часы, или куда на самом деле течет время», где ...
Nurked предложил оригинальный способ прочтения "the book" — читать главы надо не по порядку, а в последовательности [4, 3, 5, 6, 8, 4, 9, 7, 10, 4, 13, 17, 15, 16]. Можно пойти...
Часто при разговорах с клиентами мы спрашиваем, как они ведут учет различных данных и используют ли они CRM-систему? Популярный ответ — мы работаем с Excel-файлами, а пот...
Всем привет. Если вы когда-либо работали с универсальными списками в Битрикс24, то, наверное, в курсе, что страница детального просмотра элемента полностью идентична странице редак...
Если вы последние лет десять следите за обновлениями «коробочной версии» Битрикса (не 24), то давно уже заметили, что обновляется только модуль магазина и его окружение. Все остальные модули как ...