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

«Программировать люблю, в том числе — себя»: Виктория Фирсанова о преподавании, проектах и нейросетях

Преподавательница магистерской программы «Языковые технологии в бизнесе и образовании» Виктория Фирсанова рассказала о своих курсах и проектах, поделилась советами для новичков и оставила напутствие тем, кто хочет делать «всё, что помещается в экран».

«Программировать люблю, в том числе — себя»: Виктория Фирсанова о преподавании, проектах и нейросетях

Фото из архива Виктории Фирсановой

«Я стараюсь всё объяснять»

Сейчас я веду «Основы программирования (на Python)», «Введение в машинное обучение» и «Глубинное обучение» (Deep Learning): каждая дисциплина вытекает из другой. Ребята приходят с очень разным бэкграундом, который очень варьируется из года в год, поэтому приходится переписывать всю программу. В прошлом году в наборе были студенты с опытом программирования, наверное, уже больше, чем у меня, а были те, кто начинал с нуля, поэтому были группы Beginners (Начинающие) и Advanced (Продвинутые), которых я сразу начала погружать в большие языковые модели (Large Language Model, LLM). 

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

В этом году на выходе тоже были интересные проекты: например, RAG-системы; парсинг-система, которая находит информацию на сайте и оборачивает это в LLM. Сейчас у нас идет традиционное «Машинное обучение»: в прошлом году я постаралась поместить в один короткий курс всё от линейной регрессии до трансформеров, а в этом — разделила на два отдельных курса. На первом у нас идет вся база: деревья решений, линейная регрессия, очень много математики. Я стараюсь всё объяснять и даю домашние работы: почитать учебники, посмотреть классическую теорию, порешать туториалы, пообучать модели, сделать эксплораторный анализ. Одним словом, я хочу, чтобы у ребят была хорошая база по машинному обучению, потому что сейчас на рынке многие приходят со знанием GPT-3, умеют файн-тюнить модели, а как работает базовое машинное обучение, не знают. Это плохо и для российского рынка — раньше мы больше опирались на иностранные решения, а сейчас нужно делать свои. Современные специалисты многого не знают (я сижу в чатах аналитиков данных): ни математику под капотом нейросетей, ни то, как архитектура «Трансформер» работает.

«Выйдут конкурентоспособные специалисты и подтянут индустрию»

Я даю достаточно сложный материал с прицелом на то, что выйдут специалисты, которые будут конкурентоспособными на рынке и подтянут индустрию. 

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

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

Частая ошибка студентов гуманитарных специальностей — думать, что написание кода похоже на написание художественного произведения. Здесь важна работа по выстраиванию мышления в определенной парадигме. Программирование — это построение логических цепочек. Даже школьные уроки физики с контактами и лампочками ближе к программированию, чем написание текста. Например, изучая Pascal, понимаешь процессы вывода на экран, обработки и так далее. Если бы ребята начинали с JavaScript или со статической типизации языков, было бы легче учиться, потому что Python, к сожалению, не дает такого же понимания — его синтаксис довольно прост. Мы занимаемся машинным обучением, и нужно быть готовыми к освоению чего-то более низкоуровневого. Тем более Python падает в популярности в области искусственного интеллекта из-за своей скорости, некоторые задачи там не решить. Сейчас очень популярны языки Rust, TypeScript. Я сама в основном пишу на C++.

«Когда человек учится, советую постараться ничего не генерировать»

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

Когда человек учится, советую ничего не генерировать. В  IT есть градация от junior к senior. Если джуну нельзя генерировать, то сеньору — можно автоматизировать, когда ты точно знаешь, что делаешь, какого результата ожидаешь. 

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

«Прикольно же не набирать это всё, а просить свой компьютер, как Джарвиса»

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

