• A
  • A
  • A
  • АБB
  • АБB
  • АБB
  • А
  • А
  • А
  • А
  • А
Обычная версия сайта

Программисты

О карьере в компьютерных науках рассказывают Ефим Гринкруг и Александр Харламов

профессор факультета компьютерных наук, заместитель заведующего кафедрой системного программирования Института системного программирования имени В.П. Иванникова РАН

— С чего начиналась и как развивалась ваша карьера?

— Моя карьерная программистская история началась со школы №444 города Москвы, которую я окончил в 1968 году, получив вместе с аттестатом удостоверение «программист-вычислитель 3-го разряда»: в этой первой в стране физико-математической школе с 1959 года на уроках труда стали преподавать программирование. Потом был факультет прикладной математики МИЭМ, куда я перешел через год после поступления с факультета автоматики и вычислительной техники. В те годы МИЭМ был кузницей кадров для московских институтов, занимавшихся закрытыми разработками. В один из таких институтов я и пришел работать: сначала над дипломом — в должности лаборанта (с осени 1973 года), а после получения диплома инженера-математика (в феврале 1974 года) — в должности инженера.

Это был филиал РТИ АН СССР (позднее — имени академика А.Л. Минца), который позже был выделен в отдельный институт и получил самостоятельное название — НИИ вычислительных комплексов (ныне — имени М.А. Карцева). При приеме на работу собеседование проводил лично его первый директор и основатель, главный конструктор Михаил Александрович Карцев. В НИИВК разрабатывали отечественные суперкомпьютеры. К началу разработки программного обеспечения одного из них (М-10) я как раз и подоспел, получив соответствующий допуск и подписав обещание не ходить в рестораны, где бывают иностранцы (существовал определенный список таковых). Интернета тогда не было. Журнальные статьи заказывались через сотрудниц отдела научно-технической информации (ОНТИ; их называли «онтичными женщинами») и приходили в виде ксерокопий через месяц-полтора. Для публикаций, связанных с работой, существовал один-единственный специальный отраслевой журнал с ограниченным доступом и распространением. Не случайно позднее в статье High-Speed Computers of the Soviet Union (IEEE COMPUTER, 1988) М-10 упоминалась как перспективная разработка, про которую, однако, мало доступной информации (даже тогда, в 1988 году). Зато в этом НИИ ставились интересные и совершенно новые задачи, требовавшие полностью самостоятельного решения. А это очень важно для воспитания творческого подхода к программированию.

— В чем специфика работы программиста?

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

В 1981 году заработала новая операционная система ОС М-10, о ядре которой я защитил кандидатскую диссертацию в 1983 году. Вероятно, это событие можно считать началом моей академической деятельности.

— Как менялось российское программирование на вашем веку? И как это отразилось на вашей карьерной истории?

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

В первой половине девяностых годов, когда новые разработки в НИИВК практически остановились, мне довелось около трех лет поработать в единственном тогда в Греции центре разработки программ (Intrasoft SA, в Афинах), где тогда уже был интернет (в отличие от НИИВК) и процесс разработки программ (банковских, в частности) происходил на европейском уровне. Наша группа программистов из Москвы вполне вписалась в этот процесс, ни в чем не уступая местным коллегам и быстро овладевая новыми технологиями. Впрочем, наши программисты всегда демонстрировали и демонстрируют высокий уровень конкурентоспособности в зарубежных компаниях. С точки зрения программиста, привыкшего к самостоятельным решениям новых, оригинальных задач, назвать такую работу интересной трудно (хотя недостаток творчества отчасти компенсировался субтропическим климатом и историческими достопримечательностями). Было любопытно взглянуть на европейский подход к разработке программ, но научно-исследовательская новизна исчерпывалась знакомством с зарубежными программными технологиями, уже доступными тогда в Афинах, но еще неизвестными в Москве (как известно, «в Греции всё есть»).

Когда в 1996 году я вернулся в Москву, мне посчастливилось попасть на работу в инновационную компанию «ПараГраф», где собрался очень сильный программистский коллектив, разрабатывавший новые программные технологии мирового уровня и по мировым стандартам. Практически сразу я занялся исследованием возможностей реализации нового стандарта ISO для 3D-графики (VRML) на только появившейся тогда и стремительно набиравшей популярность Java-платформе. Интересно было поучаствовать и в стандартизации средств взаимодействия этих двух новых программных технологий сообразно мировым стандартам и практикам, принятым в международных программистских консорциумах. Стоит отметить, что с тех пор нового международного стандарта ISO для 3D-графики пока не появилось, хотя многократно появлялись новые корпоративные технологии. Промышленные разработки, программные в том числе, подразумевают использование продуманных и утвержденных стандартов, за которыми стоят соответствующие процессы сертификации, объективно подтверждающие качество продуктов. В сравнении с этим журнальные публикации часто носят рекламный характер и менее значимы. За восемь лет моей работы московское подразделение «ПараГрафа» успело побывать отделением компании SiliconGraphics под названием CosmoSoftware, которым руководил известный тайваньский предприниматель Ли Кайфу. Это время было интересным для исследовательской программистской работы, но трудным для инновационных компаний, которые в кризисные времена страдали от отсутствия сиюминутной прибыли.

