Разборы тем: коротко, по делу, с вопросами для проверки
Конспекты по темам, которые чаще всего спрашивают на технических собеседованиях. В каждом: что это такое, как отвечать вслух, на чём валятся, и пять вопросов из банка, чтобы сразу проверить себя.
482 разборов·вопросы к каждому·бесплатно
Требования
- Виды требованийПервый блок почти любого собеса аналитика. Проверяют не заучённую классификацию, а умение разложить кашу из пожеланий заказчика по уровням: где цель...
- Качество требованийТебе дадут формулировку и спросят, что с ней не так. Это самый частый практический вопрос на собесе аналитика, потому что он проверяет не память, а рабочий...
- Use case и сценарииСпрашивают, когда хотят понять, умеешь ли ты описывать поведение системы связно, а не набором разрозненных пунктов. Часто просят прямо на встрече набросать...
- User story и критерии приёмкиПродуктовые команды спрашивают об этом почти всегда: как режешь объём, как формулируешь критерии, что делаешь с большой историей. Проверяют практику, а не...
- Трассировка и измененияВопросы про управление требованиями отделяют джуна от мида: джун собирает требования, мид умеет ими управлять, когда их триста и они меняются каждую неделю.
UML и нотации
- UML: поведениеПроверяют не знание значков, а понимание, какой диаграммой что выражают. Типичная просьба на собесе — «нарисуй, как идёт согласование заявки» и следом «а...
- UML: структураДиаграмма классов у аналитика работает как модель предметной области — язык, на котором договариваются с бизнесом о понятиях. Спрашивают про связи и...
- UML: sequence-диаграммыГлавный инструмент системного аналитика на интеграционных проектах. Просят нарисовать обмен между системами и почти всегда добивают вопросом про ошибки и...
- BPMN: основы нотацииBPMN спрашивают у обеих ролей аналитика, но по-разному: бизнесовому — про процессы и участников, системному — про исполняемость схемы движком.
- ERD и схемы данныхERD спрашивают и у системного аналитика, и у бизнесового — первого глубже. Обычно дают предметную область словами и просят набросать сущности и связи прямо...
BPMN и процессы
- BPMN: элементы и шлюзыДля бизнес-аналитика это основной рабочий инструмент. Спрашивают с прицелом на исполняемость: движок выполнит ровно то, что нарисовано, включая ошибки автора.
- BPMN: события и подпроцессыСобытия — то, чем схема процесса отличается от блок-схемы: они выражают сроки, внешние сигналы и нештатные исходы. Спрашивают почти всегда через задачу про...
- AS-IS и TO-BEЯдро работы бизнес-аналитика. Спрашивают, как ты собираешь текущее состояние и чем доказываешь, что целевое лучше.
- Узкие места процессаЗадача «ускорить процесс вдвое» приходит к аналитику регулярно. Проверяют, начнёшь ли ты с замера или сразу побежишь автоматизировать.
- Регламенты и владельцыОрганизационная часть работы с процессами. Спрашивают там, где процессы идут через несколько подразделений и буксуют на стыках.
ТЗ и документация
- ТЗ и SRSСпрашивают, чтобы понять, писал ли ты документы или только карточки в трекере. Часто дают кусок реального ТЗ и просят найти проблемы.
- Нефункциональные требованияЛюбимая тема собеседующих: по НФТ сразу видно, работал ли человек с продом. Джун перечисляет группы, мид формулирует проверяемо и знает цену.
- Спецификация APIДля системного аналитика это ежедневный артефакт. Спрашивают не про синтаксис OpenAPI, а про то, что должно быть в контракте и как его менять, не ломая...
- ГОСТ 34 и 19В госзаказе, банках и на крупных предприятиях это рабочая реальность, а не архаика. Спрашивают, чтобы понять, сможешь ли ты писать документы в принятом формате.
- Версионирование и согласованиеВопросы про жизнь документа во времени отделяют тех, кто вёл проект дольше квартала. Здесь спрашивают про процедуры, а не про содержание.
Интеграции
- REST и HTTPСердце собеса системного аналитика. Гоняют по методам и кодам, но настоящий вопрос всегда один: понимаешь ли ты, что код ответа — это машинный контракт, а...
- SOAP и gRPCСпрашивают, чтобы понять, работал ли ты за пределами REST. В банках и госсекторе SOAP жив, во внутренних контурах растёт gRPC.
- Форматы обменаМелочи, на которых горят реальные интеграции: часовые пояса, деньги, кодировки, null. Спрашивают именно потому, что тут видно, чинил ли человек прод.
- Очереди и асинхронТема мид-уровня: спрашивают, когда хотят понять, проектировал ли ты что-то сложнее синхронного вызова. Ключевой вопрос почти всегда про то, что видит...
- Идемпотентность и гарантииСамый взрослый блок темы. Здесь отделяют тех, кто разбирал реальные инциденты с двойными списаниями, от тех, кто читал про надёжность.
Модель данных
- ER-моделированиеПрактическая часть собеса: дают предметную область словами и просят набросать модель прямо на встрече. Смотрят не на красоту, а на вопросы, которые ты...
- НормализацияКлассический теоретический вопрос с практическим продолжением: «а когда денормализуете?». Второе интереснее первого и проверяет понимание размена.
- Ключи и связиТема, где легко показать зрелость: вопрос про естественный ключ почти всегда превращается в разговор о том, что бывает с моделью через пять лет.
- Типы данных и справочникиМелочи, которые дорого стоят: обязательное отчество, статус свободным текстом, время в локальной зоне. Спрашивают, потому что здесь видно, разгребал ли...
- Миграции и совместимостьВзрослый блок: спрашивают там, где система живёт под нагрузкой и обновляется без простоя. Проверяют, понимаешь ли ты, что структура и накопленные данные —...
Архитектура
- Монолит и микросервисыОт аналитика не ждут архитектурных решений, но ждут понимания, во что обойдётся требование. Границы сервисов определяют, сколько команд придётся согласовать.
- Дизайн APIСистемному аналитику часто отдают проектирование контракта. Проверяют не знание правил именования, а понимание, что контракт — это обязательство на годы.
- Транзакции и согласованностьТема, где аналитик обязан задавать вопросы бизнесу, а не ждать ответа от разработки: где данные обязаны быть точными сию секунду, а где допустимо отставание.
- Кэш и производительностьКэш кажется технической деталью, но решение о нём принимает бизнес: он отвечает на вопрос, какое отставание данных допустимо.
- ОтказоустойчивостьЗдесь от аналитика ждут конкретики: не «система должна быть надёжной», а перечень сценариев отказа с описанным поведением.
Agile и Scrum
- Waterfall, V-model, AgileРазминочный блок почти любого собеса. Проверяют не пересказ схем, а понимание, зачем вообще выбирают модель и что при этом покупают.
- ScrumПродуктовые команды спрашивают подробно: роли, события, артефакты и — главное — что делать, когда правила нарушаются. Второе интереснее первого.
- Kanban и потокСпрашивают там, где есть поддержка, сопровождение или непредсказуемый входящий поток. Проверяют понимание метрик потока, а не умение нарисовать доску.
- Аналитик в спринтеПрактический блок: как именно устроен твой рабочий цикл внутри команды. Здесь легко отличить того, кто работал в потоке, от того, кто читал про Scrum.
- Оценка и декомпозицияСпрашивают у всех, потому что оценка — самое конфликтное место в любой команде. Проверяют, понимаешь ли ты, почему оценки врут и что с этим делать.
Экономика решения
- Юнит-экономикаБизнес-аналитика спрашивают, умеет ли он считать деньги, а не только рисовать процессы. Обычно дают вводные и просят прикинуть, сходится ли модель.
- ROI, TCO, NPVЗащита проекта перед теми, кто распоряжается бюджетом. Проверяют, умеешь ли ты переводить пользу в деньги и не врать при этом.
- KPI и их искаженияЛюбимый вопрос про поведение людей: что произойдёт, если ввести такой показатель. Проверяют понимание, что метрика меняет поведение.
- Оценка эффекта фичиПродуктовый блок: как доказать, что изменение помогло. Проверяют, отличаешь ли ты корреляцию от эффекта и знаешь ли про шум.
- Окупаемость автоматизацииПрактический вопрос на любом внутреннем проекте: стоит ли автоматизировать этот процесс. Проверяют, считаешь ли ты честно и понимаешь ли пределы автоматизации.
Стейкхолдеры
- Карта стейкхолдеровМягкая на вид тема, на которой валятся сильные технически кандидаты. Спрашивают, потому что проекты чаще умирают от политики, чем от техники.
- Интервью и сборПрактический навык, который проверяют ролевой игрой: интервьюер играет заказчика и говорит «нужна кнопка выгрузки». Смотрят, что ты спросишь дальше.
- ПриоритизацияСпрашивают методы, но проверяют другое: что ты делаешь, когда все требования объявлены критичными. Это реальная ситуация в любой компании.
- Конфликты требованийПроверяют, умеешь ли ты работать с людьми, а не только с текстом. Обычный кейс: безопасность требует одного, бизнес прямо противоположного.
- Презентация решенияФинальный навык: умение продать решение тем, кто его утверждает. На собесе часто просят рассказать про проект — и это уже проверка подачи.
Kubernetes
- Архитектура кластера KubernetesАрхитектуру спрашивают, чтобы понять, читал ты документацию или эксплуатировал кластер. Разница видна на одном вопросе: что случится с продом, если ляжет...
- Поды и контроллеры KubernetesЗдесь проверяют, умеешь ли ты подобрать контроллер под задачу. Вопрос-детектор простой: куда положишь базу с диском и почему не в Deployment.
- Service и Ingress в KubernetesСеть кластера спрашивают на любом уровне: джуна — про Service и Ingress, мида — про то, как трафик доходит до пода, сеньора — про политики и изоляцию.
- ConfigMap, Secret и тома в KubernetesЭтот блок проверяет гигиену: где живут настройки, насколько защищён Secret и что происходит с данными при пересоздании пода.
- Планирование подов: requests, taints, PendingПланирование спрашивают через диагностику: под висит в Pending, что делаешь. Ответ показывает, понимаешь ли ты, по каким числам вообще принимается решение.
- Пробы liveness и readinessПробы — любимая тема интервьюеров, потому что ответ сразу показывает, эксплуатировал ты сервисы или только читал про них. Разница между liveness и...
- Ресурсы и QoS в KubernetesТут проверяют, понимаешь ли ты разницу между «кончилась память» и «кончился процессор». Симптомы разные, лечение разное, а путают их постоянно.
- Автоскейлинг: HPA и Cluster AutoscalerАвтоскейлинг спрашивают, чтобы проверить, знаешь ли ты, откуда берутся числа и почему масштабирование не мгновенное. Практический вопрос звучит так: HPA...
- RBAC и мультиарендность в KubernetesБлок про доступы отделяет тех, кто раздаёт cluster-admin всем подряд, от тех, кто понимает границы. Любимый вопрос: изолирует ли namespace команды друг от...
- Разбор аварий: CrashLoopBackOff и PendingЭто самый практичный блок собеса: интервьюер называет статус, ты рассказываешь порядок действий. Здесь не помогает теория — помогает опыт чтения событий.
Docker
- Образы и слои DockerС контейнеров начинается почти любой собес по эксплуатации, и первый вопрос почти всегда один: чем контейнер отличается от виртуальной машины. За ним...
- Dockerfile: кэш, ENTRYPOINT, multi-stageСборку спрашивают там, где она болит: почему пересборка занимает пять минут, почему контейнер не останавливается по команде и почему образ весит гигабайт.
- Рантайм Docker: изоляция, лимиты, код 137Рантайм спрашивают через симптомы: контейнер сразу завершился, контейнер убит с кодом 137, разработчик просит privileged. Каждый случай проверяет разное...
- Тома и данные в DockerХранилище проверяют через потери: данные исчезли после пересоздания, файлы образа пропали после монтирования, на ноде кончилось место. Все три случая...
- Сети Docker и composeСеть спрашивают на простых сценариях: приложение не видит базу, порт не открывается снаружи, сервис падает на старте раньше зависимости. Все три —...
Linux и bash
- Процессы и сигналы в LinuxПроцессы спрашивают не ради определений, а ради диагностики: перед тобой висящий процесс, и надо понять, что с ним делать. Классика — «kill -9 не...
- Файловая система Linux: inode и ссылкиТема выглядит академической ровно до первого инцидента «на диске нет места, а du ничего не показывает». Тут проверяют, понимаешь ли ты, что имя файла и...
- systemd: юниты, перезапуск, журналsystemd спрашивают прикладно: как завести сервис, что будет при падении, куда смотреть логи. Ошибки тут стоят дорого — сервис или не перезапускается, или...
- Память, CPU и диски в LinuxРесурсы спрашивают через показания инструментов: тебе называют цифры и просят интерпретировать. Свободной памяти ноль, load average двенадцать, процессор...
- Диагностика в Linux: ss, strace, lsofЭтот блок ближе всего к реальной работе: тебе описывают симптом и ждут порядок действий с конкретными командами. Ответ «посмотрю логи» тут не проходит.
- Bash: кавычки, переменные, разделение словBash проверяют не на знании синтаксиса, а на умении не выстрелить себе в ногу. Первая мина — разделение слов: скрипт работает на тестовых данных и...
- Bash: коды возврата и set -euo pipefailСамый дорогой класс багов в скриптах — тихий успех: команда упала, скрипт пошёл дальше и отчитался нулём. Именно это здесь и проверяют.
- grep, sed, awk и jq на практикеТекстовые утилиты спрашивают на разборе логов и ответов API. Задача обычно звучит просто: посчитай топ ошибок, вытащи поле из JSON. Ошибки при этом...
- cron и systemd-таймерыРасписания спрашивают через две классические боли: «руками работает, из cron падает» и «задачи наложились друг на друга». Обе решаются знанием, чем cron...
- Скрипты в проде: идемпотентность и секретыЗдесь проверяют инженерную зрелость: не «умеешь ли писать bash», а «переживёт ли твой скрипт повторный запуск и не утечёт ли через него токен».
CI/CD
- Git на практике: rebase, merge, транкGit спрашивают не про команды, а про последствия: что произойдёт с историей и с коллегами. Отдельный сюжет — утёкший в репозиторий секрет, тут проверяют...
- Пайплайны CI: раннеры, кэш, артефактыПайплайн разбирают через симптомы: сборка плавает от запуска к запуску, у соседа зелено, у тебя красно. Здесь видно, понимает ли человек, что именно...
- Реестры образов и хранение артефактовТут проверяют зрелость процесса: где живут образы, как их версионируют и что происходит, когда реестр разрастается до терабайтов.
- Стратегии деплоя: rolling, blue-green, канарейкаСтратегии спрашивают вместе с последствиями: где взять ёмкость, что делать с миграцией схемы и почему откат не всегда возвращает систему в прежнее...
- GitOps: ArgoCD, Helm, KustomizeGitOps спрашивают, чтобы понять, работал ли ты с декларативной доставкой или катишь kubectl apply из пайплайна. Проверочный вопрос простой: что...
Terraform и Ansible
- Terraform: план, провайдеры, версииИнфраструктуру кодом спрашивают через последствия применения: что покажет план, откуда взялась разница и почему init внезапно перестал работать.
- Состояние Terraform и дрейфСостояние — сердце Terraform и самое частое место аварий: потеряли, перетёрли параллельным применением, положили в git вместе с паролями.
- Модули Terraform: count против for_eachСтруктуру спрашивают через боль роста: окружения расходятся, план идёт десять минут, а удаление одного элемента списка пересоздаёт половину ресурсов.
- Ansible: идемпотентность и ролиAnsible спрашивают вокруг одного свойства: идемпотентности. И вокруг границы с Terraform, потому что вместе их держат почти везде.
- IaC на практике: ревью, политики, секретыЗаключительный блок про процесс: как принимать инфраструктурные изменения так, чтобы это не превращалось в лотерею.
Мониторинг и логи
- Метрики и Prometheus: типы и кардинальностьМониторинг спрашивают через ошибки, которые дорого стоят: хранилище упало по памяти после безобидного на вид лейбла, а дашборд показывает не то, что...
- PromQL: rate, агрегация, квантилиЯзык запросов проверяют на трёх типичных ошибках, каждая из которых даёт правдоподобный, но неверный график.
- Алерты и дежурство без шумаАлертинг проверяют по последствиям: дежурного будят зря или не будят вовремя. Оба случая одинаково плохи, и оба лечатся правилами, а не силой воли.
- Логи: структура, объём, идентификатор запросаЛоги спрашивают в трёх местах: чем структурный формат лучше строки, что делать с внезапно выросшим объёмом и почему не выходит собрать путь запроса по...
- Трассировка и золотые сигналыТрассы спрашивают, когда хотят понять, работал ли ты с микросервисами: метрики говорят «медленно», логи говорят «вот ошибка», а куда ушло время внутри...
SRE и надёжность
- SLI, SLO и бюджет ошибокЭтот блок отделяет инженера, который чинит инфраструктуру, от инженера, который отвечает за надёжность продукта. Проверяют не термины, а умение связать...
- Таймауты, ретраи и предохранительТут проверяют, понимаешь ли ты, как чужой отказ становится твоим. Любимый сценарий: зависимость затормозила, и сервис лёг целиком, хотя половина запросов...
- Инциденты и постмортемыЗдесь смотрят на поведение под давлением: что делаешь первым, когда прод лежит и причина неизвестна. И что делаешь после, чтобы это не повторилось.
- Ёмкость и планирование нагрузкиЁмкость спрашивают через несоответствие: ресурсы вроде есть, а задержки выросли втрое. Или: почему автоскейл не спас на рассылке.
- RPO, RTO и проверка бэкаповТема, где красивые схемы разбиваются об один вопрос: когда вы последний раз восстанавливались из копии и сколько это заняло.
Сети
- TCP на практике: TIME_WAIT и таймаутыСети в собесе эксплуатации это диагностика, а не уровни OSI. Тебе называют симптом — десятки тысяч сокетов в одном состоянии или зависший на минуты запрос...
- DNS: TTL, search-домены, записиDNS вспоминают в двух случаях: после переезда часть трафика идёт на старый адрес, и внутри кластера резолв внезапно медленный. Оба объясняются механикой,...
- HTTP-коды прокси и TLS-рукопожатиеЭти вопросы отделяют тех, кто читал коды ответов, от тех, кто разбирал по ним аварии. 502 и 504 ведут в разные места, а «в браузере работает, в curl нет»...
- Балансировка L4 и L7, proxy_passБалансировку спрашивают через выбор и через конфиг: где L4, где L7, и почему запрос доехал до бэкенда не по тому пути, что ожидали.
- Фаерволы, NAT и проблемы MTUЗдесь проверяют умение локализовать проблему: сервис не доступен снаружи, а причин может быть три — адрес прослушивания, фильтрация, маршрут. Плюс...
Безопасность инфраструктуры
- Секреты: хранилище и ротацияСекреты спрашивают через операции: как поменять пароль базы без простоя и что делать после утечки. Теория тут вторична, важна процедура.
- Доступы: SSH, бастион, минимальные праваТут проверяют, думаешь ли ты про радиус поражения. Практический вопрос: инженер уволился, учётку заблокировали — что осталось открытым.
- TLS-сертификаты в эксплуатацииСертификаты спрашивают там, где они ломаются: внутренний сервис ругается на доверие, автопродление тихо упало, а взаимный TLS оказался дороже, чем ожидали.
- Цепочка поставки: сканеры, подписи, SBOMЗдесь проверяют, понимаешь ли ты, что в прод едет не только твой код: базовый образ, десятки зависимостей и сам процесс сборки.
- Харденинг контейнеров и гейты в CIФинальный блок про то, как безопасность становится частью процесса, а не разовой акцией: профиль контейнера и правила, блокирующие пайплайн.
Облака
- Модели облаков: IaaS, PaaS, зоныОблако спрашивают не по названиям сервисов конкретного провайдера, а по принципам: где заканчивается его зона ответственности и за что всё равно отвечаешь...
- Сеть в облаке: VPC, группы, NATСетевую часть спрашивают через типовую схему: где живёт база, как она ходит за обновлениями и почему сервисы одного облака не должны общаться через...
- Вычисления в облаке: ВМ, spot, managed k8sЗдесь проверяют умение выбирать инструмент под профиль нагрузки и трезво смотреть на управляемые сервисы.
- Объектное хранилище S3S3-совместимое хранилище есть в каждом проекте, и ошибки с ним типовые: раздача файлов через приложение, публичный бакет и неконтролируемый рост.
- Стоимость облака и зеркала артефактовФинальный блок про деньги и риски: счёт вырос вдвое, а кто потребляет — неясно; внешние реестры внезапно перестали отдавать образы.
Базы и брокеры в проде
- PostgreSQL в проде: пулер, очистка, блокировкиИнженера эксплуатации спрашивают про базу не как разработчика: не про запросы, а про соединения, очистку и блокировки. То есть про то, из-за чего база...
- Бэкапы базы и восстановление на точкуТема, где ответ проверяется одним вопросом: сколько времени займёт поднять базу из копии и когда вы это делали в последний раз.
- Репликация базы и переключение лидераРепликацию спрашивают вместе с её побочными эффектами: пользователь не видит только что сохранённое, а автопереключение однажды подняло второго лидера.
- Kafka и RabbitMQ в эксплуатацииБрокеры спрашивают через эксплуатацию: потребитель не успевает, диски кончаются, часть событий потерялась. Всё это следствия модели хранения.
- Redis как кэш: память, прогрев, сохранностьКэш спрашивают через аварии: Redis упёрся в память, база легла после перезапуска кэша, задачи из очереди пропали.
SQL
- JOIN в SQL: виды, ON против WHERE и потерянные строкиВиды JOIN в SQL и их поведение: чем ON отличается от WHERE, почему LEFT JOIN теряет строки, откуда берутся дубли при связи один ко многим. Теория и вопросы с разбором.
- GROUP BY и HAVING в SQLКак работает GROUP BY, чем HAVING отличается от WHERE, в каком порядке выполняется запрос и что происходит с NULL в агрегатах. Теория и вопросы с собеседований.
- Подзапросы и CTE в SQLКогда подзапрос лучше JOIN, чем опасны коррелированные подзапросы, зачем нужен CTE и как работает рекурсивный WITH. Теория и вопросы с собеседований с разбором.
- Оптимизация SQL-запросов: индексы и планПочему запрос читает всю таблицу, как работают индексы и селективность, что смотреть в плане запроса и какие конструкции мешают оптимизатору. Теория и вопросы.
- SQL: оконные функцииОконные функции — граница между джуном и мидлом в SQL-секции. Вопрос №1 всех собесов — «топ-N в группе»; рядом дельты между событиями и бегущие итоги.
Алгоритмы и структуры данных
- Сортировки и бинарный поискБыстрая сортировка, сортировка слиянием и другие: сложность, устойчивость, где какая уместна. Бинарный поиск и его границы. Теория и вопросы с собеседований с разбором.
- Сложность алгоритмов и нотация Big-OКак оценивают сложность алгоритма: нотация Big-O, время против памяти, средний и худший случай, амортизированная стоимость. Теория и вопросы с собеседований.
- Хеш-таблицы, массивы и два указателяКак устроена хеш-таблица, откуда берутся коллизии и почему доступ в среднем константный. Приёмы с массивами: два указателя, скользящее окно, префиксные суммы.
- Стек, очередь и кучаСтек, очередь, дек и куча: как устроены, какая сложность операций, в каких задачах появляются и почему куча решает задачи про k-е по величине. Теория и вопросы.
- Динамическое программированиеКак узнать задачу на динамическое программирование, из чего состоит состояние и переход, чем мемоизация отличается от табличного подхода. Теория и вопросы с разбором.
- Алгоритмы на графах: обходы и кратчайшие путиПредставление графа, обходы в ширину и глубину, поиск кратчайшего пути, топологическая сортировка и обнаружение циклов. Теория и вопросы с собеседований.
- Рекурсия и backtrackingBacktracking — жанр «сгенерируй все»: перестановки, сочетания, подмножества, N ферзей. Каркас один, и проверяют владение именно им — плюс два фирменных бага: забытый откат и ссылка...
- Деревья: BST, кучи и trieBST, сбалансированные деревья и trie — вопросы «что стоит за структурами твоего языка»: за TreeMap и std::map живёт красно-чёрное дерево.
- Деревья, графы и рекурсияДеревья и графы — вторая ступень лайвкодинга: тут проверяют владение двумя обходами и одним рекурсивным шаблоном. Большинство задач на деревья — один и тот же паттерн с разными именами.
Статистика
- Распределения: нормальное, биномиальное, ПуассонаНормальное, биномиальное и пуассоновское распределения: где возникают, правило трёх сигм, центральная предельная теорема, тяжёлые хвосты. Теория и вопросы с разбором.
- Проверка гипотез и p-valueЧто такое p-value на самом деле, чем отличаются ошибки первого и второго рода, откуда берётся мощность теста и как выбирают критерий. Теория и вопросы с собеседований.
- Доверительный интервал: что он означаетДоверительный интервал простыми словами: как строится, от чего зависит ширина, что означает уровень 95% и чем интервал отличается от предсказательного. Теория и вопросы.
- Теорема Байеса и условная вероятностьТеорема Байеса простыми словами: условная вероятность, априорное и апостериорное, задача про тест с ложными срабатываниями. Теория и вопросы с собеседований.
- Вероятность: задачи с собеседованийЗадачки на вероятность проверяют мышление, а не зубрёжку: сможешь ли ты развернуть условие в счёт. Любимый репертуар — условная вероятность, индикаторы, «хотя бы один» и пара...
Продуктовая аналитика
- Юнит-экономика: LTV, CAC и окупаемость когортыЮнит-экономика простыми словами: что считать за юнит, как устроены LTV и CAC, окупаемость когорты, маржинальность и типичные ошибки в расчётах. Теория и вопросы с разбором.
- Когортный анализ и сегментацияЧто такое когорта, зачем разрезать пользователей по дате входа, как читать кривую удержания и почему средние по всей базе скрывают проблемы. Теория и вопросы.
- Продуктовые метрики: как выбирать и не обманыватьсяКак выбирают продуктовые метрики под задачу, чем опасны прокси-метрики, что считать активным пользователем и почему средние вводят в заблуждение. Теория и вопросы.
- Воронка конверсии и ретеншенКак строят воронку и находят настоящее место потерь, чем удержание отличается от оттока, как читать кривую ретеншена и почему конверсия зависит от окна.
- Метрики e-commerce и маркетплейсаАналитик e-com обязан за секунду разложить выручку на рычаги и не спутать оборот с деньгами компании. Собес проверяет именно это: каркас выручки и места, где красивая цифра прячет...
- Юнит-экономика и финансовые метрикиАналитик приносит деньги, только когда его метрики сведены с финансовыми. Для этого надо читать P&L, понимать разницу между прибылью и деньгами на счету и говорить на языке валовой...
- Маркетинговые метрикиЗадача аналитика в маркетинге — довести оценку от дешёвых кликов до реальной прибыли и не дать атрибуции себя обмануть.
- Ценообразование и промоЦена — сильнейший рычаг прибыли и самый коварный: скидка бьёт по марже нелинейно, а промо почти всегда «успешно», пока эффект не разложат.
- Подписочные метрикиУ подписочного бизнеса своя система координат: регулярная выручка и её движение, а не разовые продажи. Собес проверяет, умеешь ли ты собрать MRR-мост и не обмануться средним оттоком.
Классический ML
- Признаки и препроцессинг данныхПравило, которое любят интервьюеры: фичи важнее модели — одна сильная фича даёт больше, чем смена алгоритма и неделя тюнинга.
- Линейные модели в MLЛинейные модели — вопрос-фильтр DS-собеса: по ним видно, понимаешь ли ты ML под капотом или просто запускаешь fit-predict.
- Переобучение и регуляризация«Как поймёшь, что модель переобучилась» и «как устроена валидация» — любимый скрининг: по ответам мгновенно видно, выкатывал ли ты модели в прод или только в ноутбук.
- Деревья решений и ансамблиБустинг на деревьях — дефолтная прод-модель для табличных данных, поэтому «чем лес отличается от бустинга» и «что крутить в гиперпараметрах» звучат почти на каждом DS-собесе.
- Кластеризация и обучение без учителяКластеризация приходит на собес в одежде продуктовой задачи: «сегментируй пользователей». Проверяют два умения: понимаешь ли ты допущения методов (k-means — не универсальный нож) и...
- Калибровка и выбор порога«Твой скор 0.9 — это вероятность 90%?» — вопрос, отделяющий мидла: большинство читает скор как вероятность и ошибается.
- Метрики классификацииМетрики классификации — топ-3 вопрос DS-собеса. «Почему accuracy плохая метрика» и «precision или recall» стабильно валят джунов, потому что проверяют не определения, а связь метрики с...
- Ловушки метрик качестваСеньорский слой темы: «что может пойти не так с метрикой». Гудхарт, Симпсон, дрейф — вопросы, где проверяют шрамы, а не эрудицию: услышать хотят истории про то, как метрика врала лично...
- Метрики ранжирования и рекомендацийЕсть в резюме поиск или рекомендации — будет вопрос «как меряешь качество ранжирования». Проверяют две вещи: мыслишь ли ты в терминах топ-K и понимаешь ли, что офлайн-метрики на кликах...
- Метрики регрессии«Какую метрику взял для прогноза и почему» — проверка зрелости: выбор метрики — это выбор того, что именно модель будет предсказывать.
- Утечки данных в MLУтечка данных — тема, на которой валятся даже сильные кандидаты, поэтому её любят: она проверяет не знание алгоритмов, а дисциплину работы с данными. Спрашивают...
- kNN, SVM и наивный БайесБустинг — дефолт табличек, но собес любит проверить широту базы: понимаешь ли ты алгоритмы с другой механикой. kNN, SVM и наивный Байес — три разных взгляда на...
Spring и Hibernate
- Spring Boot и AOP: автоконфигурация и проксиКак работает автоконфигурация Spring Boot, зачем нужны стартеры, как устроено проксирование в AOP и почему вызов метода изнутри класса ломает аннотации. Теория и вопросы.
- Spring Data и транзакцииКак работают транзакции в Spring: уровни распространения и изоляции, откат по исключениям, где проходят границы транзакции и почему аннотация иногда не срабатывает.
- Кэш первого и второго уровняУ Hibernate два кэша, и их постоянно путают: L1 работает всегда и в пределах сессии, L2 — между сессиями и только по явной настройке.
- Состояния entity в HibernateПоловина вопросов «почему сохранилось / не сохранилось / сохранилось само» — про состояния сущности и persistence context.
- Ленивая загрузка и N+1 в HibernateN+1 — самая частая и самая незаметная проблема производительности в ORM: код выглядит невинно, а под ним сотни запросов.
- ORM-маппинг в HibernateHibernate раскладывает объекты по таблицам, но пара мест кусает почти каждого: направление связи и кто пишет FK, ленивость по умолчанию, и equals/hashCode для сущности.
- Транзакции и блокировки в HibernateКогда два запроса меняют одну строку, вопрос — кто кого перетрёт. Оптимистичная и пессимистичная блокировки решают это по-разному, и собес хочет, чтобы ты выбирал осознанно и знал, что...
- Бины Spring: цикл и скоупыМежду «контейнер создал объект» и «объект готов к работе» происходит вся спринг-магия: внедрение, пост-процессоры, оборачивание в прокси.
- IoC и внедрение зависимостейInversion of Control переворачивает управление: не твой код создаёт зависимости через new, а контейнер собирает граф объектов и раздаёт их.
- Spring MVC и RESTВеб-слой Spring MVC — это маршрутизация HTTP на методы, сериализация в JSON и обратно, валидация входа и единая обработка ошибок.
Kafka и стриминг
- Гарантии доставки в Kafka: at-least-once и exactly-onceЧем отличаются гарантии доставки сообщений, откуда берутся дубли, как работают идемпотентный продюсер и дедупликация на стороне потребителя. Теория и вопросы.
- Партиции, офсеты и группы потребителей в KafkaКак Kafka раскладывает сообщения по партициям, зачем нужен ключ, как устроены офсеты и их коммит, что происходит при ребалансировке группы. Теория и вопросы.
- Потоковая обработка данныхПоверх лога работают движки — Flink, Spark Structured Streaming, Kafka Streams — и они отличаются моделью состояния и восстановления.
- Основы потоковой обработкиСтриминг обрабатывает события по мере поступления, с латентностью в секунды и миллисекунды. Собес проверяет, выбираешь ли ты его по требованию к свежести, а не по моде, и понимаешь ли,...
- Окна и время события в стримингеАгрегаты в стриминге считают по окнам, и всё упирается в то, какое время брать и как ждать опоздавших. Собес проверяет, различаешь ли ты event time от processing time и понимаешь ли...
Многопоточность в Java
- Пулы потоков и FutureExecutorService и CompletableFuture — то, чем многопоточность реально пишется в проде. Поэтому и спрашивают приземлённо: как настроишь пул, куда денется исключение из задачи, почему...
- Локи и примитивы синхронизацииjava.util.concurrent — ящик готовых инструментов, и вопросы здесь — про выбор: когда ReentrantLock вместо synchronized, когда Atomic вместо лока, чем Latch отличается от Barrier.
- Virtual Threads и Project LoomJava 21 вернула самую простую модель — «поток на задачу», сделав потоки дешёвыми. На собесах это горячая тема: проверяют, понимаешь ли механику (carrier, парковка) и — главное —...
- Синхронизация и volatile в JavaЗдесь проверяют понимание Java Memory Model — того, что отличает «использую synchronized» от «понимаю, что он гарантирует».
- Потоки в Java: основыМногопоточность — главный фильтр Java-собесов: джун знает API, мидл понимает, почему код с потоками ломается. Проверяют не «как создать поток», а видишь ли ты гонку в трёх строках кода...
Коллекции Java
- HashMap в Java изнутриКак устроен HashMap в Java: хеш и бакеты, разрешение коллизий, переход в дерево, ресайз и что произойдёт, если изменить ключ после вставки. Теория и вопросы.
- Выбор структуры и сложность операций«Какую коллекцию возьмёшь под задачу X?» — вопрос, где нет зубрёжки: проверяют, умеешь ли ты рассуждать от операций.
- Generics и wildcards в JavaДженерики кажутся зоопарком странных правил: то не компилируется, это нельзя, тут wildcards. На собесе проверяют, видишь ли ты за правилами одну причину — стирание типов.
- Итерация и порядок в коллекцияхТема выглядит служебной, но здесь живут два продакшен-инцидента: «Comparison method violates its general contract» посреди ночи и коллекция, испорченная удалением на обходе.
- List и Set в JavaКоллекции — сердце Java-собеса: без них не проходит ни одно интервью. На List/Set проверяют два пласта: понимаешь ли устройство (почему ArrayList быстрый, а LinkedList — нет) и знаешь...
Асинхронность в Python
- Структуры данных в Python: list, dict, set, tupleСписок, словарь, множество и кортеж в Python: как устроены, сложность операций, когда что выбирать и где ошибаются на собеседовании. Теория и вопросы с разбором.
- Генераторы и итераторы в PythonКак работают итераторы и генераторы в Python: протокол итерации, yield, ленивые вычисления, генераторные выражения и где они экономят память. Теория и вопросы.
- ООП в Python: классы, наследование, dunder-методыКлассы и наследование в Python, порядок разрешения методов, магические методы, композиция против наследования и типичные ошибки на собеседовании. Теория и вопросы.
- Декораторы, замыкания и области видимости в PythonКак устроены декораторы и замыкания в Python, правило LEGB, ловушка изменяемого аргумента по умолчанию и зачем нужен functools.wraps. Теория и вопросы с разбором.
- Исключения и контекстные менеджеры в PythonИерархия исключений в Python, поведение try/finally, свои исключения, протокол контекстного менеджера и зачем нужен with. Теория и вопросы с собеседований.
- GIL в Python: что блокирует и как обходятЧто такое GIL, почему потоки в Python не ускоряют вычисления, где многопоточность всё же выигрывает и когда нужны процессы. Теория и вопросы с собеседований.
- Event loop и корутины в asyncioКак устроен event loop в Python, чем корутина отличается от задачи, что происходит при await и почему блокирующий вызов останавливает всё приложение. Теория и вопросы.
- Координация корутин: gather и семафорыОдну корутину запустить умеет каждый — на собесе интересно, как ты управляешь пачкой: запустить N разом, ограничить одновременность, поставить таймаут, обработать первый...
- Ловушки асинхронного кодаСамая частая продовая авария на async-стеке — не гонка, а блокировка цикла: один синхронный вызов в хендлере, и весь сервис встаёт колом для всех клиентов.
- Потоки, процессы и asyncioПрямое следствие GIL — вопрос выбора инструмента параллелизма. На собесе дают задачу («выкачать 10k страниц», «пережать 500 картинок») и ждут, что ты не просто назовёшь threading, а...
FastAPI, Django и API
- REST API: методы, коды ответов и дизайн ресурсовКак проектируют REST API: HTTP-методы и коды ответов, ресурсы и версионирование, идемпотентность и повторные запросы. Теория и вопросы с собеседований с разбором.
- Версионирование APIКак только у API есть внешние клиенты, которых нельзя обновить одномоментно, встаёт вопрос эволюции контракта. Собес проверяет, отличаешь ли ты обратно совместимое изменение от...
- Аутентификация и авторизация в APIБезопасность входа — обязательный блок собеса на бэкенде, и здесь много заученных полуправд. Проверяют, различаешь ли ты «кто ты» и «что тебе можно», понимаешь ли, что JWT не...
- GraphQLGraphQL всплывает там, где REST начинает жать: клиенту нужно то три поля из тридцати, то данные из пяти эндпоинтов за один экран.
- Семантика HTTPHTTP-коды и методы — это контракт, по которому клиент решает: ретраить или нет, идти логиниться или это бесполезно, битый у него запрос или недопустимое значение.
- Идемпотентность и gRPCДва сюжета, где ломаются наивные API: ретраи, задваивающие эффект (оплата прошла дважды), и выбор протокола для межсервисного обмена.
- Пагинация и фильтрация в APIОтдать коллекцию целиком — путь к таймаутам и OOM, поэтому пагинация обязательна, а её реализация выдаёт зрелость.
- Rate limiting в APIОграничение частоты — то, что отделяет сервис, переживший всплеск и абьюз, от лежащего. Собес проверяет, знаешь ли ты алгоритмы (token bucket против sliding window), правильный код...
- Валидация и сериализация данныхВалидация на сервере — это не про удобство, а про безопасность: клиент может слать в API что угодно в обход твоего UI.
- Веб-безопасность APIБезопасность — раздел, где заученные названия не спасают: собес проверяет, понимаешь ли ты МЕХАНИЗМ каждой дыры и её лечение.
- Чистая архитектура в PythonКогда сервис перерастает один файл, встаёт вопрос, как разложить код, чтобы бизнес-логику можно было тестировать и менять фреймворк, не переписывая всё.
- Django и DRFDjango всё ещё держит огромную долю Python-вакансий, и собес по нему крутится вокруг трёх узлов: как устроен MTV, что делает сериализатор DRF и почему QuerySet ленив.
- FastAPI и PydanticFastAPI — де-факто стандарт нового Python-бэкенда, и собес по нему проверяет не синтаксис декораторов, а понимаешь ли ты, откуда берутся валидация, сериализация и документация.
- Flask: основыFlask любят за минимализм, и собес проверяет ровно те места, где минимализм превращается в грабли: два контекста (application и request), время жизни flask.g и то, что встроенный...
- Middleware и зависимостиДва механизма, которые отличают продовый сервис от учебного: middleware (общий конвейер вокруг каждого запроса) и DI (сборка зависимостей эндпоинта).
- WebSockets и стримингКак только продукту нужен живой апдейт — чат, нотификации, дашборд — HTTP-модель «запрос-ответ» перестаёт хватать, и на собесе спрашивают, чем ты это закроешь.
- WSGI и ASGIМежду веб-сервером и Python-приложением стоит контракт, и то, какой он — синхронный WSGI или асинхронный ASGI — определяет, что твой сервис вообще способен делать.
Горутины и каналы
- Горутины в GoС горутин начинается любой Go-собес. Спрашивают, чем они отличаются от потоков, почему их можно держать сотнями тысяч и что случится, если main завершится раньше...
- Каналы в GoКаналы — второй обязательный блок. Спрашивают разницу буферизованного и небуферизованного, кто должен закрывать канал, что вернёт приём из закрытого и что будет...
- select в Goselect проверяют вопросами с подвохом: какая ветка сработает, если готовы две, зачем нужен default и что делает ветка с nil-каналом.
- Ловушки каналов в GoОтдельный блок вопросов «что произойдёт»: отправка в закрытый канал, двойное закрытие, работа с nil-каналом, range без close. Проверяют, отличаешь ли ты панику...
- Утечки горутин в GoВопрос уровня middle и выше: что такое утечка горутин, откуда она берётся и как её обнаружить. Проверяют эксплуатационную зрелость — понимаешь ли ты, что...
- Mutex и atomic в GoПроверяют, знаешь ли ты, когда нужна блокировка, чем RWMutex отличается от Mutex и где вместо них хватит atomic. Плюс любимая ловушка: копирование структуры с...
- WaitGroup и Once в GoWaitGroup и Once спрашивают как базу: где вызывать Add, что будет при копировании и сколько раз выполнится тело Once при пятидесяти одновременных вызовах.
- context в GoКонтекст спрашивают у всех, кто пишет сервисы: зачем он нужен, почему cancel зовут через defer, что считается антипаттерном в context.Value.
- Гонки данных в GoТема, отделяющая middle от junior: что такое гонка данных, почему она не всегда воспроизводится и что гарантирует модель памяти Go. Часто дают код и просят найти...
- Паттерны синхронизации в GoВопрос уровня senior: чем руководствоваться при выборе между каналом и мьютексом, что даёт errgroup и когда уместна sync.Map. Проверяют инженерное суждение, а не...
Интерфейсы и основы Go
- Типы и нулевые значения в GoС этого начинают почти любой Go-собес: спрашивают, чему равна переменная без инициализации и почему нельзя сложить int с float64. Проверяют не зубрёжку, а...
- Слайсы в Go: len, cap и appendСамая частая тема на собесе после горутин, потому что на ней ловят почти всех. Спрашивают про len и cap, про то, что происходит при append, и дают код, где...
- Мапы и строки в GoПроверяют три вещи: понимаешь ли ты, что порядок обхода мапы случаен, знаешь ли про фатальную ошибку при конкурентной записи и в курсе ли, что строка — это байты...
- Структуры и методы в GoЗдесь проверяют понимание значения против указателя: почему метод не изменил поле, почему тип «не реализует» интерфейс и что такое встраивание. Тема кажется...
- Указатели в GoТема короткая, но её любят как проверку на понимание модели памяти: можно ли вернуть адрес локальной переменной, есть ли арифметика указателей, что происходит...
- Интерфейсы в GoИнтерфейсы — визитная карточка Go, и спрашивают их почти всегда. Проверяют, понимаешь ли ты, что реализация неявная, что интерфейс — это пара из типа и значения...
- Ловушка nil-интерфейса в GoОдин из самых частых каверзных вопросов по Go: функция вернула «нулевую» ошибку, а проверка err != nil сработала. Проверяют, понимаешь ли ты, что интерфейс — это...
- Type switch в GoType switch спрашивают как продолжение ассерции: что это за конструкция, какого типа переменная в каждой ветке и что означает case nil. Часто дают код и просят...
- any и type assertion в GoПроверяют, умеешь ли ты доставать значение из any и знаешь ли разницу между формой с ok и без. Практический контекст — разбор JSON в map[string]any, где половина...
- Дженерики в GoДженерики спрашивают как проверку на свежесть: знаешь ли синтаксис, понимаешь ли ограничения и — главное — умеешь ли отличать случай, где нужен дженерик, от...
Ошибки и рантайм Go
- Обработка ошибок в GoПервое, что спрашивают про ошибки: почему в Go нет исключений и что делать с полученной ошибкой. Проверяют не синтаксис, а дисциплину — понимаешь ли ты, что...
- Оборачивание ошибок в GoПроверяют владение современным API ошибок: чем %w отличается от %v, когда Is, а когда As, и что делает errors.Join. Тема почти всегда идёт сразу после базовой...
- Sentinel и свои типы ошибок в GoСпрашивают, как сообщить вызывающему коду о конкретной причине сбоя: sentinel-значением или своим типом. Проверяют понимание, что оба варианта становятся частью...
- panic и recover в GoСпрашивают, когда уместен panic, где сработает recover и почему им нельзя пользоваться как исключениями. Часто дают код и просят сказать, перехватится ли паника.
- defer в GoКлассика собеса с подвохом: в каком порядке выполнятся несколько defer, что напечатает отложенный вызов с изменённой переменной и что будет с defer в цикле.
- Планировщик Go: модель GMPВопрос уровня middle+: как рантайм раскладывает горутины по потокам, что такое GOMAXPROCS и что происходит при блокирующем системном вызове.
- Сборка мусора в GoСпрашивают, какой сборщик в Go, что останавливает мир и как им управлять. Тема эксплуатационная: за ней обычно следует вопрос про поведение в контейнере.
- Стек и куча в GoСпрашивают, как растёт стек горутины, чем стек отличается от кучи по цене и что даёт sync.Pool. Часто добавляют вопрос про утечки при наличии сборщика.
- Escape analysis в GoСпрашивают, кто решает, где живёт значение, безопасно ли вернуть адрес локальной переменной и как это проверить. Тема отделяет тех, кто оптимизировал горячие пути.
- Профилирование Go: pprofЭксплуатационный блок: какие профили бывают, чем alloc отличается от inuse, когда нужна трассировка и почему pprof нельзя выставлять наружу.
Веб и тесты на Go
- Тестирование в Go: пакет testingПроверяют, знаешь ли ты стандартный пакет testing: как называется файл, чем Fatal отличается от Error, что делают Cleanup и Helper. Сторонние библиотеки в Go для...
- Table-driven тесты в GoСпрашивают, как выглядит идиоматичный тест и почему в Go предпочитают таблицы. Заодно проверяют работу с подтестами и сравнение сложных значений.
- Бенчмарки и детектор гонок в GoСпрашивают, как измерять производительность и зачем -race. Проверяют, понимаешь ли ты, что один прогон бенчмарка ничего не доказывает, а зелёный -race не...
- Моки в Go через интерфейсыСпрашивают, как тестировать код, который ходит в базу или в чужой сервис. Проверяют понимание, что в Go для этого обычно хватает узкого интерфейса и пяти строк...
- Модули Go: go.mod и go.sumСпрашивают, что лежит в go.mod и go.sum, что делает tidy, как работает мажорное версионирование. Тема бытовая, но незнание сразу видно.
- HTTP-сервер на net/httpПроверяют, умеешь ли ты собрать сервис без фреймворка: сигнатура обработчика, маршрутизация, конкурентность и мягкая остановка. С Go 1.22 тема обновилась...
- Роутинг и middleware в GoСпрашивают, как без фреймворка сделать сквозные вещи: логирование, аутентификацию, восстановление после паники. Проверяют понимание, что middleware — обычная...
- JSON в Go: encoding/jsonПрактическая тема, где ошибаются почти все: какие поля попадут в вывод, во что разберётся число, как отличить null от отсутствия поля.
- HTTP-клиент в GoСпрашивают, что не так с http.Get в боевом коде: таймауты, переиспользование клиента, закрытие тела. Тема эксплуатационная, ответы видно по опыту.
- io.Reader, time и стандартная библиотека GoБлок вопросов про стандартную библиотеку: что такое io.Reader, как правильно задать длительность, чем Ticker отличается от Timer. Ошибки тут дешёвые на вид и...
A/B-тесты
- Дизайн A/B-тестаA/B — рабочая лошадь продуктового DS, и на собесе просят продизайнить тест целиком: от гипотезы до длительности.
- Ловушки A/B-тестовЛовушки A/B — сеньорская часть темы: интервьюер ищет шрамы. «Тест прокрасился на третий день — что делаешь?» — вопрос-детектор: ответ выдаёт, жил ли ты с реальными экспериментами или...
- Размер выборки и мощность теста«Сколько пользователей нужно» — вопрос, отделяющий того, кто запускает тесты, от того, кто их планирует. Собес проверяет, понимаешь ли ты мощность и MDE...
- Снижение дисперсии: CUPEDСнижение дисперсии — способ получить чувствительность почти даром: тот же вывод на меньшем трафике или за меньший срок. В зрелых экспериментальных платформах...
Spark и большие данные
- Форматы файлов и хранение данныхФормат хранения решает, сколько запрос прочитает с диска. Собес проверяет, понимаешь ли ты, почему parquet — стандарт аналитики, а CSV в озере — только в зоне приёма.
- Hadoop и lakehouseСтек больших данных прошёл путь от HDFS с MapReduce к озеру на объектном сторадже с табличными форматами. Собес проверяет, понимаешь ли ты, зачем поверх «просто паркетов в S3» нужен...
- Ядро Spark: RDD и план выполненияЧтобы чинить медленный Spark, надо понимать, как он исполняет код: ленивый DAG, границы стейджей по шаффлу, таски по партициям. Собес проверяет именно эту механику, а не знание API.
- Оптимизация джобов SparkОптимизация Spark — это в первую очередь сокращение шаффла и борьба с перекосом, а не подбор магических конфигов.
- Выборка данных под MLВыгрузка данных под ML — ежедневный маршрут DS в Spark, и ошибка №1 всей темы живёт здесь: toPandas() на десятках миллионов строк. Проверяют дисциплину «агрегируй там, вытягивай мало».
- DataFrame API для фичDataFrame-операции — там, где Spark тормозит у новичков: джойн без broadcast, окно без partitionBy, Python-UDF на каждый чих. Вопросы проверяют знание трёх главных тюнингов.
- Spark: ленивость и действияЛенивость — модель исполнения Spark, и без неё не объяснить ни «почему ошибка вылетела на count», ни «почему всё пересчиталось дважды». Вопрос-детектор реального опыта.
- Spark: от данных к моделиФичи в Spark — те же утечки, что в pandas, только дороже: неделя кластерного времени на фичи, подсмотревшие таргет. Проверяют перенос дисциплины point-in-time на распределённый масштаб.
- Когда Spark, а когда pandas«Когда Spark, а когда pandas» — проверка инженерной трезвости DS: кластер под 2 ГБ CSV выдаёт человека, который путает инструмент с религией.
ClickHouse
- Агрегации и приближённые вычисленияКаскад агрегатов на materialized view — фирменный паттерн CH для дашбордов по миллиардам событий. Проверяют понимание двух его сюрпризов: MV не видит историю и не видит правок.
- Джойны и распределённые запросыКластерный CH — шарды, реплики и их сюрпризы: асинхронная репликация, GLOBAL JOIN, горячие шарды. Проверяют, понимаешь ли ты, что Distributed — фасад, а не волшебство.
- Движки таблиц ClickHouseДвижки таблиц — это «конституция» ClickHouse: ORDER BY и семейство MergeTree решают судьбу таблицы навсегда. Вопрос-детектор: «почему PRIMARY KEY не убрал дубли» — на нём видно, понял...
- Производительность запросов ClickHouseПерформанс CH — три решения, которые принимаются один раз и навсегда: как вставлять, какой ORDER BY, какие типы.
- Идиомы запросов ClickHouseИдиомы запросов CH — то, что отличает «пишу как в Postgres» от «пишу по-кликхаусовски»: argMax вместо оконок, словари вместо JOIN'ов, uniq вместо uniqExact.
DWH и моделирование данных
- Data VaultData Vault — способ строить core-слой, когда источников много и их схемы часто меняются. Он раскладывает мир на три кирпича — хабы, линки, сателлиты — ради параллельной загрузки и...
- Звезда и снежинка в DWHРазмерное моделирование — язык витрин: факты-события и измерения-справочники вокруг них. Собес проверяет, объявляешь ли ты грань факта до полей и различаешь ли аддитивные меры от...
- Физика DWH и MPPОдна и та же логическая модель летает или ползёт в зависимости от физики: колоночного хранения, партиций, дистрибуции.
- Слои и нормализация DWHХранилище делят на слои, и каждый слой — это контракт, а не папка для удобства. Собес проверяет, понимаешь ли ты, зачем сырьё отдельно от очищенного, а витрины — отдельно от ядра.
- SCD и историчность измеренийSlowly Changing Dimensions отвечают на вопрос, что делать, когда атрибут измерения меняется — клиент переехал, товар сменил категорию.
ETL и оркестрация
- Airflow и DAG-иAirflow планирует пайплайны как граф задач и ведёт состояние каждой: ретраи, SLA, алерты. Собес проверяет две вещи, на которых спотыкаются: смысл logical_date и требование атомарной...
- Качество данных в пайплайнеКачество данных — это проверки как часть пайплайна, а не «разберёмся, если пожалуются». Собес проверяет, встраиваешь ли ты контроль на границах слоёв и различаешь ли блокирующие...
- dbt: трансформации в хранилищеdbt — это буква T в ELT: трансформации внутри хранилища, оформленные как версионируемый код с тестами и lineage.
- Идемпотентность и бэкфиллИдемпотентность — повторный запуск за тот же период даёт тот же результат. Это фундамент DE: без неё ретраи, бэкфилы и «перезапусти вчерашнее» становятся страшными.
- Паттерны пайплайнов данныхКак забирать данные — полностью или инкрементом, батчем или потоком, по расписанию или по событию — это набор осознанных выборов, а не привычка.
- Асинхронность и параллелизм в PythonВ Python три модели параллелизма под разные задачи, и путать их дорого. Собес проверяет, понимаешь ли ты роль GIL и почему один блокирующий вызов убивает всю асинхронность.
- Генераторы и память в пайплайнахDE на Python постоянно упирается в память: файл больше RAM, выборка на миллионы строк. Собес проверяет, умеешь ли ты обрабатывать поток лениво, за O(1) памяти, а не грузить всё в...
- IO, базы и сериализация в PythonФормат хранения и загрузки решает и скорость, и корректность данных. Собес проверяет, знаешь ли ты, почему parquet — дефолт, чем коварен CSV и почему pickle нельзя от чужих.
- Надёжность пайплайна и ретраиПайплайн ходит по сети, а сеть падает — поэтому надёжность это дисциплина ретраев, таймаутов и идемпотентности, а не «обычно же работает».
- Тесты пайплайнов данныхПайплайн данных тестируют не так, как думают новички: не гоняя его целиком в прод-БД, а отделив чистую логику от I/O.
Распределённые системы
- Распределённые системы: CAP и согласованностьCAP — самая цитируемая и самая неверно понятая теорема распределённых систем. Собес проверяет, понимаешь ли ты, что P не выбирают, и различаешь ли линеаризуемость от eventual не по...
- Консенсус и координация узловКонсенсус — согласие узлов об одном значении при отказах: кто лидер, в каком порядке записи, кто в кластере. Собес проверяет, понимаешь ли ты, почему кворум — большинство, и зачем...
- Партиционирование и шардингШардирование делит данные по узлам, когда один узел не тянет объём или поток записи. Собес проверяет главное решение — выбор ключа шардирования: по нему данные раскладываются и по нему...
- Распределённые системы: репликация и отказыРепликация даёт переживаемость отказов, чтение с реплик и гео-близость — и порождает все вопросы про лаг и конфликты.
- Распределённые системы: внутренности хранилищПод каждой БД лежит движок хранения, и их два семейства — B-tree и LSM-tree. Собес проверяет, можешь ли ты по движку предсказать поведение под нагрузкой: кто король чтения, кто записи,...
NLP
- Классические задачи NLPКлассические NLP-задачи — проверка продуктового рефлекса: с чего начать текстовую задачу и чем её мерить. В эпоху LLM вопрос «а нужен ли тут трансформер» стал только острее.
- NLP: препроцессинг текстаПредобработка текста — место, где по инерции делают «как в учебнике» и ломают модель. Вопрос-детектор: «нужна ли лемматизация перед BERT?» Правильный ответ — нет, и объяснение почему.
- NLP: рекуррентные моделиРекуррентные модели — исторический слой, но вопросы по ним живы: через LSTM и seq2seq проверяют, понимаешь ли ты, какие проблемы решил трансформер. Это вопросы «откуда что выросло».
- NLP: представление текстаTF-IDF — вопрос на «понимаешь ли механику, которой пользуешься»: формулу не спрашивают, спрашивают интуицию взвешивания и когда этот подход до сих пор лучший выбор.
- NLP: токенизация и эмбеддингиТокенизация — фундамент всех современных моделей, и для русского это больной вопрос: наш текст в токенах в 2-3 раза длиннее английского, а значит дороже и короче по контексту.
- NLP: словные эмбеддингиWord2vec и семейство — проверка базовой интуиции представлений: откуда в векторах берётся смысл. Плюс два практических вопроса: почему для русского fastText и чем плохи статические...
Нейросети
- Архитектуры нейросетейАрхитектуры спрашивают, чтобы проверить картину эволюции: почему CNN для картинок, почему трансформеры вытеснили RNN и что почём в attention. Не детали слоёв, а конструктивные причины.
- Backprop и оптимизация нейросетейBackprop и оптимизаторы — фундамент, по которому отличают «запускал обучение» от «понимаю, что происходит». Дежурные вопросы: почему Adam, что делает momentum и что крутить, когда лосс...
- Регуляризация в глубоком обученииРегуляризация в DL — вопросы с двойным дном: «чем BatchNorm отличается от LayerNorm» проверяет не определения, а понимание, почему train и eval ведут себя по-разному и почему...
- Обучение нейросети на практикеПрактика обучения — вопросы, на которых видно, тренировал ли ты сети сам: «модель не учится — что делаешь?», «как файнтюнить, не убив предобученное?».
Computer Vision
- Основы свёрточных сетейОсновы CNN — проверка, понимаешь ли ты, почему свёртки победили полносвязные сети на картинках. Любимая арифметика собеса: размер выхода и число параметров слоя — считается в уме за...
- Архитектуры CV и transfer learningВопрос «какой бэкбон возьмёшь» — инженерный: точность, латентность и память на целевом железе, а не топ лидерборда. Плюс проверка пары констант: зачем skip-связи и когда ViT уместен.
- Computer Vision на практикеCV-практика — вопросы про шрамы: почему модель упала в проде, почему метрика врёт, что даёт дешёвый буст. Здесь проверяют не знание слоёв, а привычки человека, донёсшего модель до...
- Детекция и сегментация объектовДетекция и сегментация — проверка словаря плотных задач: IoU, mAP, NMS, focal loss. И одного различения, на котором горят: semantic против instance сегментации.
Рекомендательные системы
- Коллаборативная фильтрацияКоллаборативная фильтрация — азбука рексиса, и вопросы по ней проверяют продуктовое чутьё: холодный старт, неявный фидбек, попсовый бейзлайн. Формулы тут вторичны.
- Матричная факторизацияМатричная факторизация — вопрос «объясни механику»: как из разреженной матрицы кликов получаются вкусы. Дополнительно ловят на мифе про SVD и на метриках implicit-моделей.
- Ретрив и ранжирование в рекомендациях«Спроектируй рекомендации на миллионы товаров» — системный вопрос рексиса. Ответ-каркас один: каскад. Кто пытается гнать одну модель по всему каталогу — не строил ничего живого.
- Метрики качества рекомендацийМетрики рексиса — минное поле: случайный сплит, кликбейт в кликах, новизна-эффект. «Как поймёшь, что рекомендации стали лучше» — вопрос, в котором почти каждый шаг можно сделать...
Временные ряды
- Признаки для временных рядовФичи решают в прогнозе больше модели, и все они — про одно правило: окно смотрит только назад. Вопрос «какие фичи для прогноза спроса» проверяет и арсенал, и дисциплину направления...
- Временные ряды: с чего начинаютРяды — отдельный жанр DS: тут не работает половина привычных приёмов, начиная со случайного сплита. Первый вопрос собеса — «с чего начнёшь работу с рядом» — проверяет, есть ли у тебя...
- Модели прогноза временных рядов«Какую модель возьмёшь для прогноза» — вопрос про инженерную трезвость: лестница от наивного к сложному, и подниматься стоит, только пока растёт бэктест.
- Валидация моделей на временных рядахВалидация рядов — минное поле утечек: одна ошибка сплита — и метрика фантастическая, а прод мёртвый. «Как валидируешь прогноз» — вопрос, где интервьюер ждёт слов «только вперёд по...
MLOps
- CI/CD и оркестрацияCI/CD для ML — это три контура тестов вместо одного: код, данные, модель. Вопрос «что гоняет твой CI» мгновенно показывает, автоматизировал ли ты ML-пайплайн или запускаешь трейн...
- MLOps: выкат и мониторингВыкатка и мониторинг — где решается, будет ли инцидент. «Как безопасно выкатить модель» — вопрос с готовым каркасом ответа: shadow → canary → раскат, горячий rollback, метрики выбраны...
- MLOps: трекинг и реестр моделейВоспроизводимость — вопрос, на котором ловят ноутбучных героев: «где-то было лучше, но не помню где» — это не эксперимент, это воспоминание.
- MLOps: упаковка и сервингУпаковка модели — то, где ноутбук встречается с реальностью: «пришли .pkl в чат» заканчивается тем, что у половины команды он не распаковывается, у второй — предсказывает иначе.
ML System Design
- ML System Design: фичсторы и пайплайныFeature store — модное слово, за которым прячут два конкретных вопроса: как не считать одну фичу дважды по-разному и как не утечь в будущее при сборке трейна.
- ML System Design: мониторинг и дрифтМодель в проде умирает молча: сервис зелёный, а предсказания — мусор. Вопрос «как узнаешь о деградации, если лейблы приходят через месяц» отделяет тех, кто жил с моделью после деплоя.
- ML System Design: дизайн рекомендаций«Спроектируй рекомендации» — самый частый ML-system-design кейс. Проверяют не знание моделей, а порядок мышления: цель → данные → каскад → холодный старт → петля.
- ML System Design: масштабирование и трейдофыМасштабирование и трейдофы — финальная секция ML-дизайна: «а теперь нагрузка ×10». Проверяют владение разменами: латентность против throughput, точность против цены, свежесть против...
- ML System Design: сервинг и деплойСервинг — где ML встречается с продом, и вопрос «batch или online» проверяет инженерную трезвость: умеешь ли ты не строить лишнего.
Каузальный вывод
- Каузальный анализ: конфаундеры и смещения«Пользователи фичи ретенятся лучше — значит, фича работает?» — вопрос-ловушка, которым проверяют причинное мышление. Ответ «да» заканчивает собеседование раньше времени.
- Каузальный анализ: причинность по наблюдениямОценка эффекта по чистым наблюдениям — верхняя лига аналитики: propensity, взвешивание, uplift. Проверяют не знание слов, а дисциплину допущений: понимаешь ли ты, на чём это всё...
- Каузальный анализ: квазиэкспериментыЖизнь регулярно запрещает A/B: цена меняется на весь регион, фича раскатана на всех, закон вступил разом. Квазиэксперименты — как честно оценить эффект без рандомизации;
BI и визуализация
- BI-инструменты и российский стекИнструментов много, но собес проверяет не кнопки конкретного Tableau, а принципы: где считаются метрики, как не расплодить 50 версий одной цифры, как дать доступ по правам.
- Интерактивность дашбордаИнтерактивность дашборда должна вести пользователя к ответу, а не превращать экран в конструктор с полусотней фильтров.
- Дашборды: как проектироватьДашборд — это продукт под конкретного пользователя и его решение, а не витрина всех графиков, что удалось построить.
- Сторителлинг даннымиАнализ не заканчивается на цифре — его надо довести до решения. Data storytelling проверяют, потому что аналитик, который «нашёл, но не объяснил», сделал половину работы.
- Выбор визуализации под данныеТип графика — не вкусовщина, а следствие вопроса, на который он отвечает. Собес проверяет, выбираешь ли ты форму под задачу и не манипулируешь ли осями, вольно или невольно.
Greenplum
- MPP-архитектураGreenplum — стандарт корпоративных DWH в РФ, и вопросы по нему начинаются с архитектуры: чем MPP отличается от «большого постгреса». Кто переносит OLTP-интуицию — валится сразу.
- Greenplum: распределение по сегментамDISTRIBUTED BY — решение №1 любой GP-таблицы, и вопрос «как выберешь ключ дистрибуции» — сердце GP-собеса. Два критерия конкурируют: локальность джойнов и равномерность.
- Motion и выполнениеMotion — валюта, которой GP платит за распределённость: перегонки данных между сегментами. Чтение EXPLAIN через motion'ы — навык, который отличает GP-практика от постгресиста в гостях.
- Greenplum: эксплуатация и тюнингЭксплуатация GP — вопросы «кластер тормозит, что делать» и «чем VACUUM заслужил отдельную строчку в резюме». Проверяют операционные привычки: гигиена MVCC, изоляция нагрузок, здоровье...
- Greenplum: хранение таблицХранение в GP — выбор между heap и append-optimized, партиции и способ загрузки. Вопрос-детектор: «как зальёшь терабайт» — ответ «INSERT'ами» закрывает собеседование.
Инфраструктура данных
- CI/CD в дата-инженерииCI/CD автоматизирует путь от пуша до прода: сборка, тесты, деплой. Собес проверяет, понимаешь ли ты принцип build once — promote и почему миграции схемы должны быть кодом.
- Docker для дата-инженераКонтейнеры — базовая упаковка пайплайнов и сервисов, и путают их с виртуалками. Собес проверяет, понимаешь ли ты, что это изолированный процесс на общем ядре, и почему данные...
- IaC и конфигурация инфраструктурыInfrastructure as Code описывает кластеры, бакеты, базы и сети кодом в git — с ревью, историей и повторяемостью. Собес проверяет, понимаешь ли ты роль state и что такое дрейф.
- Kubernetes для дата-инженераKubernetes оркеструет контейнеры декларативно: ты описываешь, что хочешь, а контроллеры это поддерживают. Собес для DE проверяет практичное — requests/limits, пробы и примитивы для...
- Наблюдаемость дата-пайплайновНаблюдаемость — это способность понять, что и где сломалось, по метрикам, логам и трейсам. Собес проверяет, знаешь ли ты три сигнала и умеешь ли алертить по симптому потребителя, а не...
pandas и numpy
- Векторизация в NumPynumpy — фундамент под pandas, sklearn и почти всем стеком данных, поэтому собес аналитика проверяет, думаешь ли ты векторами, а не циклами.
- Pandas и NumPy: основыpandas — рабочий станок DS/DA, и вопросы тут про грабли, а не про API: почему код медленный, почему правка «не сохранилась», почему после merge суммы выросли.
- Reshape и merge в pandasReshape — melt, pivot, concat — проверка, умеешь ли ты приводить данные к форме под задачу. Вопрос-детектор: «когда long, когда wide» — за ним стоит половина ежедневной работы с...
- Временные ряды в pandasВременные ряды в pandas — ежедневка аналитики: агрегаты по дням, скользящие средние, лаги. Валят на трёх вещах: строки вместо дат, пропавшие пустые дни и фичи, заглядывающие в будущее.
Мобильное тестирование
- Жизненный цикл мобильного приложенияМобильное приложение постоянно переходит между foreground, background и killed, и переходы — это точки потери состояния.
- Функциональное тестирование на мобилеФункциональная мобилка — это тач-жесты, клавиатура, локализация, офлайн и платежи, и на каждом свои типовые баги.
- Нефункциональное тестирование на мобилеБатарея, память, перф, трафик, краши — нефункциональные свойства, которые на мобилке напрямую бьют по отзывам и конверсии.
- Специфика мобильного тестированияМобильное тестирование — отдельная дисциплина со своими классами дефектов: жизненный цикл приложения, разрешения, прерывания, офлайн, фрагментация устройств.
- Инструменты мобильной автоматизацииМобильная автоматизация выбирает между кроссплатформенным Appium и нативными фреймворками, а вокруг — ADB, перехват трафика и фермы устройств.
Docker и Kubernetes
- Серверы приложений (gunicorn/uvicorn)Запустить Python-приложение в прод — не flask run: собес проверяет, знаешь ли ты, чем WSGI-сервер отличается от ASGI, как воркеры дают конкурентность и почему FastAPI не поднять...
- Инфраструктура сервиса: кэшированиеКэш — первый инструмент против медленной БД, и первый же источник тонких багов: устаревшие данные и stampede, роняющий базу.
- Инфраструктура сервиса: конфиг и 12-factor12-factor — свод правил, по которым приложение живёт в облаке, и его любимая на собесе часть — конфигурация: что различается между средами, должно быть снаружи кода.
- Docker для приложенияDocker убирает «у меня работало», но только если ты понимаешь, как устроено кэширование слоёв и почему секреты нельзя зашивать в образ.
- Kubernetes: основыОт backend-разработчика не ждут, что он админ кластера. Но ждут, что он понимает, во что превращается его сервис в k8s: под, Deployment, Service, конфиг, пробы, ресурсы.
- Брокеры сообщений и KafkaKafka часто путают с обычной очередью задач, а это разные инструменты под разные задачи. Собес проверяет, понимаешь ли ты, что Kafka — устойчивый лог событий с перечитыванием, и знаешь...
- Объектное хранилище (S3)Как только у сервиса появляются пользовательские файлы — аватары, документы, экспортные CSV — встаёт вопрос: где их держать.
- Observability и CI/CDСервис без наблюдаемости — чёрный ящик, а без CI-ворот баги ловят пользователи. Собес проверяет базу эксплуатации: три столпа observability, разницу liveness и readiness и роль CI как...
- Инфраструктура сервиса: мониторинг и трейсингСервис в проде — чёрный ящик, пока ты не сделал его наблюдаемым. Когда в три ночи растут ошибки, спасают не догадки, а телеметрия: логи, метрики, трейсы.
- Инфраструктура сервиса: очереди задач (Celery)Как только в запросе появляется долгая работа — письмо, отчёт, обработка загрузки — синхронный HTTP перестаёт годиться, и на собесе спрашивают про очереди задач.
Тестирование API
- Тестирование API на практикеAPI-тесты — золотая середина пирамиды: быстрее UI, честнее юнитов. Собес проверяет, есть ли у тебя чек-лист эндпоинта и проверяешь ли ты весь ответ, а не только статус-код.
- HTTP: методы и коды ответовAPI-тестировщик обязан читать методы и коды как язык: они определяют, что можно ретраить и что означает ответ. Собес почти всегда спрашивает разницу 401 и 403 и идемпотентность.
- Интеграции и тестовые данныеИнтеграционные тесты проверяют стыки — то, чего юниты не видят: реальную БД, брокер, внешний API. Собес проверяет, умеешь ли ты тестировать сбои внешних систем и данные на границе.
- Тестирование микросервисовВ микросервисах логика отдельного сервиса проста, а ад — на стыках. Собес проверяет, понимаешь ли ты, что полный E2E-стенд хрупок, и умеешь ли тестировать через контракты и дублёров.
- Сеть и протоколы для тестировщикаПоловина «API лежит» на деле оказывается DNS, прокси или таймаутом. Собес проверяет, умеешь ли ты локализовать проблему по слоям и разобрать «в Postman работает, из кода нет».
- Принципы RESTREST — набор соглашений, по которым строят и тестируют HTTP-API. Собес проверяет, отличаешь ли ты REST от RPC под маской и понимаешь ли, что такое ломающее изменение контракта.
- Безопасность API: что проверятьБезопасность API на уровне QA — это не «пентест раз в год», а системная проверка авторизации, инъекций и утечек. Собес проверяет, знаешь ли ты IDOR и тестируешь ли доступы между ролями.
- Веб-основы для тестировщикаЧтобы тестировать веб-API, надо понимать путь запроса, куки, CORS и кэш. Собес проверяет, локализуешь ли ты «не работает» до слоя и понимаешь ли, что CORS — политика браузера.
LLM и RAG
- Агенты и tool-useАгенты — LLM, которым дали руки, и вопросы тут про ответственность инженера: лимиты, идемпотентность, подтверждения. Красивую демку соберёт любой; надёжность — то, что проверяют.
- Архитектуры LLM и MoEАрхитектурный слой LLM — MoE, RoPE, GQA, FlashAttention — вопросы для тех, кто заявил глубину. Проверяют не знание аббревиатур, а понимание, какую проблему каждая решает: память,...
- Оценка качества и безопасность LLMОценка и безопасность — то, что отличает LLM-продукт от LLM-демки. Два вопроса-детектора: «как поймёшь, что новый промпт лучше» и «что такое prompt injection» — на обоих сыпятся...
- Файнтюн и алайнмент моделейФайнтюн и алайнмент — вопрос «что с этим делать в проде»: дообучать, вешать LoRA или строить RAG. Провальный ответ — «зафайнтюним на нашей базе знаний»: он выдаёт непонимание, что куда...
- Инференс и сервинг LLMИнференс LLM — это деньги и латентность: вопросы «почему медленно» и «почему дорого» встают в первый же месяц любого LLM-продукта.
- Предобучение и масштабирование LLMКак LLM учатся — база, без которой остальные LLM-ответы звучат как маркетинг. Проверяют три понимания: что такое next token prediction, почему base-модель — не ассистент и откуда...
- Промптинг и структурный выводПромптинг в проде — инженерия, а не заклинания: структурный вывод, температура, регрессионные тесты. Вопрос-детектор: «как получить от модели надёжный JSON» — по ответу видно, падал ли...
- RAG: как устроен и где ломаетсяRAG — самый массовый LLM-продукт, и вопросы по нему быстро отделяют строивших от читавших: «RAG галлюцинирует — что делать?» имеет правильный первый шаг, и это не промпт.
Базы данных в Python
- Async SQLAlchemyAsync-версия SQLAlchemy — частый выбор нового FastAPI-сервиса, и у неё свои острые углы, которых нет в sync: MissingGreenlet на ленивой связи, обязательный async-драйвер, сессия на...
- Пулы соединений и RedisДва столпа производительного доступа к данным: пул соединений к СУБД (открывать соединение дорого) и Redis для того, чему не место в реляционной базе.
- Миграции с AlembicМиграции — то, что превращает «поменял модель» в воспроизводимое изменение боевой БД без потери данных и даунтайма.
- Проблема N+1 в ORMN+1 — вопрос-детектор: почти любой продовый ORM-код рано или поздно его словит, и собес проверяет, умеешь ли ты его увидеть, диагностировать и починить правильным инструментом, а не...
- Django ORMDjango ORM полон удобных сокращений, у каждого из которых есть подвох, который любят на собесе: F() против гонок, bulk_create против сигналов, get() против None.
- SQLAlchemy ORMSQLAlchemy — стандартный ORM Python-бэкенда, и собес по нему быстро упирается в две вещи: понимаешь ли ты разделение Core/ORM и знаешь ли, что связи по умолчанию ленивы — источник N+1...
- Сессия и Unit of WorkSession в SQLAlchemy — не просто «соединение», а реализация паттерна Unit of Work, и путаница вокруг flush/commit и жизни объектов после commit даёт тонкие баги.
- Транзакции и уровни изоляцииТранзакции и изоляция — тема, где интуиция подводит: люди помнят ACID, но плывут на аномалиях и на том, что atomic не спасает от гонки на строке.
Python: ядро языка
- Python: модель данных и ссылкиДандер-методы — это и есть «питоничность»: len(), for, with работают через протоколы, и вопросы про __eq__/__hash__ и is против == проверяют, понимаешь ли ты язык изнутри.
- Стандартная библиотека и строкиСтроки и стандартная библиотека — то, что ты пишешь каждый день, и по ним видно стаж: s += в цикле, decode без кодировки, naive-datetime в мультизонной системе — у каждого «шрама» тут...
- Типизация, GIL, окружениеGIL — вопрос-фильтр питон-собеса: «почему потоки не ускорили код?» разделяет тех, кто читал доки, и тех, кто ждал ускорения и не дождался.
Java: ядро языка
- Java: equals и hashCodeЛюбимая пара вопросов Java-собесов — и не случайно: по ней сразу видно, понимаешь ли ты, как работает HashMap. Кривой контракт не бросает исключений — он тихо теряет объекты в...
- Исключения в JavaПо исключениям интервьюер отличает «писал код» от «сопровождал код»: иерархию расскажет любой, а вот что делать с ошибкой — где ловить, что логировать, как не потерять первопричину —...
- Records, sealed и switch в JavaВопросы про фичи 14–21 проверяют одно: живёшь ли ты в актуальном языке или пишешь Java-8-код в 21-й. Компании на LTS 17/21, и от кандидата ждут свободного владения record, sealed и...
- ООП и полиморфизм в JavaООП — открывашка почти любого Java-собеса. Зазубренные «инкапсуляция-наследование-полиморфизм» никого не впечатляют: проверяют, понимаешь ли ты, КАК это работает — кто выбирает метод...
- Типы, обёртки и String в JavaТема выглядит джуновой, но именно здесь чаще всего заваливают «что напечатает этот код». Проверяют границы: где == врёт, что делает автобоксинг втихую, почему строка «не поменялась» и...
Тесты в Python
- Тестирование асинхронного кодаAsync-код тестируется не так, как обычный: pytest сам не выполнит корутину, MagicMock ломает await, а фикстуры привязаны к event loop.
- Фикстуры и моки в pytestФикстуры и моки — сердце нетривиального теста, и именно тут кроются самые коварные баги: patch, который «не срабатывает», и session-фикстура, связывающая тесты в флаки.
- Pytest: основыpytest — стандарт тестирования в Python, и собес по нему проверяет, пишешь ли ты идиоматично или тащишь привычки из unittest.
- TDD и покрытие тестамиTDD и покрытие — тема, где много карго-культа: люди зовут TDD написание тестов после кода и молятся на 100% coverage.
- Тестовые данные и контейнерыСтабильность тестового набора держится на двух вещах: как ты готовишь данные и как изолируешь тесты друг от друга.
- Виды тестов и дублёры в PythonПонимание, где юнит, где интеграция и что мокать, — граница между тестами, которые ловят баги, и тавтологией, которая зелёная при сломанном коде.
Автоматизация тестирования
- Стратегия автоматизации тестовАвтоматизация — это про экономику, а не про «автоматизировать всё». Собес проверяет, понимаешь ли ты, что автоматизируют многократное и стабильное, а сопровождение — главная скрытая...
- Автотесты в CIАвтотесты имеют ценность, только когда живут в CI и блокируют плохой мерж. Собес проверяет, умеешь ли ты выстроить прогон по скорости и почему параллелизация требует изоляции.
- Паттерны автотестовАвтотесты — это код, и без структуры они превращаются в неподдерживаемую копипасту. Собес проверяет, знаешь ли ты Page Object и понимаешь ли, зачем разделять слои и где живут ассерты.
- Надёжность автотестовФлаки-тесты — главный убийца автоматизации: они разрушают доверие к прогону. Собес проверяет, понимаешь ли ты источники флаков и что перезапуск до зелёного — не решение.
- UI-автоматизация тестовUI-тесты самые хрупкие в пирамиде, и их стабильность держится на двух вещах: устойчивых локаторах и правильных ожиданиях.
- Git для автоматизатораАвтотесты живут в том же репозитории, что и код, поэтому AQA обязан владеть git на рабочем уровне. Собес проверяет базу: ветки, merge против rebase, конфликты, и понимание, что...
Stream API
- Коллекторы и группировка в JavaКоллекторы — то, чем стримы полезны в проде: groupingBy и компания заменяют ручные циклы с мапами-аккумуляторами.
- Лямбды и функциональные интерфейсыЛямбды и функциональные интерфейсы — язык, на котором написана вся Java после восьмёрки: стримы, Optional, CompletableFuture.
- Optional и работа с nullOptional — маленький класс с большой идеей: сделать «значения может не быть» частью сигнатуры, чтобы вызывающий не мог забыть про этот случай.
- Операции Stream APIСтримы спрашивают на каждом Java-собесе, и главный отсев — не знание методов, а понимание модели: конвейер ленив, исполняется терминальной операцией и одноразов.
- Stream API: продвинутые приёмыПродвинутый блок стримов — почти всегда про параллельность: интервьюеры любят ловить на «добавлю parallel и станет быстрее».
Java-веб
- Дизайн API в JavaAPI проектируют не на сегодня, а на годы вперёд с чужими клиентами, которых нельзя обновить по щелчку. Отсюда весь разговор: версионирование, обратная совместимость, контракт.
- HTTP и REST в JavaREST держится на договорённостях HTTP: какой метод что означает, какой статус когда, что можно ретраить. Бэкендер, который путает 401 с 403 или ретраит неидемпотентный POST,...
- Очереди и Kafka в JavaОчереди и логи разъединяют сервисы во времени: продюсер и консьюмер не знают друг о друге, буфер гасит пики, потребитель может полежать.
- Микросервисы на JavaМикросервисы — это сделка: покупаешь независимость деплоя и команд, платишь распределённостью. Зрелый ответ на собесе — не «как нарезать», а «когда не нарезать» и чем платишь, если всё...
- Аутентификация и защита в JavaБезопасность бэкенда начинается с двух разных вопросов: «кто ты» и «что тебе можно». Их путают, и на стыке живёт самая частая уязвимость — доступ к чужому объекту.
JVM и сборка мусора
- Загрузка классов в JVMКласслоадинг кажется теорией — ровно до первого «X cannot be cast to X» в контейнере или NoClassDefFoundError в проде при зелёной сборке.
- Диагностика утечек памяти в JavaСеньорская часть JVM-собеса — не теория, а сценарии: «сервис падает с OOM раз в сутки», «латентность выросла втрое», «под завязку потоков».
- Сборка мусора в JVMВопросы про GC проверяют не заучивание сборщиков, а понимание сделки: автоматическая память в обмен на паузы и CPU.
- JIT и исполнение байткодаВопросы про исполнение кода проверяют зрелость: понимаешь ли ты, что между .class и процессором стоит JIT-компилятор, который на лету переписывает горячий код в агрессивно...
- Модель памяти JVM«Расскажи про память JVM» — вопрос-открывашка любого разговора про перформанс. За ним проверяют базу: где живут объекты, чем стек отличается от кучи, почему OutOfMemoryError бывает...
Рантайм Python
- CPython и сборка мусораУправление памятью в CPython любят на собесе, потому что ответ разделяет тех, кто понимает механику, и тех, кто путает GC с GIL.
- Упаковка и зависимости Python«У меня работало» почти всегда про зависимости: непинованные версии и глобальная установка. Собес проверяет, понимаешь ли ты venv, пины и lock-файлы — то, что делает сборку...
- Профилирование Python-кодаОптимизация — область, где интуиция особенно часто врёт, и собес проверяет дисциплину: начинаешь ли ты с замера или лезешь ускорять python-циклы, пока всё время съедает БД.
- Модель памяти PythonПоловина «странных» багов Python растёт из одного корня: имя — это ссылка на объект, а не ячейка со значением. Собес проверяет эту модель через изменяемые дефолты, is против ==,...
- Типизация и mypyТипы в Python — источник двойного недопонимания: одни ждут, что рантайм будет их проверять, другие путают Optional с необязательностью.
Теория тестирования
- Тест-документация и баг-репортыТест-кейсы и баг-репорты — рабочие артефакты тестировщика, и по их качеству видно уровень. Собес проверяет, различаешь ли ты severity и priority и умеешь ли писать воспроизводимый баг.
- Основы тестированияБаза QA — это несколько принципов ISTQB, которые проверяют не на зубрёжку, а на понимание: тестирование показывает наличие багов, но не их отсутствие, и всё упирается в приоритизацию...
- Уровни тестированияТестирование идёт уровнями — от юнита до приёмки, — и на каждом ловятся свои дефекты. Собес проверяет, понимаешь ли ты пирамиду тестирования и почему всё через E2E — плохая идея.
- Нефункциональное тестирование и нагрузкаНефункциональное тестирование проверяет не что система делает, а как: скорость, устойчивость, безопасность. Собес проверяет, понимаешь ли ты перцентили латентности и что нагрузка без...
- Процессы и инструменты тестированияРабочий инструментарий тестировщика — это TMS, баг-трекер, тестовые среды и данные, логи и DevTools. Собес проверяет, умеешь ли ты локализовать баг до слоя, а не репортить «фронт...
- Логи и наблюдаемость для тестировщикаЗрелый QA не считает прод чёрным ящиком: логи, метрики и трейсы — источник правды о дефектах, которые тестовая среда не показала.
- STLC: процесс тестированияТестирование — это процесс со своими этапами и артефактами, а не «прогнать кейсы в конце». Собес проверяет, понимаешь ли ты shift-left и роль критериев входа и выхода.
- Виды тестированияТестирование классифицируют по разным осям — что проверяем, знаем ли внутренности, выполняем ли код. Собес проверяет, различаешь ли ты ретест и регресс и понимаешь ли, что...
- Граничные значенияБаги концентрируются на границах диапазонов, а не в их середине: там живут off-by-one и путаница < против <=. Собес проверяет, тестируешь ли ты ровно границу с соседями и помнишь ли...
- Комбинаторные техники и опытКогда параметров много, полный перебор конфигураций взрывается комбинаторно — спасает pairwise. А там, где формальные техники заканчиваются, работают error guessing и исследовательские...
- Таблицы решенийКогда результат зависит от комбинации условий, порознь их не проверить — нужна таблица решений. Собес проверяет, умеешь ли ты строить её полной перед свёрткой и понимаешь ли, что её...
- Классы эквивалентностиКлассы эквивалентности — базовая техника тест-дизайна: вместо перебора всех значений берут по одному представителю от группы, которая обрабатывается одинаково.
- Состояния и переходыСущности с жизненным циклом — заказ, платёж, подписка — тестируют по состояниям и переходам. Собес проверяет, ищешь ли ты недопустимые переходы систематически и помнишь ли, что события...
Владение и лайфтаймы
- Владение и перемещение в RustВладение — то, ради чего Rust затевался: у значения один владелец, конец владения означает освобождение, а передача по значению перемещает владение и делает старое имя недоступным.
- Заимствование и правило одной изменяемой ссылкиЛибо сколько угодно неизменяемых ссылок, либо ровно одна изменяемая. Это правило закрывает целый класс багов, и проверяет его компилятор, а не рантайм.
- Лайфтаймы в RustЛайфтайм не продлевает жизнь значения, а описывает связь: результат живёт не дольше аргумента. Разбираем elision, ошибку E0106 и два смысла 'static.
- Умные указатели в Rust: Box, Rc, ArcУмные указатели спрашивают, чтобы понять, умеешь ли ты выбирать способ владения под задачу. Box, Rc, Arc, Weak — каждый закрывает свой случай, и путать их...
- Interior mutability в RustВопрос уровня middle: как менять значение через общую ссылку, если правило XOR это запрещает. Спрашивают про Cell и RefCell, про разницу проверок компилятором и...
- Drop и RAII в RustТут проверяют понимание жизненного цикла ресурсов: когда вызывается деструктор, в каком порядке, можно ли его позвать руками и гарантирован ли он вообще. Вопрос...
Трейты и дженерики
- Структуры и enum в RustКаждый вариант enum может нести свои данные — на этом построены Option и Result. Разбираем размер типа, non_exhaustive и моделирование состояний.
- Трейты в RustТрейт описывает поведение без состояния: полей нет, наследования нет, а реализовать его можно даже для чужого типа. Разбираем default-методы и супертрейты.
- Замыкания в Rust: Fn, FnMut и FnOnceСпрашивают почти на каждом собесе и почти всегда одинаково. По ответу видно, понимаешь ли ты, что замыкание — это структура с захваченным окружением, а не просто кусок кода.
- Дженерики в RustЗдесь смотрят, понимаешь ли ты цену абстракции. Спрашивают, что делает компилятор с дженерик-функцией, зачем нужны trait bounds, откуда берётся странная ошибка...
- impl Trait и dyn TraitВыбор между impl Trait и dyn Trait — ежедневное решение, и его любят спрашивать. Проверяют, знаешь ли ты, что такое трейт-объект физически, сколько он стоит и...
- Ассоциированные типы в RustВопрос, который отделяет тех, кто писал свои абстракции, от тех, кто только пользовался чужими. Спрашивают, почему у Iterator тип элемента ассоциированный, а у...
- Orphan rule и newtype в RustПрактический блок: почему нельзя реализовать Display для Vec<u8>, как это обходят и во что обходится обёртка. Заодно проверяют понимание, зачем языку вообще...
Async и tokio
- Рантайм tokio: как устроен асинхронный RustПочему в стандартной библиотеке нет исполнителя, из чего состоит tokio и когда однопоточный рантайм лучше многопоточного. Дальше обычно идёт практика: что будет, если внутри задачи оказался тяжёлый цикл.
- Future и поллинг в RustАсинхронность в Rust устроена не так, как в JavaScript или Go, и на собесе это проверяют первым делом. Спрашивают, что происходит при вызове async-функции без...
- Задачи в tokio: spawn и joinПрактический блок: как получить настоящую конкурентность. Спрашивают разницу между двумя await подряд, join! и spawn — и что произойдёт, если задача паникует.
- select! и отмена в tokioТема, где начинается настоящая асинхронная инженерия. Спрашивают, что делает select! с проигравшими ветками, что такое cancel safety и как правильно...
- async в трейтах и PinПродвинутый блок: как async уживается с трейтами и зачем вообще нужен Pin. Спрашивают, что изменилось в 1.75, зачем всё ещё нужен async_trait и почему future...
- Ловушки async в RustФинальный блок — про то, что ломается в проде. Мьютексы через await, безграничные каналы, скачущий хвост задержек. Вопросы задают в форме разбора инцидента, и...
Многопоточность Rust
- Потоки в Rust: spawn, join и scopeС потоков начинается вся многопоточная секция собеса: почему spawn требует move, что возвращает join, чем хорош thread::scope и почему поток на задачу — плохая идея под нагрузкой.
- Send и Sync в RustДва трейта, на которых держится вся потокобезопасность языка. Спрашивают, чем они отличаются, кто их реализует, почему Rc нельзя в поток и когда пишут unsafe impl.
- Mutex, RwLock и Arc в RustПрактическая часть: как защитить общее состояние. Спрашивают про связку Arc<Mutex<T>>, момент снятия блокировки, отравление и выбор между Mutex и RwLock. Плюс...
- Каналы mpsc в RustКаналы — второй способ организовать многопоточность: вместо общего состояния передавать владение. Спрашивают, что означает mpsc, когда завершается цикл приёма и...
- Атомики и memory ordering в RustСамая сеньорская часть блока. Спрашивают, что делает fetch_add, чем Relaxed отличается от SeqCst и какая пара нужна для публикации данных через флаг. Здесь...
- Паттерны параллелизма в RustФинальный блок: как всё это применяют. Спрашивают про rayon, воровство задач, почему параллельные счётчики не ускоряются и что делать с мьютексом-узким-местом.
Тестирование на Java
- JUnit 5: основыУмение писать тесты — маркер инженерной зрелости бэкендера: джун знает синтаксис @Test, мидл понимает, что тест должен быть изолированным и честным. На собесе...
- Mockito: моки и стабыМоки — способ проверить логику в изоляции от медленных и внешних зависимостей: БД, HTTP, очередей. Собес проверяет не синтаксис when-then, а понимание границ...
- Spring Test: контекст и слайсыSpring-тесты — про баланс скорости и достоверности: поднять весь контекст легко, но сюита из сотен @SpringBootTest ползёт минутами. Собес проверяет, знаешь ли ты...
- Интеграционные тесты и TestcontainersИнтеграционные тесты закрывают то, что юнит с моками проверить не может: реальный SQL, схему, сеть, очереди. Собес проверяет, понимаешь ли ты пирамиду и зачем...
- TDD и практики тестированияПрактики отделяют того, кто пишет тесты ради галочки, от того, кто ими пользуется. Собес заходит через TDD, покрытие и флаки — и слушает, понимаешь ли ты, что...
Основы Rust
- Типы, let и mut в RustС этого начинают почти любой Rust-собес: чем mut отличается от повторного let, что будет при переполнении, почему as молча портит число. Проверяют не зубрёжку...
- match и Option в RustЗдесь проверяют, умеешь ли ты работать с отсутствием значения без null. Спрашивают, почему match обязан покрыть все варианты, чем if let отличается от let else...
- Модули и видимость в RustВопросы про модули выглядят скучно, но отвечают на них плохо. Спрашивают, что видно по умолчанию, чем pub(crate) отличается от pub, зачем pub use. За этим стоит...
Ошибки в Rust
- Result и Option в RustОбработка ошибок в Rust — это работа с обычными значениями, без исключений. Спрашивают, чем Result отличается от Option по смыслу, что будет с проигнорированным...
- Оператор ? и From в RustГлавный инструмент повседневной работы с ошибками. Спрашивают, что он делает, почему иногда не компилируется, работает ли с Option и что происходит с локальными...
- Свои типы ошибок в RustДальше базового уровня спрашивают, как устроен собственный тип ошибки: какие трейты нужны, зачем source, почему enum лучше строки. Здесь видно, проектировал ли...
- panic, unwrap и expect в RustПро панику спрашивают, чтобы понять твоё чувство границы: что считать багом, а что нормальным сбоем. Плюс механика — unwind против abort, поведение в потоках...
- thiserror и anyhowПрактический блок про экосистему: чем эти два крейта отличаются, где какой уместен, как достать конкретный тип из стёртой ошибки. Вопрос любят, потому что ответ...
unsafe и производительность Rust
- Сырые указатели и UB в RustЗдесь проверяют границу между ссылкой и указателем: что гарантирует первая, чего не обещает второй и где именно нужен unsafe.
- FFI и repr(C) в RustПрактический блок для тех, кто интегрирует Rust в существующий стек. Спрашивают про repr(C), передачу строк и что делать с паникой на границе.
- Раскладка памяти в RustБлок для тех, кто работает с бинарными форматами и производительностью. Спрашивают про размеры, выравнивание, packed и transmute.
- Zero-cost абстракции в RustЗдесь проверяют, отличаешь ли ты лозунги от практики. Спрашивают, что значит zero-cost, быстрее ли итераторы индексов и что делать, если профиль показывает...
- Бенчмарки и профилирование в RustЗавершающий блок: как измерять. Спрашивают, почему бенчмарк показал ноль, зачем criterion и чем бенчмарк отличается от профилирования.
Экосистема Rust
- Тестирование в RustСпрашивают, где живут тесты, что такое doc-тесты и как подменять зависимости без рефлексии. Последний вопрос — фактически про архитектуру, поэтому отвечать на...
- Макросы в RustПро макросы спрашивают дважды: сначала чем декларативные отличаются от процедурных, потом — когда их вообще стоит писать. Второй вопрос важнее, потому что чаще...
- serde: сериализация в RustПрактически обязательный крейт, поэтому его знание проверяют почти всегда. Спрашивают, что делает derive, как справиться с расхождением имён и что будет с лишним...
- Веб-стек и базы в RustПрикладной блок для бэкенд-вакансий. Спрашивают про выбор между sqlx и diesel, зачем пул соединений, как устроены обработчики в axum и куда девать ошибки.
- clippy, rustfmt и miriЗаключительный блок про инженерную гигиену: линтеры, безопасность зависимостей, фиксация тулчейна, образы для прода. Вопросы простые, но по ответам видно...
разное
- Строки в Rust: String и &strString владеет буфером в куче, &str — заимствованный срез UTF-8. Отсюда правило API, длина в байтах вместо символов и запрет на индексацию по номеру.
- unsafe в Rustunsafe не выключает проверки компилятора: он даёт доступ к пяти операциям, корректность которых проверить нельзя. Разбираем безопасные абстракции и Miri.
- Cargo: зависимости, версии и сборкаCargo.toml описывает диапазоны версий, Cargo.lock фиксирует выбранные. Разбираем правило caret, аддитивность фич, workspace и что делать с медленной сборкой.
- Векторы, HashMap и итераторы в RustКоллекции спрашивают, чтобы понять, знаешь ли ты цену операций: что происходит при push в заполненный вектор, зачем нужен entry и почему map без потребителя не делает ничего.
как этим пользоваться
Конспект читается за пять минут. Дальше нужна практика
Теория закрывает пробел, но на собесе спрашивают вслух и без подсказок. В тренажёре те же темы идут ежедневными сессиями вопросов с разбором, а движок возвращает то, где вы ошибаетесь. Бесплатно, лимит по энергии.