Всем привет! Меня зовут Александр Агеев, мне 28 лет, я senior NLP‑разработчик и за последние годы успел побывать по обе стороны стола на собеседованиях: и как кандидат, и как интервьюер. В этой статье я систематизировал ключевые разделы, которые чаще всего встречаются на интервью по обработке естественного языка, компьютерному зрению и смежным направлениям. Расскажу, что обычно проверяют у джунов, а также укажу разделы, которые важны уже для миддлов.
Материал будет полезен тем, кто готовится к собеседованию в сфере NLP и ML, а также тем, кто сам проводит интервью — вы найдете идеи для структуры вопросов. Статья отражает мой личный опыт (поэтому ряд пунктов может показаться вам спорным), но может стать удобным чек‑листом при подготовке к техническим собеседованиям.

Python
Общее представление о языке: что такое Python, как его можно классифицировать.
Как выполняется программа на Python: выделение ресурсов, хранение данных, работа с кучей, диспетчер памяти, особенности GIL и тонкости многопоточности.
Управление памятью: сборщик мусора, счетчик ссылок, механизм освобождения памяти.
Классические вопросы ООП: что такое объектно‑ориентированное программирование, наследование, полиморфизм, инкапсуляция, особенности реализации в Python.
Функциональные возможности: лямбда‑функции, map/filter/reduce, декораторы, рекурсия (и способы ее оптимизации).
Как эффективно пройтись по списку (генераторы, list comprehension), чем генераторы лучше с точки зрения памяти.
Базовые типы данных в Python, что с ними можно делать и как классифицировать (изменяемые/неизменяемые, упорядоченные или нет).
Базовые структуры данных: бинарные деревья, односвязные/двунаправленные списки, хэш‑таблица, стек, очередь, дек.
Алгоритмы
Что такое алгоритмы, зачем они нужны, основные виды (сортировка, поиск, графовые, динамическое программирование и т. д.).
O‑нотация, как она помогает оценивать быстродействие алгоритмов по времени и памяти.
Эффективность: сравнение алгоритмов по скорости выполнения и потреблению памяти, примеры, когда важнее одно, а когда другое.
Операции с данными: добавление и удаление элементов, особенности работы со структурами данных (списки, множества, словари).
Математика
На самом деле, далеко не на каждом собеседовании возникают вопросы по математике, но тем не менее вы должны быть к ним готовы.
Статистика и теория вероятностей:
базовые термины и понятия (среднее, медиана, дисперсия, квартили, матожидание);
основные типы распределений и их свойства, условная вероятность, теорема Байеса;
критерии оценки (t‑критерий Стьюдента, р‑уровень значимости, правило 3 сигм, закон больших чисел, центральная предельная теорема);
методы — метод максимального правдоподобия, корреляция, оценка зависимости между переменными.
Матанализ:
функции и пределы;
производные и дифференциалы;
исследование функций — монотонность, экстремумы, точки перегиба, применение производных для анализа поведения функции;
функции нескольких переменных ‑частные производные, градиенты, поиск экстремумов с использованием дифференциального исчисления.
Линейная алгебра:
операции над матрицами (сложение, умножение, транспонирование), обратные матрицы, ранг, разложение;
системы линейных уравнений — решение СЛАУ, понимание линейной зависимости, линейные пространства;
разложение и свойства — собственные значения, собственные векторы, спектральные разложения.
SQL
Базовые операции — SELECT, фильтрация, объединение таблиц. Более сложные темы — подзапросы, оконные функции — встречаются крайне редко.
Про то, как подтянуть Python, SQL и математику
без регистрации и смспри помощи бесплатных общедоступных ресурсов и сколько примерно времени на это потребуется, я писал ранее в статье «Как стать разработчиком ML и нейронок».
Классический ML
Базовые алгоритмы (k ближайших соседей, кластеризация, k‑средних, логистическая регрессия, наивный Байес, t‑SNE, понижение размерности, PCA, метод опорных векторов, SVM, линейная регрессия, деревья, леса, бустинги).
Типы задач ИИ.
Подготовка датасета — сбор и очистка данных, нормализация и стандартизация, работа с пропусками, категориальными признаками, разметка классов.
Построение пайплайна — путь от разметки и подготовки данных до обучения модели и получения финального результата.
Архитектуры нейросетей
Вопросы про архитектуру есть практически всегда, навскидку — в 80% собеседований.
Эволюция архитектур сетей: для компьютерного зрения — классификация, сегментация, детекция, для NLP — трансформеры.
Соответственно, это обзор, какие фичи были и для чего.
На эти темы я уже писал на Хабре:
Эволюция архитектур нейросетей в компьютерном зрении: классификация изображений
Эволюция архитектур нейросетей в компьютерном зрении: сегментация изображений
Эволюция архитектур нейросетей в компьютерном зрении: детекция объектов
Про трансформеры я пока не написал статью, но в целом на Хабре есть весьма достойные обзоры.
Общее понимание работы ИИ
Как работает и как обучается ИИ.
CNN — как обучается модель на свертках, что такое ядро (kernel) и паддинг (padding), роль функций активации и их виды (для бинарной и многоклассовой классификации).
Оптимизация и градиенты — как считаются градиенты, виды градиентного спуска (обычный, стохастический, с моментумом, RMSProp, AdaDelta, Adam), что такое дропаут и зачем он нужен, нормализация слоев и ее роль.
Процесс обучения — прямой и обратный проход (forward/backward propagation), функция потерь и ее минимизация, общие методы предотвращения переобучения.
Метрики для разных задач
Общий обзор метрик по задачам классификации, сегментации, детекции.
Как выбрать подходящие метрики для своей задачи.
Ответы на эти вопросы можно найти в статье «Метрики оценки моделей нейронных сетей для чайников».
Фреймворки
PyTorch — как устроен, для чего используется, тензоры, вычислительные графы, как устроен пайплайн обучения модели (forward, backward, optimizer, loss).
Scikit‑learn (sklearn) — для чего.
Matplotlib — для чего, когда стоит использовать.
Linux
Основные команды — действия с файлами, папками, подключение по SSH, установка и удаление программ, создание и работа в виртуальном окружении, работа в Docker.
Файловая система Linux и права доступа.
Будет полезным — использование UI vs консоль.
Docker
Базовое понимание докера — образы, контейнеры, тома, сети, отличие от виртуальных машин, изоляция окружений, переносимость.
Dockerfile — создание собственного образа, оптимизация размера.
Docker Compose. Практика: сделать свою сетку, обернув ее, например, в FastAPI‑приложение, затем это все обернуть в Docker/Docker Compose.
Аппаратное обеспечение
(Раздел спрашивают на позицию миддла).
Как рассчитать количество GPU, нужных для решения конкретной задачи со всеми вытекающими: как подобрать видеокарты, как мониторить использование ресурсов.
Как считать экономическую эффективность (сколько стоит запуск одного инференса, сколько будет запусков в день, сумма на месяц и тд), чтобы понять, когда бизнесу выгодно внедрить алгоритм на GPU, а когда надо использовать более простой алгоритм под CPU.
Оптимизация моделей
(Раздел спрашивают на позицию миддла).
Зачем нужна оптимизация моделей для продакшна.
Как ускорять инференс на CPU и GPU.
Что такое ONNX: конвертация моделей, совместимость с разными фреймворками.
Работа с TensorRT: для каких карт используется, преимущества и ограничения.
Батчевая обработка (batching) при инференсе: зачем и как применять.
Отличия оптимизации на NVIDIA и AMD GPU.
Английский язык
(Раздел спрашивают на позицию миддла).
В России чаще оценивают способность чтения технический статей. Если есть планы работать в иностранной компании — естественно, все собеседование будет на английском.
Спасибо всем, кто дочитал. Если у вас есть вопросы или комментарии, буду рад обратной связи. Помимо публикаций на Хабре, я веду телеграм‑канал, где более подробно разбираю многие вопросы по NLP и ML, и там я отвечаю оперативнее. Подписывайтесь, чтобы не пропускать новые материалы и практические разборы.