Данные из 155 вакансий · 23 июня 2026

Как стать ML-инженером: путь от нуля до первого оффера

Не «стань разработчиком за 3 месяца» — реальный путь входа на основе данных по 155 вакансий.

АМ Алексей Морозов · Технический редактор · Senior Machine Learning Engineer
Junior-вакансий сейчас
12
8% от всех 155 вакансий
Сложность входа
Средняя
8% junior-вакансий
Senior / Junior+Intern
4.5x
На каждого junior+intern — 4.5 senior
Навыков / вакансия
10
медиана по вакансиям
Всего вакансий
155
активных в Москве
Топ-навыки для junior
Python ≈90.9% SQL ≈54.5% LLM ≈36.4% PyTorch ≈36.4% RAG ≈36.4% LangChain ≈36.4% Docker ≈27.3% FastAPI ≈27.3%

% вакансий уровня junior, требующих навык · ≈ — оценка по малой выборке

Можно ли стать ML-инженером с нуля

Да. По данным SkillStat, 8% вакансий ML-инженера — уровня junior или стажёр. Это 12 вакансий прямо сейчас. Работодатели нанимают за потенциал, который подтверждается проектами, а не дипломом.

«С нуля» в 2026 году — это «без коммерческого опыта», а не «без знаний». Для первой работы достаточно: знание языка, базовый SQL, один фреймворк и 1–2 рабочих проекта на GitHub.

Один нюанс: конкуренция высокая. На каждую junior-вакансию ML-инженера приходится 4.5 senior-вакансии — рынок ориентирован на опытных. Это не повод не пробовать, но повод готовиться серьёзно: проекты, GitHub, умение объяснить код.

Как стать ML-инженером: короткий план

Пять этапов от первого синтаксиса до первого оффера.

01
Основной язык
Синтаксис, ООП, стандартная библиотека. Пишешь код каждый день.
02
Git + SQL
Git — обязателен на любом грейде. SQL — в большинстве junior-вакансий.
03
Фреймворк
Один: FastAPI или Django. Пишешь первый рабочий API.
04
Первый проект
REST API или веб-приложение с базой данных. На GitHub с README.
05
Первый оффер
Откликаешься, проходишь собеседования. Не ждёшь идеальной готовности.

Что учить ML-инженеру первым

Не всё сразу. Вот очерёдность по частотности в вакансиях — от самого нужного к менее срочному.

Навык Все вакансии Junior-вакансии
Python 89% ≈90.9%
LLM 47.1% ≈36.4%
PyTorch 46.5% ≈36.4%
SQL 45.2% ≈54.5%
Docker 40% ≈27.3%
RAG 26.5% ≈36.4%
Git 24.5%
pandas 24.5% ≈9.1%
Apache Airflow 23.2% ≈9.1%
MLflow 23.2% ≈9.1%

«Все вакансии» — доля из 155 вакансий. «Junior-вакансии» — доля из junior-уровня. «≈» — оценка по малой выборке. Обновлено 23 июня 2026.

Полный список навыков с частотностью, связками и зарплатной премией — навыки ML-инженера →

Roadmap ML-инженера: от нуля до junior

Порядок опирается на частотность навыков по данным вакансий. Первые 4–5 этапов — минимум для первого оффера.

  1. 01
    Python и базовые библиотеки 89% вакансий · jr: ≈90.9%

    NumPy, Pandas — обработка данных; Jupyter/VS Code, виртуальные окружения.

    Подробнее →
  2. 02
    Классический ML 22.6% вакансий · jr: ≈18.2%

    Scikit-learn: линейные модели, деревья, градиентный бустинг, оценка качества моделей.

    Подробнее →
  3. 03
    Нейросетевые фреймворки 46.5% вакансий · jr: ≈36.4%

    PyTorch или TensorFlow/Keras — архитектуры, обучение, инференс.

    Подробнее →
  4. 04
    LLM и языковые модели 47.1% вакансий · jr: ≈36.4%

    Трансформеры, API OpenAI/YandexGPT/GigaChat, prompt engineering, few-shot learning.

    Подробнее →
  5. 05
    RAG и векторные базы данных 26.5% вакансий · jr: ≈36.4%

    Retrieval-Augmented Generation: эмбеддинги, Qdrant/Chroma/Weaviate, similarity search.

    Подробнее →
  6. 06
    Агентные фреймворки и оркестрация 15.5% вакансий · jr: ≈36.4% middle+

    LangChain, LlamaIndex — AI-пайплайны, tool calling, многоагентные системы.

    Подробнее →
  7. 07
    Деплой и сервинг моделей 21.3% вакансий · jr: ≈27.3% middle+

    FastAPI/gRPC для инференса, Docker, ONNX — оптимизация latency в production.

    Подробнее →
  8. 08
    MLOps и мониторинг 23.2% вакансий · jr: ≈9.1% middle+

    MLflow, DVC, Airflow — версионирование экспериментов, воспроизводимость, мониторинг дрейфа.

    Подробнее →

