Machine Learning и Data Science — это одни из самых популярных и востребованных направлений в IT. Но вместе с этим — они и одни из самых сложных для входа. Здесь огромное количество тем, инструментов, библиотек, подходов и постоянно появляющихся технологий.
Из-за этого многие новички начинают обучение с энтузиазмом, но через пару месяцев теряют интерес. Причины могут быть разные: слишком много теории, мало практики, нет чёткого плана или понимания, зачем вообще всё это нужно.
Эта статья — не очередной «гайд по ML для новичков». Это мой личный взгляд на то, как бы я подошёл к обучению, если бы начинал с нуля уже сегодня , учитывая свой опыт работы в крупных компаниях, проваленные проекты, ошибки и победы.
Кратко об авторе
Я уже успел отработать в Яндексе, ВК, Сбере, отучиться в МФТИ и на протяжении всей карьеры занимаюсь компьютерным зрением и ML. В начале пути наделал уйму ошибок:
Долго не мог определиться с направлением
Вообще не понимал, что от меня буду ждать на собесах
Боялся конкуренции: казалось, что вакансий мало, а требования слишком высоки для новичков
Разочарование, когда казалось, что я ничему не научился за последние несколько месяцев
Именно поэтому я решил написать эту статью — чтобы поделиться своим опытом и показать, как можно начать с нуля и дойти до реальной работы , минуя типичные ловушки.
Определись с мотивацией
Первое, что нужно сделать, прежде чем погружаться в Machine Learning или Data Science — понять свою цель. Это одна из самых бурно развивающихся областей в IT. Объём знаний необходимых для прохождения собеседований огромен, и он растёт год за годом.
И если ты выбрал эту сферу наобум, без чёткого понимания, зачем ты это делаешь — велик шанс, что ты бросишь обучение на полпути.
Легко не будет — но это того стоит
Готовься много и упорно зубрить. Готовься к тому, что обучение потребует времени, усилий и терпения. Никаких «за месяц станьте ML-инженером» — это миф. Но если подойти правильно, можно пройти путь от новичка до Junior или Middle специалиста за реальное время, с реальным результатом.
Сядь и реши, точно ли ты хочешь в эту сферу? Может лучше пойти в более привычное направление разработки на Go/Python?
Найди свою собственную долгосрочную мотивацию, зачем ты будешь изучать машинное обучение в течение полугода-год, до нахождения первой работы
Моя история: как я нашёл свою мотивацию
Когда я только начинал, я наткнулся на примеры компьютерного зрения: алгоритмы, которые умеют находить объекты на картинках, следить за ними, определять действия, даже описывать изображения текстом.


