//shamil.ai
ГлавнаяПрограммаОбо мнеИстории учениковТарифыПользаВопросы
Бесплатная диагностика
ПрограммаОбо мнеИстории учениковТарифыПользаДиагностикаВопросыБлог
9 октября 2026 г. · 13 мин чтения

Как перейти из разработки в ML: мой путь из Java и план для бэкендера

Как перейти из разработки в ML: мой путь из Java-бэкенда, истории учеников со сменой стека, план по этапам и честные сроки. Что переносится, а что учить.

Я начинал как Java-разработчик, а сейчас работаю ML-инженером в Поиске Авито. Между этими точками был самостоятельный вкат без системы, первый ML-оффер в рекомендации Сбера, потом Mail.ru. За это время я сам прошёл больше 80 собеседований как кандидат. Теперь веду менторство, и среди тех, кто приходит ко мне переходить в ML, много бэкендеров на Java и Python.

В этой статье расскажу, как это было у меня, что из бэкенда переносится в ML, а что придётся учить с нуля, и покажу план перехода по этапам. Плюс четыре истории учеников, которые сменили стек, с реальными цифрами и сроками.

С чего я начинал: Java-бэкенд и самообучение без системы

Я писал сервисы на Java, разбирался в базах данных и инфраструктуре. В какой-то момент понял, что хочу в ML, но не видел, с какой стороны туда заходить.

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

Первый ML-оффер был в production-рекомендации Сбера: ранжирование и персонализация на реальных пользователях. Параллельно я учился в ИТМО и MADE, чтобы добрать математику и глубину, которых самоучке не хватало. Потом были рекомендации в Mail.ru, сейчас команда релевантности в Поиске Авито.

Главный вывод из своего пути я понял позже, когда начал помогать знакомым. Людям не хватает не материалов. Не хватает карты пробелов, обратной связи и человека, который был по обе стороны собеседования. Из этого и выросла моя программа.

Можно ли войти в ML с нуля, если ты разработчик

Короткий ответ: разработчик входит в ML не с нуля, и от этого зависит весь план подготовки.

Вот что у тебя уже есть и что работает в ML с первого дня:

  • Код. Ты умеешь писать, читать чужой код, отлаживать и организовывать проект. Многие, кто приходит в ML из аналитики или вообще не из IT, тратят на это месяцы.
  • Структуры данных и сложность. Классическая задача с ML-собеседования: скрипт работает часами, потому что проверка вхождения идёт по списку из миллиона элементов. Бэкендер видит это за секунду.
  • Продакшн. Деплой, кэш, мониторинг, латенси, откаты. В ML это отдельная секция собеседования, и учебные курсы её почти не дают.
  • Мышление про систему. Когда сервис с моделью держит 50 запросов в секунду вместо 500, бэкендер первым делом идёт смотреть, где на самом деле уходит время. В ML-сервисах это тот же навык.

В моей диагностике уровня для тех, кто пишет код, но не в ML, есть отдельный вердикт: код и структуры данных у тебя уже работают, и это экономит месяцы. При среднем результате вердикт такой: учиться заново не нужно, нужно добрать ML-ядро, и это 3–4 месяца, а не путь с нуля. При сильном результате разработчик оказывается на самом коротком пути до ML-оффера из всех стартов, что я вижу.

Так что «вкатиться в machine learning» для разработчика означает выучить ML-ядро. Программирование заново учить не нужно.

Чего бэкендеру не хватает при переходе в ML

Теперь о неприятном. Есть темы, где опыт бэкенда не помогает, а иногда даже мешает.

Математика и статистика. Не нужно доказывать теоремы, но нужно уметь объяснить на пальцах, что такое p-value, почему незначимый результат A/B-теста не доказывает отсутствие эффекта и что происходит, когда проверяешь 20 метрик в одном тесте. На этом валятся даже сильные инженеры.

