Растим в себе сильного джуна 💪🏻
Привет! На связи Мария Жарова, ментор курсов «ML-инженер» и «Дата-сайентист» 👋🏻
Технический скилл вырастить можно за полгода. А вот привычки, из-за которых с джуном хотят или не хотят работать дальше — формируются уже с первых проектов.
Расскажу, что реально ценят в команде — не «уметь бустинг руками написать», а гораздо более приземлённые вещи. Именно они отличают джуна, которого через полгода зовут на новые задачи, от того, за кем приходится всё переделывать.
✅ Смотреть на данные, а не на метрики
Первое, что делает опытный человек, получив датасет — открывает и листает его глазами. Буквально смотрит на распределения, на пропуски, на дубликаты, на подозрительно ровные значения и на выбросы. Джун же часто сразу летит обучать модель — и потом на код-ревью выясняется, что 15% таргета — это -1 вместо NaN, даты в разных форматах, а половина id мусорные.
✅ Логировать всё, что двигается
Самая частая боль на ревью: «а покажи, какие ты гиперпараметры использовал в том эксперименте на прошлой неделе?». Или файлы model_final.pkl, model_final_v2.pkl, model_final_real.pkl.
Что стоит взять в привычку:
🔶 MLflow, Weights & Biases или хотя бы аккуратный google-табличный лог с датой, параметрами, метриками и коммитом;
🔶 Сохранять не только модель, но и препроцессинг (иначе воспроизвести результат не получится);
🔶 Фиксировать random_state везде, где он есть — да, это скучно, но без этого «у меня получилось 0.84» ничего не значит.
✅ Писать код так, будто через месяц его будет читать незнакомый человек
А это, кстати, вы сами через месяц 🙂 Никто не помнит, зачем в ячейке 47 стоит df = df[df['x'] > 3.14] — не потому что джун неправильный, а потому что человеческая память так устроена.
Что помогает:
🔶 Вынести подготовку данных из ноутбука в .py-модули, как только пайплайн стабилизировался;
🔶 Писать короткие docstring'и к функциям и хотя бы небольшие пояснения к нетривиальным моментам;
🔶 Держать README, из которого быстро можно понять, что делает проект и как его запустить.
Это не «оверинжиниринг» и не «мы же не в проде». Это про уважение к чужому времени — включая своё будущее!
✅ Уметь воспроизвести свой же результат
Классика: джун показывает крутую метрику, модель выкатывают в АБ, и внезапно оказывается, что цифру не удаётся повторить даже на том же датасете... Потому что где-то в пайплайне была случайность без сида, где-то фичи считались на всей выборке, а где-то использовалась версия библиотеки, которую с тех пор обновили.
Минимум, который спасает:
➖ requirements.txt или pyproject.toml с зафиксированными версиями;
➖ Сиды в модели, в сплитах, в SMOTE — везде;
➖ Разделение train/val/test делается один раз и сохраняется, а не пересобирается на каждом запуске.
✅ Задавать вопросы, но правильные
И последнее, что часто недооценивают. Джун, который молча сидит и три дня борется с ошибкой, потому что «неудобно спросить» — это боль для тимлида. Но джун, который приходит с «у меня не работает, помогите» — тоже.
Золотая середина: пришёл с вопросом — покажи, что ты уже попробовал, что прочитал, какие гипотезы отбросил и почему. Это экономит время всем и очень быстро прокачивает.
Сохраняйте, чтобы не потерять!
Привет! На связи Мария Жарова, ментор курсов «ML-инженер» и «Дата-сайентист» 👋🏻
Технический скилл вырастить можно за полгода. А вот привычки, из-за которых с джуном хотят или не хотят работать дальше — формируются уже с первых проектов.
Расскажу, что реально ценят в команде — не «уметь бустинг руками написать», а гораздо более приземлённые вещи. Именно они отличают джуна, которого через полгода зовут на новые задачи, от того, за кем приходится всё переделывать.
✅ Смотреть на данные, а не на метрики
Первое, что делает опытный человек, получив датасет — открывает и листает его глазами. Буквально смотрит на распределения, на пропуски, на дубликаты, на подозрительно ровные значения и на выбросы. Джун же часто сразу летит обучать модель — и потом на код-ревью выясняется, что 15% таргета — это -1 вместо NaN, даты в разных форматах, а половина id мусорные.
Простое правило: прежде чем что-то предсказывать по данным, проведите с ними хотя бы час. EDA — это не формальность из курса, а инженерная гигиена.
✅ Логировать всё, что двигается
Самая частая боль на ревью: «а покажи, какие ты гиперпараметры использовал в том эксперименте на прошлой неделе?». Или файлы model_final.pkl, model_final_v2.pkl, model_final_real.pkl.
Что стоит взять в привычку:
🔶 MLflow, Weights & Biases или хотя бы аккуратный google-табличный лог с датой, параметрами, метриками и коммитом;
🔶 Сохранять не только модель, но и препроцессинг (иначе воспроизвести результат не получится);
🔶 Фиксировать random_state везде, где он есть — да, это скучно, но без этого «у меня получилось 0.84» ничего не значит.
✅ Писать код так, будто через месяц его будет читать незнакомый человек
А это, кстати, вы сами через месяц 🙂 Никто не помнит, зачем в ячейке 47 стоит df = df[df['x'] > 3.14] — не потому что джун неправильный, а потому что человеческая память так устроена.
Что помогает:
🔶 Вынести подготовку данных из ноутбука в .py-модули, как только пайплайн стабилизировался;
🔶 Писать короткие docstring'и к функциям и хотя бы небольшие пояснения к нетривиальным моментам;
🔶 Держать README, из которого быстро можно понять, что делает проект и как его запустить.
Это не «оверинжиниринг» и не «мы же не в проде». Это про уважение к чужому времени — включая своё будущее!
✅ Уметь воспроизвести свой же результат
Классика: джун показывает крутую метрику, модель выкатывают в АБ, и внезапно оказывается, что цифру не удаётся повторить даже на том же датасете... Потому что где-то в пайплайне была случайность без сида, где-то фичи считались на всей выборке, а где-то использовалась версия библиотеки, которую с тех пор обновили.
Минимум, который спасает:
➖ requirements.txt или pyproject.toml с зафиксированными версиями;
➖ Сиды в модели, в сплитах, в SMOTE — везде;
➖ Разделение train/val/test делается один раз и сохраняется, а не пересобирается на каждом запуске.
✅ Задавать вопросы, но правильные
И последнее, что часто недооценивают. Джун, который молча сидит и три дня борется с ошибкой, потому что «неудобно спросить» — это боль для тимлида. Но джун, который приходит с «у меня не работает, помогите» — тоже.
Золотая середина: пришёл с вопросом — покажи, что ты уже попробовал, что прочитал, какие гипотезы отбросил и почему. Это экономит время всем и очень быстро прокачивает.
Классные хард-скиллы — это входной билет. А в команде остаются те, с кем спокойно и понятно работать ❤️
Сохраняйте, чтобы не потерять!