Junior-вакансии ML-инженера: что реально требуют работодатели

Срез построен на 155 активных вакансий.

Junior-вакансий
12
inc. стажировки
Доля junior
8%
от всего рынка
Senior / Junior+Intern
4.5x
соотношение
Навыков / вакансия
10
медиана
Распределение вакансий по грейдам
Intern — 0.8% (1)
Junior — 9.2% (11)
Middle — 32.8% (39)
Senior — 45.4% (54)
Lead — 11.8% (14)
Что значат эти цифры. Доля junior 8% — это умеренный рынок для входа. На каждую junior-вакансию приходит сотня откликов. Это не значит, что нельзя — это значит, что важны рабочие проекты и конкретные навыки, а не просто «знаю Python».

Какие проекты сделать для портфолио

Проекты важнее сертификатов. Работодатель смотрит: есть ли рабочий код, понятен ли README, можно ли его запустить.

REST API с базой данных
Средняя · 1–2 недели
Стек: Python, SQL, LLM
GitHub: README с инструкцией запуска, .env.example, хотя бы 5 unit-тестов
Ценность: Закрывает основной стек junior-вакансий
Веб-приложение с авторизацией
Средняя · 2–3 недели
Стек: Django, PostgreSQL, JWT или сессии
GitHub: Рабочий деплой (Railway, Render или аналог) + README
Ценность: Показывает Django + аутентификация
Telegram-бот с хранением данных
Лёгкая · 1 неделя
Стек: python-telegram-bot или aiogram, SQLite/PostgreSQL
GitHub: README с токеном через .env, структура команд
Ценность: Быстрый старт, понятен работодателю
Парсер + хранение в базу
Лёгкая–средняя · 1–2 недели
Стек: requests/httpx, BeautifulSoup, PostgreSQL
GitHub: README с описанием источника и что парсит
Ценность: Практический навык работы с данными

Как оформить GitHub и резюме

Профиль GitHub
  • Заполненный bio и контакты
  • Pinned repositories: 2–4 лучших проекта
  • Каждый проект: README с описанием, установкой и запуском
  • Читаемая история коммитов (не «fix», «fix2», «fix3»)
  • Тесты: хотя бы базовые unit-тесты
Резюме без коммерческого опыта
  • Раздел «Проекты» вместо «Опыт работы» — описывай как опыт
  • Для каждого проекта: стек + что реализовал + ссылка на GitHub
  • Навыки — только то, что реально использовал в проектах
  • Не пиши «знаю Python» — пиши что конкретно сделал
  • Сопроводительное письмо: 3–4 предложения, без воды
Слабое резюме

«Изучил Python, знаю Django, умею работать с базами данных»

Сильное резюме

«Разработал REST API на FastAPI + PostgreSQL. Реализовал авторизацию JWT, написал 12 unit-тестов, развернул в Docker Compose. GitHub: [ссылка]»

Самостоятельно, курсы или вуз — какой путь выбрать

Самостоятельно
Гибко, дёшево, можно совмещать с работой
Нужна дисциплина; легко застрять без фидбека
Если умеешь учиться самостоятельно и готов на 12–18 мес
Курсы с ментором
Структура, фидбек по коду, помощь с резюме
Дорого (30–120k); качество сильно варьируется
Если нужна структура и готов проверять программу перед покупкой
Вуз / колледж
Диплом открывает корпорации; фундаментальная база
4 года; медленно; не всегда практично
Если в планах крупные корпорации или академическая карьера
Главная ловушка курсов: обещание трудоустройства. Работодатели нанимают за навыки и проекты, а не за диплом курса. Проверяй программу: должна быть реальная практика и pet-project, который ты сделал сам.
Курсы · подобрано по данным рынка