Классический ML. Линейные модели и регуляризация, деревья, бустинги, работа с признаками. На собеседовании спрашивают «почему так», и знания, как вызвать fit, тут мало. Почему случайный лес переобучился, чем бэггинг отличается от бустинга, что делать с категориальным признаком на 5000 значений.

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

Deep Learning и NLP. Цикл обучения на PyTorch, диагностика переобучения, нормализация, трансформеры, attention-маски, эмбеддинги. В моей программе NLP входит в общее ядро для любого направления.

ML System Design. Похоже на обычный System Design, но начинается с другого конца. Бэкендер привык сразу рисовать сервисы и очереди. Здесь сначала фиксируют бизнес-метрику, офлайн-прокси и ограничения, и только потом архитектуру. Кандидат, который сразу называет модель, проваливает секцию.

Чтобы было понятнее, вот несколько вопросов, которые бэкендер без подготовки почти наверняка завалит:

  • Где прячется утечка данных и почему модель с отличной валидацией проваливается в проде?
  • Когда logloss полезнее accuracy и что такое калибровка вероятностей?
  • Как считается self-attention и зачем делить на корень из размерности?
  • Что делать с новым товаром, у которого нет ни одного взаимодействия?

Ни на один из них не ответишь, опираясь только на опыт разработки. Разборы этих и ещё десятка вопросов я собрал в отдельной статье про вопросы на ML-собеседованиях.

И ещё одно отличие, о котором мало говорят. Бэкенд в основном детерминированный: написал код, он работает. ML состоит из экспериментов. Многие гипотезы не взлетают, и это нормальная часть работы. К этому надо привыкнуть.

Истории учеников, которые перешли из разработки в ML

Четыре истории со страницы историй учеников. Это люди с разным бэкграундом в разработке, и у каждого был свой затык.

Java-бэкенд, NLP и LLM

Ему надоело писать бэкенд на Java, хотелось нового вызова и роста зарплаты. Опыта в ML не было совсем. Мы перепаковали его Java-опыт под ML-роль и выбрали целевое направление NLP и LLM с глубиной по трансформерам. По каждому теоретическому блоку был мок с разбором ответов, в конце резюме и подробная легенда, которую он прогонял перед другими учениками.

Потом был плотный поиск: больше 30 собеседований, пока не нашёлся подходящий оффер. В итоге 4 оффера, лучшие 430 и 460 тысяч gross, на руки 400 тысяч. От старта до оффера 250 дней, из них 31 день активного поиска.

Год бэкенда в финтехе

Около года на бэкенде в финтехе, junior за 100 тысяч. Он чувствовал, что задачи стали лёгкими, а по зарплате в компании расти некуда.

Учёбу начал вяло: думал, что можно прочитать документ, всё понять и запомнить. Через месяц захотел бросить. Мы поговорили, и он стал конспектировать темы от руки. После этого материал начал укладываться в голове. Дальше легенда, через неделю прогон перед учениками, потом поиск. Оффер 440 тысяч gross, 382 на руки. От старта 249 дней, поиск занял 51 день.

Он потом сам написал, что сделал бы иначе: начал бы усердно учиться с первого дня, а не через месяц.

Три года Python-разработки

Три года на одном месте, перерос должность и застрял. Выбирал между ростом в бэкенде и ML, выбрал ML.

У него была проблема, которая встречается у разработчиков постоянно: реальный опыт есть, а рассказать о нём не получается. Он никогда не проходил собеседования и звучал менее уверенно, чем люди без опыта работы. Мы разбирали его ответы, искали, где он звучит слабо, и переписывали формулировки. Пять моков: два по ML, по одному по DL, NLP и LLM.

Итог: 11 технических собеседований, два оффера, работа через три недели после начала собеседований. Оффер 356 тысяч gross, 310 на руки, зарплата выросла больше чем вдвое. Весь путь занял 198 дней.

Два года программистом в маленькой компании

Два года в небольшой фирме, где он писал ERP-систему с нуля и настраивал корпоративную почту. Python и понимание того, как строятся системы, у него были, а LLM он знал на уровне «обратиться к API».