Мой второй большой проект тоже связан с доступностью: я создала датасет с 6 500 командами Linux (например, ls, отображающей файлы в текущей директории), переведенных на 10 языков мира (английский, китайский, немецкий, французский, японский, арабский и другие) с помощью нейросетей. Сейчас я обучаю большую языковую модель распознавать такие команды на естественном языке: например, «перезапусти базу данных MongoDB» на русском языке и выдавать ответ-расшифровку для Linux. По сути, это машинный перевод на достаточно сложный язык shell. Потом я хочу подключить распознаватель речи и создать инструмент, который делает терминал более доступным для незрячих. Изначально это был проект для себя, так как я всё время сижу в терминале. В один из таких моментов я подумала: «Прикольно же не набирать это все, а попросить свой компьютер, как Джарвиса, сделать что-то». Работа оказалась сложнее, чем я предполагала, но датасет  хороший получился — на Hugging Face ему поставили уже 94 лайка, что для этого сервиса признак популярности. На нем уже обучили модель на арабском языке, причем с очень хорошими метриками. 

У меня есть ещё социальные проекты, например, «Траектория роста». Этот проект победил в конкурсе «Практики личной филантропии и альтруизма» Благотворительного фонда Владимира Потанина. У нас запланирована серия из трех мероприятий, но, судя по всему, их будет больше. Они направлены на профориентацию в IT, на то, как некоммерческие организации (НКО) могут, например, использовать нейросети для планирования, автоматизации ведения социальных сетей. Третье мероприятие будет называться «Digital-чаепитие»: в неформальной обстановке можно будет обменяться опытом трудоустройства, карьеры и будущего в IT. 

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

«Надо знать базу, чтобы не копировать чужой код»

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

Звезды сошлись, потому что тогда была осенняя школа в московской Вышке, куда приезжала Барбара Парти, ученица Ноама Хомского. Мы с ней даже в переписке состояли. Там также был один молодой человек из Британии, и он мне посоветовал курсы по NLP CS224N. Это самый классический курс по NLP в мире, хоть и сложный. У них выложены все слайды, можно почитать статьи или выполнить упражнения. Они начинаются сразу же с математики — помню, что тогда ничего не знала, но села, и мне так понравилось, что я влюбилась в эту тему. Статьи всегда лучше читать, даже если ничего не понятно, потому что потом все уложится, нужно хотя бы знать точную терминологию. Для этого также читайте Medium, Habr.

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

Благодаря активному участию в Школе Фонда 2021 Стипендиальной программы Владимира Потанина я получила поддержку и прошла обучение по искусственному интеллекту в рамках зимней школы Берлинского технического университета. Говорят, лучший способ научиться программировать — взять задачу, которая тебе интересна и начать ее решать, но мне кажется, это не совсем так. Надо знать базу, чтобы не копировать чужой код. Для этого нужно проходить как можно больше курсов, быть любознательным. Многие советуют Stepik, Coursera, Яндекс.Практикум или курсы от Лины Войты, от Джэй Алламар. Если, кстати, не нравится курс, то забрасывайте — это тоже важно, потому что не каждый курс подходит именно вам — у всех разный тип мышления. Например, я думаю алгоритмами и ничего не могу с собой сделать. Иногда из-за этого сложно общаться с людьми с гуманитарным складом ума — я вообще не понимаю, о чем они говорят, и это обоюдно, потому что «на мозг установлена разная операционка».

«Можем сделать всё, что помещается в экран»

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

Когда люди приходят в программирование, они боятся сделать что-то неправильно и часто воспринимают язык программирования как грамматику: есть правила, есть ошибки. Но это именно инструмент. Допустим, взять молоток: у него будет 55 применений, но если дать молоток художнику в области современного искусства, он из него фонтан сделает. Для меня это напоминание, что у нас есть набор инструментов, и мы можем сделать всё, что помещается в экран. Нельзя посчитать бесконечную последовательность чисел, разделить нормально 1 на 3, делить 0 на 0, а в остальном можно почти всё. 

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

Интервью: Ольга Маркович, студентка 4 курса программы «Филология»