Для меня это был настоящий вау-эффект .
Мне чисто для себя стало интересно разобраться в том, как это устроено, как самому обучить нейросети делать такие крутые вещи.
Меня и до сих пор удивляет и дико забавляет, то что можно делать с помощью нейросеток, я ни дня не скучаю от своей работы, поэтому в начале пути, мне было просто весело этим заниматься.
Навык 1
И самое первое, что вам необходимо освоить это конечно же Python.
Без базового понимания синтаксиса и структуры кода ты не сможешь ни обучить модель, ни обработать данные, ни даже запустить чужой проект с GitHub.
Многие новички пытаются сразу прыгнуть в теорию ML или нейросети, но спотыкаются уже на уровне элементарного скрипта, который загружает датасет.
Именно поэтому начинать нужно с Python — не с глубокого погружения в ООП или метаклассы, а с практического минимума, который позволит тебе двигаться дальше.
Синтаксис — это основа. Ты должен свободно ориентироваться в конструкциях for
, if
, while
, уметь писать функции. Эти вещи встречаются буквально в каждом скрипте, будь то предобработка данных или логика обучения модели.
Структуры данных — это инструменты, которые определяют, насколько эффективно ты можешь работать с информацией. Списки, словари, кортежи — они используются повсеместно. Например, словари удобны для хранения параметров модели, списки — для батчей данных, а кортежи — как неизменяемые структуры часто применяются внутри фреймворков вроде PyTorch или scikit-learn.
Работа с файлами — ты постоянно будешь сталкиваться с необходимостью считать .csv
, прочитать .json
с гиперпараметрами или сохранить результаты в .txt
😇 Вот мой список лучших материалов для старта:
😎 Проверь себя - Вопросы с собеседований:
Что произойдёт, если изменить список внутри кортежа, который был ключом в словаре?
Какая сложность по времени у вставки/поиска в списке vs в связном списке?
Как работает декоратор @property и зачем он нужен?
В чём разница между
__new__
и__init__
?
Освоение этого навыка займёт у вас скорее всего от 2 до 4х недель
❌ Игнорируй бесполезные советы
Одна из самых частых ошибок новичков — это следование советам, которые звучат логично, но на практике ведут к выгоранию и потере мотивации.
В интернете полно статей вроде: «Как стать ML-инженером за 6 месяцев», где первым пунктом стоит «выучи матанализ, алгоритмы и LeetCode».
Не делай этого.
Алгоритмы? Не сейчас
Да, понимание базовых алгоритмов полезно. Но не на старте.
Когда ты только начинаешь путь, тратить недели на сортировки, графы и динамическое программирование — это как учить грамматику языка, прежде чем научиться говорить хотя бы пару фраз.
Тебе не нужно знать, как работает алгоритм Кнута-Морриса-Пратта, чтобы обучить модель классификации текстов или запустить YOLO для детекции объектов.
Математика потом
Многие считают, что без глубокого понимания матана, линейной алгебры и теории вероятностей нельзя заниматься ML. Это миф.
На самом деле, большая часть современных библиотек и фреймворков уже реализует сложные формулы за тебя.
Понимать, что такое матричное умножение или функция активации — полезно.
А вот выводить формулу градиентного спуска на бумажке — не обязательно.
Это не означает, что математика вообще не нужна. Она важна, когда ты переходишь на более продвинутый уровень — например, начинаешь оптимизировать архитектуры нейросетей или разрабатывать свои собственные модели.
Но в начале пути она чаще становится преградой, чем помощником.
LeetCode — это не про ML
LeetCode — отличный инструмент для подготовки к интервью в крупные IT-компании.
Но он не учит тому, что реально требуется в работе ML-инженера .
Решение сложных задач на бинарные деревья, перестановки и оптимизацию памяти — это скорее тест на стрессоустойчивость, чем реальный навык для работы с данными.
Если ты хочешь просто начать делать проекты, разбираться в моделях и понимать, как устроена реальная работа — забудь про LeetCode на первые пару месяцев.
Что делать вместо всего этого?
Переходи к практике, как можно быстрее. Решай и реализуй реальные практические МЛ задачи, как только ты увидишь первые результаты, твой мозг получит положительно закрепление
Ты потрудился - получил результат
А значит стал ближе к своей цели - получению оффера
Навык 2
Когда ты освоишь Python, следующий шаг — понять, что такое Machine Learning и как он работает на практике .
Многие думают, что ML — это про сложные формулы и нейросети. На самом деле, большая часть работы в этой сфере — это работа с данными, выбор модели и оценка её качества.
И начинать нужно не с глубокого обучения, а с базовых задач и моделей.
Основные типы задач:
Классификация — определение категории. Например: спам или не спам, кошка или собака на картинке.
Регрессия — предсказание числа. Например: сколько будет стоить квартира, или сколько времени пользователь проведёт на сайте.
Кластеризация — поиск групп в данных. Например: выделение групп пользователей с похожим поведением, если заранее неизвестно, какие они.
С этими типами задач ты будешь сталкиваться постоянно, особенно на старте.
Как понять, хороша ли модель?
Не все модели одинаково полезны. Иногда кажется, что всё работает отлично, а на деле — модель просто угадывает.
Вот почему важно знать метрики — числа, которые показывают, насколько хорошо работает твоя модель.
Например:
accuracy
— процент правильных ответов. Но он обманчив, если классы несбалансированы (например, 95% случаев — "нет", и модель всегда отвечает "нет").precision
иrecall
— покажут, насколько точна модель при поиске нужного ответа.F1-score
— удобная свёртка этих двух метрик.Для регрессии часто используют
MAE
илиRMSE
— они говорят, насколько в среднем модель ошибается в своих числовых предсказаниях.
Эти метрики несложно понять, но очень важно уметь их использовать правильно.
😇 Вот мой список лучших материалов для старта:
😎 Проверь себя - Вопросы с собеседований:
Нужно ли нормировать данные прежде, чем подать в их в линейную регрессию?
Когда использовать MAE, а когда MSE?
Что такое boxplot и как найти выбросы в данных, метод 3-х сигм?
Возможно ли такое, что Precision=19%, Recall=92%, Accuracy=10%?
Что такое F2 мера, F3 мера, F100500 мера?
Освоение этого навыка займёт у вас скорее всего от 3х до 5 месяцев
Навык 3
Подходим к концу. Третий навык в моем списке это SQL - синтаксис для составления запросов к базам данных, это одна из самых простых технологий для освоения, от вас требуется знание всего лишь базовых аспектов
Отличие left join от cross join
Что такое транзакции
Составление сложных запросов с разными условиями
Освоить SQL на достаточном для собеса уровне можно за 1-2 недели
Навык 4
И последний, четвертый навык — это как можно скорее переходить к практике и заниматься реальными задачами. Именно через практическую работу вы быстрее всего приблизитесь к тому, чтобы стать настоящим, уверенным в себе специалистом.
Вам нужно научиться решать те самые задачи, с которыми вас будут просить работать на реальной работе. Речь о бизнес-задачах — именно за них и платят зарплату.
Идеи для пет-проектов легко найти на YouTube и GitHub. Там уже есть огромное количество материалов, примеров и готовых решений, которые другие люди создавали во время своего обучения и делились ими с сообществом. Это сильно облегчает начало пути и помогает не терять мотивацию.
Вот, в принципе, и всё. Я рассказал о ключевых навыках, распространённых проблемах и мифах, с которыми я сам сталкивался на пути изучения Machine Learning. Надеюсь, этот опыт поможет и вам освоить эту сферу и дойти до своей цели.
Про интерактивный сборник материалов по ML
Про CLIP модели и базу к Computer vision собесам
Вопросы с ML | Computer vision собесов
Читай у меня в телеграм канале