Главным препятствием оказался страх оценки на собеседовании. Когда это стало понятно, мы созвонились один на один и отдельно с этим поработали. Резюме сделали такое, что рекрутеры писали ему сами, откликаться почти не пришлось. Оффер 345 тысяч gross, 300 на руки, поиск 47 дней. Весь путь занял 343 дня, и он сам считает, что реально пройти его за полгода, если основная работа не съедает всё время.

План перехода из бэкенда в ML по этапам

Вот как выглядит маршрут в моей программе. Длительности даны для стандартного трека. У бэкендера часть тем закрывается быстрее: на старте я смотрю, что человек уже знает, и сильные темы пропускаем.

  1. Python и алгоритмы, 2 недели. Python на рабочем уровне, структуры данных, задачи с LeetCode к каждой лекции, разбор решений вслух. Бэкендеру из Python здесь обычно хватает повторения, из Java – нужно привыкнуть к numpy и pandas.
  2. Data Analysis и математика, 2 недели. Pandas, разведочный анализ, проверка гипотез, линейная алгебра, теория вероятностей и статистика, оптимизация и градиентный спуск.
  3. Classical ML, 5 недель. Самый длинный блок: линейные модели, деревья, бустинги (CatBoost, LightGBM, XGBoost), метрики и честная валидация, утечки данных, дисбаланс классов и подбор порога. Здесь же два первых мока.
  4. Deep Learning, 2 недели. PyTorch, цикл обучения, регуляризация, диагностика переобучения, эмбеддинги и трансформеры как подготовка к NLP.
  5. NLP, 2 недели. От классического NLP до дообучения трансформеров. В конце выбираешь направление: LLM или рекомендательные системы.
  6. Резюме и легенда, 2 недели. Резюме на цифрах и легенда на 40+ страниц под твой бэкграунд и выбранное направление. Для бэкендера этот этап особенно важен, об этом ниже.
  7. LLM и агенты или RecSys, 3 недели. RAG, агенты, дообучение и оценка качества генерации или кандидатогенерация, ранжирование и метрики рекомендаций. Этот блок доучиваешь параллельно с собеседованиями.
  8. «Хак собесов», 3 недели. Выход на рынок, разбор каждого собеседования, банк из 300+ вопросов от 25 компаний, переговоры по офферу.

Фоном идут Docker и деплой, Spark и Airflow на уровне рабочих задач. Бэкендеру это обычно знакомо, и здесь у него фора перед теми, кто пришёл из аналитики или учёбы.

LLM или рекомендации: что выбрать бэкендеру

Этот вопрос мне задают почти все. Мой ответ: выбирай там, где у тебя уже есть опыт или где тебе реально интересно копать вглубь.

Если в вакансии есть LLM, обычно спрашивают про методы дообучения, токенизацию, RAG и его отладку по частям, латенси и стоимость инференса. Рекомендательные системы и поиск – это кандидатогенерация, ранжирование, метрики ранжирования, холодный старт и петли обратной связи. Я сам всю карьеру в ML занимаюсь рекомендациями и поиском, поэтому могу сказать: бэкенд-опыт там очень пригождается, потому что любая рекомендательная система упирается в латенси, кэши и объёмы данных.

Решение не навсегда. Ядро у обоих направлений общее, и переключиться потом проще, чем кажется. Лучше выбрать одно и пройти его глубоко, чем размазываться между двумя.

Подробно по неделям, с моками и практикой, этот маршрут расписан в программе менторства.

Как упаковать бэкенд-опыт в резюме и легенду

Частый страх бэкендера: «у меня нет ML-опыта, мне нечего показать». На деле опыта больше, чем кажется, его просто описывают не теми словами.