По этой причине в 2004 году я перешел в R&D (Research and Development) — подразделение компании Luxoft, позднее преобразованное в стартап MeshNetics в составе холдинга IBS, где проработал до его закрытия в очередной кризис 2008 года в качестве руководителя отдела программистов и технического директора (CTO, Chief Technology Officer, — руководящая должность в западных компаниях, эквивалентная нашему главному инженеру). Это была первая отечественная компания, разрабатывавшая аппаратно-программные решения для беспроводных сенсорных сетей стандартов ZigBee, являвшаяся активным членом международного консорциума. Компания активно участвовала в разработке самих международных стандартов ZigBee и разрабатывала собственные аппаратно-программные реализации этих стандартов, проходившие международную сертификацию. При этом мы участвовали в создании специальных программных средств поддержки этой сертификации для международного консорциума. Занятно, что в 2005 году наша компания выиграла конкурс Минобрнауки (я занимался подготовкой конкурсной документации), и основным нашим конкурентом в борьбе за самый крупный лот был коллектив ВШЭ, представленный сотрудниками факультета бизнес-информатики московского и нижегородского кампусов. Тогда я не предполагал, что всего через несколько лет, в январе 2009-го, окажусь среди них.

В 2015 году по инициативе директора Института системного программирования РАН академика Виктора Петровича Иванникова на факультете компьютерных наук Вышки была организована базовая кафедра «Системное программирование». ИСП РАН разрабатывает технологии мирового уровня в важнейших областях системного программирования, к которым относятся: операционные системы, компиляторные технологии, параллельные и распределенные вычисления, технологии верификации и тестирования программного обеспечения, анализ и обработка больших объемов данных, семантический поиск и др. У ИСП РАН много отечественных и зарубежных партнеров, со многими из них созданы совместные лаборатории. С момента основания кафедры в ВШЭ я являюсь заместителем ее заведующего, ныне — директора ИСП РАН, академика Арутюна Ишхановича Аветисяна.

— В чем заключалась идея создания базовой кафедры в Вышке?

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

Фактически ИСП РАН — основной академический институт, сохранивший и продолжающий традиции отечественной школы программирования, к которой могут приобщиться студенты трех ведущих российских университетов, где есть его базовые кафедры: МФТИ, ВМК МГУ, ВШЭ (они перечислены по хронологии создания базовых кафедр). Базовая кафедра ИСП РАН предоставляет студентам возможность стать участниками этой научной школы, продемонстрировав свои способности и желание заниматься серьезной научно-исследовательской деятельностью в области системного программирования, которое, в свою очередь, является основой программной инженерии. Эту деятельность надо отличать от кружковой, любительской, ремесленной, профессионально-технической подготовки для вхождения в модную область IT. Не надо смешивать уровень техникума, среднего специального образования, с уровнем исследовательского университета. Наука предполагает упорный совместный труд с высокопрофессиональными людьми; надо хотеть и уметь вдумчиво и плодотворно работать. И эти усилия дают результат.

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

— В академической среде результат программистского труда не всегда понимается правильно. Как ни банально это звучит, результатом труда программиста является программа, качество которой можно оценить довольно объективно — по тому, как она работает и что умеет делать. Его нельзя с такой же степенью объективности оценить публикациями — статьями и докладами о программе. А это делается, поэтому зачастую оценка труда программиста бывает далека от объективной. Профессиональное сообщество программистов составляет мнение о программе не по статьям, а прежде всего по ее коду, который можно анализировать, выполнять и оценивать (в том числе в действии). Программисту надо быть вхожим в такое сообщество. Это может быть открытое сообщество (open source) или сильный коллектив коллег (если код нельзя сделать общедоступным по каким-то соображениям). Ведущие университеты мира в области компьютерных наук известны в большей степени разработанными в них технологиями, а не текстами статей об этих технологиях. Развиваться в этом направлении помогает научная школа с традициями, а не коммерческие организации, нацеленные в первую очередь на получение прибыли, но не на генерацию новых идей. В этой связи вызывают сомнения внедряемые сейчас критерии оценки эффективности практико-ориентированных траекторий исследователей по объему привлеченных (то есть вырученных) средств: такими способами можно оценивать специалистов по маркетингу, но не по программированию.