Курсы для ML-инженера

Сопоставили программы с реальным стеком из 155 вакансий — оценка соответствия рассчитана автоматически, это не реклама.

Все курсы →
Соответствие = доля ключевых навыков вакансий, которые закрывает программа курса. На основе 155 вакансий, обновлено автоматически.

Что спрашивают на собеседовании

Python basics
Типовые вопросы
  • ·Разница list/tuple/set
  • ·GIL — что это и зачем
  • ·Декораторы и генераторы
  • ·Типизация, dataclasses
Как показать проектом

Любой проект: покажи использование ООП и типов

SQL и базы данных
Типовые вопросы
  • ·JOIN: INNER, LEFT, RIGHT
  • ·Индексы — зачем нужны
  • ·Транзакции и ACID
  • ·ORM vs raw SQL
Как показать проектом

Модели в Django или SQLAlchemy в твоём проекте

Веб-фреймворк
Типовые вопросы
  • ·Жизненный цикл запроса
  • ·Middleware / зависимости
  • ·Сериализация данных
  • ·Аутентификация JWT
Как показать проектом

API-проект: покажи структуру, роуты, обработку ошибок

Git и командная работа
Типовые вопросы
  • ·Branching-стратегия
  • ·Rebase vs merge
  • ·Code review — что смотришь
  • ·Конфликты слияния
Как показать проектом

История коммитов в GitHub — покажи осмысленные сообщения

Сколько времени нужно, чтобы стать ML-инженером

Минимум
6–9 мес
С базой программирования + ментор + интенсивный темп
Медиана
12–18 мес
Самостоятельно, 2–4 часа в день, с нуля
Реалистично
18–24 мес
При совмещении с работой / учёбой

Почему «за 3 месяца» — маркетинг. За 3 месяца можно выучить синтаксис. Для первого оффера нужно: 2+ проекта → резюме → десятки откликов → собеседования. Это занимает больше времени.

От чего реально зависит скорость: база (есть ли программирование / CS?), время в день (2ч vs 6ч), качество практики (проекты vs теория), готовность откликаться параллельно с учёбой.

Ошибки новичков

Учат теорию без практики

Почему мешает: Нет кода = нет портфолио = нечего показать работодателю

Как исправить: Каждая тема — это задача или проект, а не только конспект

Ждут идеальной готовности

Почему мешает: Идеальной готовности не бывает. Год учёбы без откликов — потерянное время

Как исправить: Начинай откликаться, когда есть 2 проекта и базовый SQL

Пустой или закрытый GitHub

Почему мешает: Нечего показать → нет доверия → нет оффера

Как исправить: Любой рабочий проект с README лучше пустого профиля

Резюме «знаю Python»

Почему мешает: Без конкретики это ничего не значит

Как исправить: Конкретные проекты с результатами и ссылками на GitHub

Игнорируют SQL и PostgreSQL (PostgreSQL — в 17.4% вакансий)

Почему мешает: SQL и PostgreSQL — обязательный навык для большинства junior-вакансий

Как исправить: Минимум: SELECT, JOIN, GROUP BY, индексы. Практика на PostgreSQL

LeetCode вместо фреймворка

Почему мешает: Hard-алгоритмы нужны в единицах компаний. Большинству junior важнее фреймворк

Как исправить: Базовые алгоритмы (сортировки, структуры данных) + один веб-фреймворк — приоритет

Берут первый попавшийся курс

Почему мешает: Много денег, мало практики — распространённая схема

Как исправить: Проверяй: есть ли pet-project в программе, реальная ли практика

Не просят фидбек после отказов

Почему мешает: Теряешь бесплатную информацию о том, что улучшить

Как исправить: После каждого отказа: «Можете сказать, чего не хватило?»

Как SkillStat считает данные

Источник: 155 вакансий в московском сегменте. Навыки и грейды извлекаются автоматически из текста каждой вакансии.