Что работает:

  • Ищи в своей работе задачи с данными. Логирование событий, аналитические выгрузки, рекомендательные или поисковые компоненты, антифрод-правила, A/B-тесты фич. Всё это можно рассказать с точки зрения ML.
  • Говори на языке метрик. Не «писал сервис», а что изменилось в цифрах: латенси, нагрузка, доля ошибок, конверсия.
  • Показывай решения и альтернативы. Почему выбрал этот подход, что ещё рассматривал, что не сработало. Интервьюер проверяет, как ты думаешь, и эту часть надо готовить заранее.
  • Не прячь продакшн. Деплой, инференс, латенси, мониторинг – ровно то, чего не хватает большинству кандидатов после курсов. Для бэкендера это сильная сторона, её надо выносить вперёд.

У ученика из Python-разработки мы проработали в легенде проекты с метриками, эксперименты, альтернативы, факапы, путь до прода и общение с бизнесом. Он потом писал, что на техничках это сразу чувствовалось, а рекрутеры несколько раз отдельно хвалили резюме.

Пример, как одна и та же работа звучит по-разному. Условный бэкендер пишет в резюме: «Разрабатывал микросервисы на Spring, работал с PostgreSQL и Kafka». Для ML-позиции это почти пустая строка. Тот же опыт можно рассказать так: «Строил пайплайн событий для рекомендательного блока, отвечал за то, чтобы признаки доходили до модели с нужной задержкой, участвовал в A/B-тесте новой выдачи». Если ты действительно этим занимался, выдумки тут нет: это тот же опыт, увиденный под другим углом. Цифры в такой строке должны быть твоими реальными, придумывать их нельзя: на собеседовании по каждой зададут уточняющий вопрос.

Легенду мало написать, её надо проговорить. Поэтому у меня ученики прогоняют свою легенду перед другими учениками: те задают вопросы, как на настоящем собеседовании. Бэкендеры, которые никогда не рассказывали про свою работу вслух, на первом прогоне обычно сильно удивляются.

Сколько времени займёт переход и нужно ли увольняться

Ориентир по моей программе: 4–6 месяцев обучения и 1–2 месяца поиска работы, медиана поиска у учеников 48 дней. У разработчика часть тем закрывается быстрее, а у сильных людей с опытом весь путь иногда укладывается в 2–2,5 месяца. Но это лучший случай. У четырёх разработчиков из историй выше путь от старта до оффера занял от 198 до 343 дней, то есть от шести с половиной месяцев почти до года.

Увольняться заранее не обязательно. Большинство учеников совмещают подготовку с работой и уходят уже с оффером на руках. Но работа съедает время. Ученик из маленькой фирмы учился без отрыва от неё, и работа вместе со страхом собеседований растянула его путь почти на год.

Бывает и наоборот. Ученик из финтеха написал, что в следующий раз сразу ушёл бы с работы, чтобы получить оффер быстрее. Это зависит от финансовой подушки и от того, сколько сил остаётся после рабочего дня. Универсального ответа тут нет, и я обсуждаю это с каждым отдельно.

Возраст тоже не помеха. У меня учатся люди от 25 до 40 лет, и на собеседовании смотрят на навыки и то, как ты рассуждаешь. По возрасту в ML не отбирают.

Ошибки, на которых бэкендеры теряют месяцы

Это то, что я вижу чаще всего, включая собственный опыт.

  1. Учить всё подряд. Я сам так начинал: курсы, статьи, ноутбуки без плана. В итоге много знаний, которые не спрашивают, и пробелы там, где режут.
  2. Читать вместо того, чтобы объяснять. Ученик из финтеха думал, что достаточно прочитать документ. Понимание пришло, только когда он начал конспектировать и проговаривать темы. На собеседовании проверяют, можешь ли ты объяснить тему своими словами. Узнать термин в тексте мало.
  3. Пропускать метрики и валидацию. Бэкендеру кажется, что это скучная часть перед «настоящими» нейросетями. А на моих моках именно здесь ошибаются чаще всего.
  4. Прятать бэкенд-опыт. Некоторые стесняются своего прошлого и пытаются выглядеть «чистым датасаентистом». Это ошибка: продакшн-опыт – твоё конкурентное преимущество.
  5. Тянуть с собеседованиями. Никакая подготовка не заменит реальных собесов. Первые обычно проходят тяжело, и чем раньше ты через это пройдёшь, тем лучше.