Полагаю, что карьерный успех в области программирования (и компьютерных наук в целом) тоже не следует оценивать в терминах величины дохода. Сомневаюсь, что стоит равняться на Билла Гейтса (получившего диплом университета ближе к пенсии). Тут дело не в карьерных показателях, а в твоем личном вкладе в развитие отрасли, который оценивает профессиональное сообщество. Так, М.А. Карцев по праву считается выдающимся отечественным ученым в области компьютерных наук, хотя он и не был академиком: он сам уступил это звание на выборах в АН СССР своему коллеге Якову Залмановичу Цыпкину, назвав себя «больше инженером, чем ученым».

Базовые кафедры и соответствующие базовые научные институты, академические прежде всего, отлично зарекомендовали себя, начиная с МФТИ времен СССР. НИИВК имени М.А. Карцева, где я провел первые двадцать лет своей трудовой деятельности, был создан на базе филиала Радиотехнического института АН СССР имени академика А.Л. Минца, который, в свою очередь, являлся базовым институтом факультета радиотехники и кибернетики МФТИ. Именно базовые институты РАН сделали МФТИ передовым учебным заведением. В любой науке важны прежде всего научные школы, чтобы не прерывалась «связь времен».

профессор департамента программной инженерии факультета компьютерных наук

— С чего начиналась и как складывалась ваша академическая карьера?

— Мой интерес к нейроинформатике, или нейрокибернетике, — науке об обработке информации в естественных нейронных сетях — возник еще на первых курсах института. И дальше я зигзагами (чтобы идти прямо, надо понимать куда) двигался в этом направлении. Я не прошел собеседование при поступлении в Физтех и поступил в МЭИ на специальность «атомные станции». После окончания института я в течение трех лет проектировал реакторы для подводных лодок. Тогда уже горизонты атомной промышленности были очерчены, и, чтобы на всю жизнь не остаться физиком-ядерщиком, я продолжил интересоваться нейроинформатикой. В 1976 году окончил инженерный поток мехмата МГУ и поступил в аспирантуру МВТУ (сегодня — МГТУ) имени Н.Э. Баумана на кафедру систем автоматического управления Владимира Викторовича Солодовникова. Благодарен моим коллегам, с которыми я учился в аспирантуре и с которыми мы до сих пор поддерживаем тесные отношения, и особенно благодарен моему научному руководителю Вадиму Николаевичу Плотникову за его поддержку: он ни в чем меня не ограничивал. На что он мне пенял, так это на то, что я разбрасываюсь, не сосредотачиваюсь на одном направлении. Всю свою жизнь я изучал и изучаю до сих пор естественные нейронные сети, ну и по необходимости искусственные тоже. В аспирантуре я вел студенческую научно-исследовательскую группу «Нейроинформатика», где мы пытались реализовывать аппаратно наши нейроинформатические знания, за что получили даже бронзовую медаль ВДНХ. В период учебы в аспирантуре я участвовал вместе с Юрием Николаевичем Жигулевцевым (он и сейчас преподает в МГТУ) в разработке платы речевого управления для первой одноплатной отечественной микро-ЭВМ «Электроника НЦ-8001Д» (которую разработал Сережа Шишарин в АО «Ангстрем» в отделении у Валерия Леонидовича Дшхуняна, впоследствии возглавившего «Ангстрем»), системы речевого управления креслом космонавта (для перемещения в открытом космосе) и системы речевого ввода в бортовую ЭВМ корабля «Буран». В 1981 году защитил кандидатскую диссертацию на тему «Речевое управление движущимися объектами». После защиты некоторое время работал под руководством Владимира Львовича Таубкина в отделе нейробионики ЦНИТИ Минпромсвязи. Там у нас была своя микроэлектронная линейка, и мы вместе с родственной лабораторией нейробионики МИРЭА, которую возглавлял Евгений Георгиевич Литвинов, выпустили интегральную микросхему ассоциативного фильтра, реализующую принципы обработки информации в естественных нейронах (Игорь Леонидович Корнеев до сих пор в НИИМА «Прогресс» этим занимается). Потом был период поиска себя в разных областях: я разрабатывал систему распознавания речи для внутриобъектовой связи в ЦНИИ «Волна», участвовал в разработке гидроакустических комплексов для подводных лодок, в НИИМА «Прогресс» работал менеджером по маркетингу.

