TGViewer
Поступашки - ШАД, Стажировки и Магистратура Поступашки - ШАД, Стажировки и Магистратура @postypashki_old · 46.1K subscribers
Post #1947 9.14K
Полный цикл отбора в X5 Tech на Data Science (стажер / junior)

Недавно наш студент, проходил собеседование в ad-hoc команду x5. Ниже разберем два самых содержательных этапа: первый технический и финал, который фактически оказался вторым тех-собесом. Сразу скажу, что по ощущениям отбор здесь не столько про знание огромного количества моделей, сколько про хороший фундамент и умение нормально рассуждать над аналитической задачей.

Кстати разбор заданий стажировки в Х5 на аналитика (Business Camp) уже выложен на нашем курсе "Аналитика ПРО". Дедлайн подачи до 6 октября. Успей записаться до дедлайна!
➡ Записаться

Первый технический

Python
Первый тех был довольно общий. Сначала немного погоняли по базовым алгоритмам и Python. Дали совсем простые задачи:
На вход приходит целое число. Нужно вывести число, состоящее из тех же цифр, но в обратном порядке.

И
Дан список натуральных чисел без повторений. Найдите второй по величине элемент.

Задачи сами по себе несложные, после решения спросили про сложность (но видно было что интервьювер оч плохо знает алогосы), сколько памяти используется и как решение изменить в каких-нибудь граничных случаях.

Sql
Дальше начался SQL, и вот его уже было заметно больше.
Например:
Есть таблица с пользователями, датой покупки и номером чека. Нужно вывести последние NN покупок каждого пользователя.

Здесь ожидаемо хочется увидеть оконные функции, row_number, rank и понимание partition by
Еще была задача примерно такого типа:
Есть таблица товаров с категорией и ценой. Нужно вывести самые дорогие товары в каждой категории.

Тоже достаточно классический SQL на оконные функции. То есть каких-то суперэкзотических запросов не было, скорее проверяли, насколько уверенно человек работает с обычными аналитическими задачами.

Теорвер и эконометрика
После SQL перешли к математике и статистике. Например, был вопрос: X∼N(0,1). Чему равно E(X^2)? Или могли спросить про сходимость случайных величин и попросить объяснить строгое определение состоятельности оценки. Отдельно попросили сформулировать цпт и объяснить, зачем она вообще нужна на практике. Дальше пошла регрессия. Здесь уже спрашивали не только «что такое линейная регрессия», но и достаточно много про то, что может пойти не так. Например: Что такое гетероскедастичность? Что такое мультиколлинеарность? Что такое эндогенность? Почему обычный OLS может давать смещенную оценку? Еще отдельно был хороший блок по регуляризации. Нужно было рассказать про L1, L2 и Elastic Net, а дальше могли спросить уже не формально, а скорее на понимание: Почему Lasso зануляет коэффициенты? Чем L1 отличается от L2? Какой геометрический смысл у регуляризации? Здесь важно было понимать, что L1 из-за формы области ограничений чаще приводит решение на координатные оси, поэтому часть коэффициентов становится ровно нулевой, а L2 в основном «стягивает» коэффициенты к нулю. В целом первый тех был именно таким: понемногу алгоритмов, SQL, вероятность, статистика и достаточно большая часть по регрессии. То есть на этом этапе скорее проверяют фундамент аналитика.

Второй тех / финал

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

На первый взгляд можно просто сравнить продажи до и после. Но почти сразу возникает проблема: магазины выбирал не случайно сам руководитель. Значит, тест и контроль могут изначально сильно отличаться. Например, новые холодильники могли поставить именно в более крупных магазинах, магазинах с растущими продажами или в определенных регионах. То есть здесь сразу хочется говорить про эндогенность / selection bias и искать нормальный контрфактуал. Первое, что я бы рассматривал, - DiD. Смотрим, как изменились продажи в магазинах с новыми холодильниками и как за то же время изменились продажи в похожих магазинах, где холодильники не меняли.
Но дальше сразу возникает вопрос про тренды. Нужно проверить, действительно ли до установки холодильников динамика treatment и control была примерно одинаковой. Поэтому я бы посмотрел на pre-trends и, скорее всего, пошел дальше в сторону event study. Если магазины сильно отличаются по наблюдаемым характеристикам, можно дополнительно рассматривать матчинг, psm, IPW или AIPW. Если есть хороший инструмент, который влияет на вероятность установки холодильника, но не влияет на продажи напрямую, можно думать про IV. Ну и в конце важно не остановиться на «продажи выросли». Нужно еще посчитать, насколько выросла прибыль, учесть стоимость холодильников, установки и обслуживания и уже после этого делать вывод об экономической эффективности проекта.

ML и эконометрика
После кейса пошли вопросы по классическому ML.
Например: Что такое bias и variance? Почему возникает overfitting?Как правильно делить данные на train / validation / test? Зачем нужен cross-validation? Что такое data leakage? Что делать с несбалансированными классами? В чем разница между precision и recall? Когда лучше смотреть PR-AUC, а не ROC-AUC? Чем bagging отличается от boosting? Как работает Random Forest? Что будет, если сильно увеличить глубину дерева?
После ML снова перешли к эконометрике и статистике: Какие предпосылки у OLS? Что такое эндогенность и откуда она возникает? Что такое omitted variable bias? Что делать при гетероскедастичности? Что такое instrumental variables? Как работает Difference-in-Differences? Какое основное предположение у DiD? Что такое fixed effects? Когда нужны кластеризованные стандартные ошибки?
Также могли дать ситуацию и попросить на словах объяснить, будет ли оценка причинного эффекта корректной или где именно появляется bias.

Итог
Чувствовалось, что на собесе, интервьювер каждый раз хотел проверить насколько человек умеет не просто сказать «здесь используем DiD», а объяснить, почему именно его, какое предположение мы делаем и что будем делать, если это предположение не выполняется.
В целом финал оказался намного сложнее, чем ожидалось от джуновской позиции, но здесь и позиция оказалась необычной, а именно эконометриста в x5. Готовиться к такому отбору только по классическому ML точно недостаточно. Я бы в первую очередь хорошо закрыл SQL, вероятность и статистику, линейную регрессию, а затем уже причинно-следственный анализ и основные ML-модели. Если хотите закрыть все эти темы системно, то советую наш курс "Аналитика ПРО".
➡ Записаться

Подписаться: @postypashki_old
  • 🤯 43
  • ❤ 23
  • 🔥 6
  • 😁 2
  • 🤓 2
  • ❤‍🔥 1
  • 👍 1
  • 🤔 1
More from @postypashki_old
  1. Oct 6, 2026Просто скажи, у нас с тобой есть шанс...? Если речь про ШАД — вполне возможно 😎 Потому чт…
  2. Oct 6, 2026Вчера — в рабочем чате. Сегодня — на билборде 👀 Такое стремительное развитие карьеры возм…
  3. Oct 4, 2026Полный цикл отбора на стажировки в X5 (DA, DS, DE) У X5 есть отдельная программа для студе…
  4. Oct 4, 2026Как проходит отбор на стажировку X5 Business Camp Сейчас открыт набор в X5 Business Camp.…
  5. Oct 4, 2026Боишься алгоритмического собеседования? И не зря: для аналитиков, разработчиков и ML-инжен…
  6. Oct 3, 2026Как залететь в Яндекс и стать МЛ инженером с зарплатой 300к/наносек, залутать сочную зумер…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →