Data Analyst
SQL: напишите запрос для подсчёта количества подписчиков у каждого блогера (таблица с блогерами и подписчиками).
Псевдокод sum_series(a={{1, 2}, {5, 1}}, b={{2, 4}, {3, 6}, {9, 7}}) -> {{1, 2}, {2, 6}, {3, 8}, {5, 7}, {9, 8}} def sum_series(a, b): result = [] i , j = 0, 0 val_a, val_b = 0, 0 while i < len(a) or j < len(b): a_next = a[i][0] if i < len(a) else float('inf') b_next = b[j][0] if j < len(b) else float('inf') if a_next <= b_next: val_a = a[i][1] t = a[i][0] i += 1 else: val_b = b[j][1] t = b[j][0] j += 1 result.append((t, val_a + val_b)) return result
// При обновлении заказа, мы должны отправить данные по заказу в несколько сервисов (сторонних) // количество сервисов растёт (может быть тысячи+) // мы написали код, сначала все было хорошо, но со временем наш сервис начал потреблять много ресурсов func (s *orderService) SendOrder(ctx context.Context, hosts []string, order Order) { for i := 0; i < len(hosts); i++ { go func() { // Представим, что это долгий сетевой вызов response, err := s.httpClient.Send(ctx, hosts[i], order) if err != nil { s.logger.Error(ctx, "failed to send", err) return } s.logger.Info(ctx, "success", response) }() } }
Где в реальной жизни встречается нормальное распределение, а где нет? Приведи конкретные примеры с объяснением, почему данные нормально распределены или нет.
Задача 1. Подсчёт количества клиентов по статусу Требование: Написать запрос, который выводит количество клиентов в каждом статусе (active, inactive, blocked и т.д.). Результат должен содержать два столбца: status и cnt.
Напишите законченную функцию sum_series на Python и проверьте её на примере из задачи.
Что будет, если запустить тысячи соединений одновременно?
Как получается итоговое предсказание в бустинге из трёх итераций?
Что такое рассуждающая модель (reasoning model)? Что даёт рассуждение?
Поведенческий вопрос: руководитель рекомендовал модель, но она показывает плохие результаты. Что будешь делать?
Напиши код на Python, реализующий вычисление скалярного произведения двух RLE-сжатых векторов за один проход.
val_a, val_b = 0, 0 t = None while i < len(a) or j < len(b): a_next = a[i][0] if i < len(a) else float('inf') b_next = b[j][0] if j < len(b) else float('inf') if a_next < b_next: val_a = a[i][1] t = a[i][0] i += 1 elif b_next < a_next: val_b = b[j][1] t = b[j][0] j += 1 else: val_a = a[i][1] val_b = b[j][1] t = a[i][0] i += 1 j += 1 result.append((t, val_a + val_b)) return result
Расскажи о сложностях и ошибках в проекте.
Проблема: тысяча пользователей делает по одному заказу и уходит — как это видно в метриках и что делать?
Как бы ты настроил A/B тест для проверки нового алгоритма поиска? Как определить необходимый размер выборки и продолжительность теста?
Как сравнивать ответ модели с эталоном (ground truth) в бенчмарке? Какую метрику использовать?
Что такое генератор?
Что такое semi-join и anti-join? Зачем нужны и где применять?
Продуктовый кейс: вы продуктовый аналитик в каршеринге. Как оценить бизнес и что нужно для роста? Какие метрики смотреть?
Как можно ускорить решение, если алфавит состоит только из строчных латинских букв?