Что сделать на этой неделе

Если всерьёз думаешь о переходе, вот с чего можно начать уже сейчас:

  1. Выпиши, какие задачи в твоей текущей работе связаны с данными, метриками или экспериментами. Это заготовка будущей легенды.
  2. Проверь, как у тебя с Python, numpy и pandas. Если пишешь на Java, начни с них: с этими инструментами ты будешь работать каждый день.
  3. Вспомни базовую статистику: что такое p-value, доверительный интервал, как устроен A/B-тест.
  4. Определи свои реальные пробелы по ML-темам. Ощущения тут часто обманывают.

Если хочешь понять, сколько времени займёт переход именно у тебя, начни с бесплатной диагностики. Выбери старт «Пишу код, но не в ML»: тест подберёт вопросы под разработчика, а в конце покажет радар по восьми осям и три главных пробела.

Автор – Шамиль Нуркаев, ML Engineer в Поиске Авито. Веду менторство по ML до оффера.

Коротко о главном

  • Можно ли перейти из бэкенда в ML без профильного образования?

    Да. На ML-собеседованиях не спрашивают диплом, проверяют, объяснишь ли ты, как работает бустинг, и как ты рассуждаешь над задачей. Математику придётся подтянуть: линейную алгебру, теорию вероятностей, статистику и оптимизацию на уровне «объясню на пальцах».

  • Сколько времени занимает переход из разработки в ML?

    Ориентир: 4–6 месяцев обучения и 1–2 месяца поиска работы, медиана поиска у учеников 48 дней. У разработчика часть тем закрывается быстрее, в лучшем случае весь путь укладывается в 2–2,5 месяца. У четырёх разработчиков из историй на сайте путь занял от 198 до 343 дней.

  • Нужно ли увольняться, чтобы перейти в ML?

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

  • Какое направление ML выбрать бэкендеру?

    Сначала одинаковое ядро для всех: Python и алгоритмы, математика, классический ML, Deep Learning и NLP. Дальше развилка: LLM и агенты или рекомендательные системы. Бэкендеру обычно ближе то, где важны продакшн, латенси и инфраструктура, но выбор зависит от того, где у тебя есть опыт и интерес.

  • Пригодится ли опыт бэкенда в ML?

    Да, и сильно. Код, структуры данных, понимание сложности, работа с базами и продом уже на месте. Именно поэтому старт из разработки один из самых коротких путей в ML: учить нужно ML-ядро, а не программирование с нуля.

Остался вопрос без ответа?

Задать вопрос Шамилю

Ещё в блоге

  • Зарплата ML-инженера в 2026 году: сколько платят и от чего зависит14 мин чтения
  • Вопросы на собеседовании по machine learning: что спрашивают и как отвечать15 мин чтения

Готов двигаться дальше?

Вступай в систему, которая доводит до оффера в ML, и выходи на новый уровень

  • 100+учеников в программе
  • 48дней – медиана поиска оффера
  • 330кмедиана оффера на руки
  • 400к+рекордный оффер на руки

На октябрь осталось 5 мест из 6

Бесплатная диагностика

Пока сомневаешься

Не знаешь, подойдёт ли тебе менторство?

12 минут теста: определим уровень, найдём белые пятна и наметим маршрут до оффера

Пройти диагностику
// shamil.ai

Меню

  • Программа
  • Обо мне
  • Истории учеников
  • Тарифы
  • Польза
  • Диагностика
  • Вопросы
  • Блог

Контакты

  • Личный аккаунт: @ai_ml_mentor
  • Канал про собесы: @sobesochnaya
© 2026 shamil.ai – менторство по MLПолитика конфиденциальностиДоговор офертыСогласие на обработку данныхОферта на роадмапШамиль Нуркаев · ML Engineer