Лид: семь дней и холодный пот
Вы — Senior. Вы проектировали отказоустойчивые системы, наставляли джуниоров и вывозили продакшн в 3 часа ночи. Но сейчас, за 7 дней до технического интервью, вас накрывает холодный пот. Знакомо?
В этом материале нет воды. Только тактический план, разделённый на два сценария: «Я готовился» и «Я в панике». Честно признайтесь себе, в каком вы состоянии, и следуйте своему маршруту.
Пока читаете — не зубрите в одиночку: мок с живым инженером ловит давление, экспресс-квиз — дыру в теме, которая вызывает сопротивление.
Сценарий А: «Я в тонусе» (полировка)
Вы решали задачи последние 1–2 месяца. Списки, деревья и динамика уже не вызывают дрожи в коленях.
Ваша цель — не выучить новое, а отполировать старое до блеска.
- Аудит слабых мест. Откройте список тем. Какая вызывает внутреннее сопротивление? Уделите ей 2 часа, но без фанатизма. Дыру быстрее поймает экспресс-квиз, чем очередной Hard «на всякий случай».
- Повторное решение. Возьмите задачу, которую решили месяц назад, и перерешайте с листа, засекая время. Если справились за 25 минут — вы готовы. Тот же таймер и голос отрабатываются на моке.
- Компания. Перестаньте учить алгоритмы. Начните изучать бизнес компании. Зачем им Senior? Какие у них боли в архитектуре? Стек и формулировки — в вакансиях, боли масштабирования — хотя бы в разборе вроде system design Amazon.
Сценарий Б: «Я ничего не делал» (триаж)
Интервью через 5 дней, а вы открыли LeetCode впервые за год.
Жёсткая правда: за 5 дней вы не станете гуру алгоритмов.
Ваше спасение: попросите перенести интервью на 2–3 недели. По опыту редакции, в 90% случаев HR идёт навстречу — это оценка риска, не слабость. Если перенос невозможен — режим жёсткой экономии времени: квиз на базу и мок на давление, а не сегментные деревья.
Недельный интенсив (5 дней)
Если слот не сдвинули — режьте объём, а не сон. Ниже не таблица на всю ширину экрана: четыре блока, как в исходном плане.
День 1 — структуры данных
Делать: Hash Maps (ваш швейцарский нож), динамические массивы и базовые операции с деревьями (DFS/BFS). Проверка понимания — экспресс, не клон LeetCode.
Пропустить: деревья отрезков, декартовы деревья, суффиксные массивы.
День 2 — графы и рекурсия
Делать: написать 3 алгоритма поиска путей. Отработать базовый шаблон рекурсии (база + шаг).
Пропустить: сложные графовые алгоритмы (потоки, мосты).
День 3 — фреймворк решения
Делать: алгоритм диалога с интервьюером (см. ниже). Решайте не молча, а проговаривая каждый шаг — на моке и заранее в ИИ-ассистенте.
Пропустить: решение задач в тишине.
Дни 4–5 — мок-собеседования
Делать: 2–3 мока с коллегами или на /find/. Цель — не решить, а выжить под давлением и услышать обратную связь.
Пропустить: смотреть разборы без практики написания кода.
Чек-лист: исследование компании (за 48 часов до интервью)
Не идите на собеседование вслепую. Senior обязан понимать контекст. Стек из JD удобно сверять с каталогом вакансий.
| Что проверяем | Зачем это Senior'у | Где искать |
|---|---|---|
| Технологический стек | Показать, что вы понимаете их выбор — или критикуете его аргументированно. | Job Description, GitHub компании. |
| Принципы лидерства (например, Amazon) | Собеседование строится вокруг этих ценностей. Приводите примеры из опыта, попадающие в эти рамки. | Сайт компании, Glassdoor. |
| Инженерный блог | Покажите, что вы в курсе их текущих проблем масштабирования. Упомяните это в System Design. | Medium, Habr, YouTube-каналы компании. |
Алгоритм разговора: не просто «Фибоначчи»
Для Junior главное — написать код. Для вас — спроектировать решение. Используйте этот шаблон в каждом раунде и отрабатывайте его на моке.
- Уточнение (3–5 мин): «Какие ограничения по памяти? Будет ли входной поток большим? Может ли быть null?»
- Брутфорс (2 мин): «В лоб это решается за O(n²), но на продакшене это убьёт базу. Давайте подумаем…»
- Оптимизация (10 мин): «Можно хеш-таблицу и снизить сложность до O(n). Пожертвуем памятью. Для нашего микросервиса это ок: данных мало».
- Написание кода: как Pull Request. Guard clauses, понятные имена, комментарии к сложным блокам. Читаемость лучше один раз показать в пет-проекте.
- Тестирование: не «всё работает». Краевые случаи:
[-1, -2], пустой массив, огромное число.
Диалог не выучить с листа
Брутфорс → O(n) звучит фальшиво, если вы произносите это первый раз на реальном собесе. Сначала — вслух.
Сильные стороны Senior-а (используйте их)
Забудьте о гонке за скоростью печати. Ваше преимущество — архитектурное мышление.
| Ваш скилл | Как показать на алгоритмической задаче |
|---|---|
| Масштабирование | «Если данных станет в 1000 раз больше, мы бы использовали не ArrayList, а партиционирование или внешнюю сортировку». |
| Отказоустойчивость | «Здесь нужны try-catch и ретраи с экспоненциальной задержкой, чтобы не положить сервис». |
| Читаемость кода | «Вынесу эту логику в отдельный приватный метод, чтобы не захламлять основной поток». Так же собирают пет-проект. |
| Дебаггинг | Если код не работает — не паникуйте. Мысленный отладчик: ручная трассировка стека, как в продакшене. |
Шпаргалка по сложности (Big O)
Перед входом в Zoom пробегитесь глазами. Это шпаргалка «для памяти», не отдельная колонка Space.
| Структура / операция | Вставка | Поиск | Удаление |
|---|---|---|---|
| Массив (Array) | O(n) | O(1) | O(n) |
| Связный список | O(1)* | O(n) | O(1)* |
| Хеш-таблица | O(1) | O(1) | O(1) |
| Двоичное дерево (BST) | O(log n) | O(log n) | O(log n) |
| Куча (Heap) | O(log n) | O(1)** | O(log n) |
* При вставке в голову/хвост. ** Поиск максимума/минимума.
День X: утренний ритуал
Не импровизируйте.
- Разминка. За час до созвона откройте простую задачу (типа FizzBuzz) и напишите её — разбудит моторную память пальцев. Не обещаем FizzBuzz в каталоге: сгодится любая лёгкая в экспрессе.
- Тишина. За 15 минут до начала закройте ноутбук, посмотрите в окно. Успокойте дыхание.
- Настройка. Цель — не «сдать экзамен», а провести техническую встречу с будущим коллегой. Вы оба инженеры.
Итог: философия успеха
Если вы читаете это за 3 дня до интервью — сделайте глубокий вдох. Вы не робот, который должен выдать идеальное решение за 20 минут.
Senior-инженера нанимают за решения в неопределённости и за коммуникацию. Если застряли — скажите:
Я вижу два пути. Первый — сложный, но оптимальный, требует времени. Второй — проще в реализации, но будет тормозить. Что бы вы выбрали для своего продакшена?
Такой диалог покажет уровень лучше, чем безупречный синтаксис. Так и надо звучать на моке.
Хотите бесплатный мок с фидбеком живого инженера — не зубрёжка алгоритмов: аккаунт, первый мок и квиз на слабое место.
Удачи. Вы справитесь. Это всего лишь разговор двух профессионалов.
Частые вопросы
Нажмите на вопрос — ответ откроется ниже.
Нет. Гуру за 5 дней не стать. Сначала просите перенос на 2–3 недели. Если нельзя — триаж: Hash Maps, DFS/BFS, шаблон рекурсии. Дыры — на экспресс-квизе, давление — на моке.
Нет. Для Senior это взрослая оценка риска, не слабость. По опыту редакции в большинстве случаев идут навстречу. Пока ждёте новую дату — мок, а не марафон разборов.
На senior-раунде смотрят проектирование. Молчание звучит как Junior, который просто пишет. Алгоритм разговора отрабатывается только вслух на моке.
Это разминка моторной памяти, не экзамен. Дальше 15 минут тишины. Простая задача в экспрессе вместо ещё одного Hard.
Произнесите развилку: оптимальный, но долгий против простого, но медленного на проде — и спросите, что выбрали бы они. Это сильнее безупречного синтаксиса. Так и надо звучать на моке.
Это разговор двух профессионалов
Проведите мок до дня X. Не зубрите сегментные деревья за пять ночей.
Также по теме: Когда интервьюер «плавает» · STAR-истории · System design в Amazon · ИИ на собеседовании