Наконец, в 1996 году я перешел в Институт высшей нервной деятельности и нейрофизиологии РАН, где работаю до сих пор. Параллельно в ООО «Юникор микросистемы» у Сережи Шишарина я возглавлял отдел по разработке микросхем для распознавания речи — там мы разработали однокристальную систему для покомандного распознавания слов. К сожалению, в какой-то момент китайский владелец фирмы Эндрю Онг закрыл ее, и на этом работы прекратились. В фирме ООО НПИЦ «Микросистемы» мы разработали в 1996 году программную технологию TextAnalyst для автоматического смыслового анализа текстов, основанную в том числе на искусственных нейронных сетях. Некоторое время она была довольно популярна и до сих пор используется специалистами-филологами при решении, например, социологических задач.

Приблизительно в это же время у меня состоялось знакомство с Эдуардом Викторовичем Поповым, автором книги «Общение с ЭВМ на естественном языке», в которой он описал реализованный проект создания базы знаний для Совета Министров СССР с вводом/выводом информации на естественном языке. Он меня сильно эмоционально продвинул вперед! И до сих пор не существует систем диалога, даже близко похожих на эту систему. Dr. Watson от IBM был создан только через тридцать лет после этого.

Чуть раньше мы общались на семинарах и конференциях в Пущине с Виталием Ивановичем Крюковым, до недавнего времени занимавшимся информатикой мозга как кибернетик (а ныне игуменом Свято-Данилова монастыря в Москве).

Лет пятнадцать назад я начал преподавать нейроинформатику — сначала в Московском лингвистическом университете, куда меня пригласила завкафедрой прикладной и экспериментальной лингвистики Родмонга Кондратьевна Потапова (в свое время ЦНИИ «Волна» заказывал им разработку теоретических основ распознавания речи). Затем с подачи Александра Ивановича Галушкина, тогда завкафедрой интеллектуальных информационных систем и технологий Физтеха (в настоящий момент я возглавляю эту кафедру), я пришел преподавать нейроинформатику в ВШЭ.

В 2008 году руководитель издательского дома «Народное образование» и главный редактор одноименного журнала Алексей Михайлович Кушнир предложил мне выпускать научно-технический журнал «Речевые технологии» (speechtechnology.ru), который существует и в настоящее время.

— Как возникла в вашей жизни еще в советское время тема нейросетей?

— На самом деле в советское время проводилось большое количество исследований в области изучения естественных нейронных сетей. Я очень признателен Аркадию Николаевичу Радченко, чья книга «Моделирование основных механизмов мозга», вышедшая в свет в 1968 году, дала основное направление моим мыслям. Его последняя монография «Информационные механизмы мозга: ассоциативная память, квазиголографические свойства, ЭЭГ-активность, сон», первая глава которой посвящена физике и информатике синаптических каналов, на мой взгляд, до сих пор остается недосягаемой вершиной среди громадного количества исследований подобного рода. Желающим могу переслать ее текст. Книги Александра Романовича Лурии (в первую очередь его лекции на психфаке МГУ, переработанные затем в монографию «Язык и сознание»), «Высшие интегративные системы мозга» Александра Сергеевича Батуева, «Зрение и мышление» Вадима Давыдовича Глезера, «Гиппокамп и память» Ольги Сергеевны Виноградовой, «Психофизиологические основы нарушения мышления при афазии» Татьяны Борисовны Глезерман — непревзойденные исследования в этой области. Можно упомянуть в этой связи и ведущих авторов из США: E.T. Rolls, David Marr, David Hubel.

— В чем специфика научного сообщества программистов, особенности построения академической карьеры?

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

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

— Какие у программистов критерии профессионального успеха?

— В программировании основным критерием успеха является постоянное следование технической моде, с одной стороны, и работа в престижных компаниях (Сбербанк, например). Необходимо отслеживать современные тенденции: стоит немного отстать — и окажешься невостребованным.

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

— Чем отличаются академические стандарты программистов: требования к публикациям и т.п.?

— Про программирование говорить не буду: я уже много лет не программирую. Есть смысл публиковать работы, где основа — это все-таки научные исследования, а программирование лишь инструмент.

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

— Изменилось ли что-то в этом плане за то время, что вы в профессии?

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

Усилилась жесткость отбора. Раньше это был скорее кастовый отбор: наверх пробивался тот, кто располагал бо́льшими возможностями получить знания, у кого потребность в специальных знаниях формировалась с детства в рамках его социальной категории. Сейчас доступ к знаниям сильно упрощен, но и число мест в профильных вузах строго ограничено.

Возник новый психологический феномен — так называемое клиповое мышление. Наличие доступа к источникам в интернете создает впечатление неограниченного доступа к знаниям. Однако модель мира формируется в индивидуальном сознании человека в процессе структурирования его собственных знаний. Если их нет — нечего структурировать. А при отсутствии собственных знаний человек идет туда, куда идут все. Очень удобно для манипулирования массами.

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

 

6 декабря, 2023 г.