Грейды: определяются по требованиям вакансии — уровню опыта, упоминанию «junior», «intern», «стажёр». Это рыночная оценка объявления.

Сложность входа: рассчитывается по доле junior-вакансий и медиане навыков на junior-уровне. Это индикатор, а не гарантия.

Обновление: данные пересчитываются регулярно. Текущий срез — 23 июня 2026.

Частые вопросы

Можно ли стать ML-инженером с нуля?
Да. По данным SkillStat, 8% вакансий ML-инженера — уровня junior или стажёр (12 из 155). Работодатели нанимают за потенциал, который подтверждается проектами, а не дипломом. Требования для старта: знание языка, базовый SQL, один фреймворк и 1–2 проекта на GitHub.
Что нужно знать, чтобы стать ML-инженером?
Для первой работы достаточно базового стека. По данным 155 вакансий: Python (89%), LLM (47.1%), PyTorch (46.5%), SQL (45.2%), Docker (40%). Полный список навыков с частотностью — на странице навыков.
С чего начать путь ML-инженера?
С ключевых навыков: Python → LLM → PyTorch → SQL. Доведи каждый до уровня рабочего проекта — не учи всё подряд. Детальный порядок — в разделе «Roadmap» выше на странице.
Сколько времени нужно, чтобы стать ML-инженером?
Медиана по реальному опыту — 12–18 месяцев при самостоятельном обучении по 2–4 часа в день. С ментором и интенсивным темпом — 6–9 месяцев. «За 3 месяца» возможно только с базой программирования.
Можно ли стать ML-инженером без высшего образования?
Да. Большинство junior-вакансий не требуют диплом. Работодатели смотрят на проекты и умение объяснить код. Диплом даёт преимущество при входе в крупные корпорации, но не является обязательным.
Нужно ли знать математику?
Да, нужна. Линейная алгебра, теория вероятностей и матанализ — основа для понимания алгоритмов. Без математики можно пользоваться готовыми инструментами, но не понять их поведение и ограничения.
Нужен ли SQL?
Да. SQL — базовый навык: встречается в 45.2% вакансий. PostgreSQL — самая частая СУБД (17.4% вакансий, 27 из 155). Минимум для первой работы: SELECT, JOIN, WHERE, GROUP BY, CREATE TABLE, индексы.
Нужен ли Docker?
Желательно. Docker есть в 40% вакансий ML-инженера (62 из 155). Для первого оффера достаточно уметь написать Dockerfile и запустить docker-compose.
Какие проекты сделать для портфолио?
Минимум 2 рабочих проекта с README, используй ключевые навыки профессии: Python, LLM, PyTorch. Главное — рабочий код на GitHub, который можно запустить по инструкции.
Когда начинать откликаться на вакансии?
Когда есть 2 проекта на GitHub, базовый SQL, один фреймворк и можешь объяснить свой код. Не жди идеальной готовности — параллельно с учёбой. По рынку: 12 вакансий для junior прямо сейчас.
Как найти первую работу без опыта?
hh.ru (фильтр junior/стажировка), Habr Career, Telegram-каналы вакансий, стажировки в крупных компаниях. Десятки откликов до первого интервью — нормальная ситуация для junior-рынка. Первые отказы — не финальный сигнал.
Что писать в резюме без коммерческого опыта?
Описывай свои проекты как полноценный опыт: технологии + что реализовал + ссылка на GitHub. Укажи конкретные инструменты: Python, LLM. Вместо «знаю» — «реализовал», «настроил», «разработал» с измеримым результатом.
Какие ошибки чаще всего делают новички?
Учат теорию без практики; ждут идеальной готовности; не делают проекты; игнорируют SQL; пишут пустое резюме «знаю Python». Подробнее — в разделе «Ошибки новичков» на этой странице.
Сколько зарабатывает начинающий ML-инженер?
Ориентир для junior — 129 150–186 550 ₽ (45–65% от медианы рынка 287 000 ₽). Актуальные данные с разбивкой по грейдам — на странице зарплат.
Где посмотреть навыки ML-инженера?
На странице навыков ML-инженера — частотность по 155 вакансий, разбивка по грейдам и связки технологий.
Где посмотреть зарплаты ML-инженера?
На странице зарплат ML-инженера — медиана, вилка, динамика по месяцам.