Алгоритмическая секция и секция на кодинг: какие задачи дают и как их решать вслух
Темы и классические задачи — от двух сумм до слияния интервалов, план часа на секции, практические задачи вроде LRU-кэша и пула воркеров и тренажёр с таймером.
Почти в любой крупной IT-компании технических секций две разновидности. Алгоритмическая — абстрактная задача на структуры данных, где важны идея и сложность. Секция на кодинг — практическая задача, похожая на работу: классы, тесты, обработка ошибок, иногда многопоточность. Готовиться к ним нужно по-разному. Ниже — как обе проходят в Яндексе, Т-Банке, Сбере, Авито и VK, какие задачи встречаются чаще всего и как вести себя на секции.
Алгоритмическая секция: что это
| Компания | Формат |
|---|---|
| Яндекс | «Проверка базовых технических навыков»: две задачи за час в онлайн-редакторе, независимо от языка. Нужно обосновать выбор методов и их стоимость. |
| Т-Банк | Отдельная секция на 60 минут: абстрактные задачи, оценка сложности, ясный код. |
| VK | 30 минут алгоритмов в связке с 30 минутами технических вопросов. |
| Авито | Секция «Программирование»: 1–2 задачи в онлайн-редакторе, можно писать на псевдокоде и пользоваться библиотечными функциями. |
| Сбер | Задача уровня easy или ревью кода на техническом интервью; лайвкодинг 15–30 минут. |
Общее у всех: уровень — easy и medium по классификации LeetCode, олимпиадные задачи не нужны. Код обычно пишут без запуска и без подсказок IDE, поэтому проверять его придётся головой — прогоном на примере.
Какие темы спрашивают
Яндекс прямо перечисляет теги, по которым стоит тренироваться: массивы, строки, деревья, бинарный поиск, хеш-таблицы, обход в глубину и в ширину, два указателя, стек, перебор с возвратом. У Т-Банка список почти тот же: строки, списки, деревья, ассоциативные массивы, поиск в коллекциях, обход деревьев, сортировки, динамическое программирование и О-нотация. Отсюда карта тем:
| Тема | Приём | Классические задачи | Разобраться |
|---|---|---|---|
| Хеш-таблицы | посчитать, найти пару, сгруппировать за O(n) | Две суммы, анаграммы | хеш-таблица |
| Два указателя | отсортированный массив, сжатие на месте | контейнер с водой, переместить нули | |
| Скользящее окно | подстрока или подмассив с условием | подстрока без повторов | |
| Интервалы | сортировка по началу + один проход | слияние интервалов, пересечение | сортировки |
| Стек | парность, «ближайший больший» | скобки, стек с минимумом | |
| Бинарный поиск | отсортированные данные, поиск границы | бинарный поиск | бинарный поиск |
| Деревья | рекурсия, обход, границы значений | проверить BST, обход по уровням | дерево поиска |
| Графы | BFS/DFS, посещённые вершины | острова, расписание курсов | обход в ширину и глубину |
| Куча | top-K, слияние потоков | топ-K частых | куча |
| Динамика | ответ из ответов на меньшие задачи | лестница | динамическое программирование |
На страницах Acody в правой колонке — интерактивные модели: можно пошагово посмотреть, как работают хеш-таблица, бинарный поиск, обход графа или куча. И везде пригодится оценка сложности: что такое O-нотация.
Пример: слияние интервалов
Одна из самых узнаваемых задач: дан список отрезков [[1,3],[2,6],[8,10],[15,18]], нужно слить пересекающиеся — получится [[1,6],[8,10],[15,18]]. На ней хорошо видно, как выглядит хороший ответ на секции.
- Уточнить. Отрезки отсортированы? Касание
[1,2]и[2,3]— это пересечение? Может ли список быть пустым? Можно ли менять входной список? - Идея. Если отсортировать отрезки по началу, пересекающиеся окажутся рядом. Дальше один проход: если начало следующего не больше конца текущего — расширяем конец, иначе начинаем новый отрезок.
- Сложность. Сортировка — O(n log n), проход — O(n); память — O(n) на ответ.
- Код и прогон. Пишем и проверяем руками на примере и на крайних случаях.
def merge(intervals: list[list[int]]) -> list[list[int]]:
result = []
for start, end in sorted(intervals):
if result and start <= result[-1][1]:
result[-1][1] = max(result[-1][1], end) # пересекается — расширяем
else:
result.append([start, end]) # новый отрезок
return result
Частая ошибка — написать result[-1][1] = end вместо max(...): тогда на [[1,10],[2,3]] отрезок «сожмётся» до [1,3]. Именно такие места интервьюер ждёт, что вы найдёте сами при прогоне. Родственные задачи — вставка интервала, непересекающиеся интервалы, диапазоны в массиве.
Как вести себя на секции
- Уточнить условие · 5 мин
входные данные, ограничения, крайние случаи, пара примеров - Идея и сложность · 10 мин
наивное решение, потом лучше; оценка по времени и памяти — до кода - Код · 25 мин
проговаривая шаги; понятные имена, без лишних оптимизаций - Проверка · 10 мин
прогон на примере вручную, крайние случаи, исправления - Вторая задача или усложнение · 10 мин
часто дают вторую задачу или новую версию первой
Ориентир, а не правило: на секциях с двумя задачами каждую стоит укладывать в 25–30 минут.
- Не начинайте с кода. Пять минут на вопросы по условию почти никогда не бывают лишними: кандидат, рассказавший на Хабре о собеседованиях в Яндекс и VK, называет пропущенные уточнения своей главной ошибкой.
- Сначала наивное решение, потом лучше. Скажите вслух решение «в лоб» и его сложность, затем улучшайте. Это показывает ход мысли и страхует, если оптимальное не придёт.
- Думайте вслух. Об этом прямо просят Яндекс, Сбер и Авито: оценивают не только ответ, но и путь к нему. Молча написанный верный код оценят ниже.
- Принимайте подсказки. Подсказка интервьюера — не провал, а приглашение к диалогу. Сбер прямо пишет, что эксперты помогают, если кандидат ушёл не туда.
- Проверьте крайние случаи: пустой ввод, один элемент, дубликаты, отрицательные числа, всё одинаковое, уже отсортированное, переполнение.
Секция на кодинг: практическая задача
Здесь проверяют не знание алгоритмов, а то, как вы пишете рабочий код: интерфейсы, структуры данных, обработку ошибок, тесты, иногда конкурентность. Что обещают компании:
- Яндекс — 1,5 часа, задача, близкая к повседневной работе: написать код с нуля или доработать существующий. Java и Python — в своей IDE с демонстрацией экрана (для Java — обычно несколько классов и unit-тесты; для Python — автотесты на pytest, фича, оптимизация или исправление ошибок). Go — в онлайн-редакторе: горутины, пакет sync, каналы. Если останется время, дадут усложнение.
- Т-Банк — секция по языку и платформе: ревью кода и доработка под бизнес-задачу, разбор сценария сбоя, исправление многопоточного кода, задача на SQL. Для Go — асинхронная задача и примитивы языка.
- Сбер — ревью кода или небольшая задача на техническом интервью.
- VK — секция на кодинг в формате, похожем на яндексовский.
Типичные задачи такой секции, которые полезно уметь написать с тестами за час:
- LRU-кэш с ограничением по размеру — словарь плюс двусвязный список (условие).
- Хранилище «ключ — значение» с TTL: запись, чтение, истечение срока, очистка.
- Ограничитель запросов (rate limiter): token bucket или скользящее окно — подборка по highload.
- Пул воркеров с ограничением числа одновременных задач и корректным завершением — для Go и Java.
- Параллельный обход: например, обойти ссылки сайта не больше чем в N потоков и правильно понять, когда работа закончилась. Похожую задачу описывает кандидат на Хабре по собеседованию в Яндекс.
- Небольшой сервис в памяти с несколькими методами: добавить запись, обновить, получить топ — с обсуждением, как он поведёт себя на больших данных.
Что подготовить заранее:
- Пустой проект в IDE, где собираются и запускаются тесты (JUnit, pytest, go test) — Яндекс советует это прямо.
- Привычка писать тест сразу после первой рабочей версии, а не в конце.
- Уверенное знание стандартной библиотеки своего языка: коллекции, работа со временем, потоки и примитивы синхронизации.
- Выключенные AI-подсказки в IDE: на секциях Яндекса, Сбера и VK они запрещены, а Т-Банк пишет, что их использование заметно.
Тренажёр: случайная задача и таймер
Получите задачу, нажмите «Старт» и решайте вслух — на бумаге или в редакторе без автодополнения. Таймер подскажет, чем заняться на каждом отрезке. Лучше всего — с другом в роли интервьюера.
Где тренироваться
- LeetCode — задачи easy и medium по тегам из таблицы выше; этот совет дают и Яндекс, и Сбер, и Авито.
- CodeRun — тренажёр Яндекса с задачами в формате их собеседований.
- «Как пройти алгоритмическое собеседование в Яндекс» — гайд от самого Яндекса.
- Основы computer science на Acody — теория к собеседованию с короткими ответами и разбором частых ошибок.
Решать вслух — отдельный навык
Задачи можно решать в одиночку, а объяснять решение — только собеседнику. Проведите пробную секцию с другом: он читает условие и задаёт вопросы, вы решаете вслух. sotto распознает разговор и после звонка разберёт, где объяснение было ясным, а где вы поплыли.
Как устроены собеседования целиком — в обзоре «Как проходят собеседования в Яндекс, Т-Банк, Сбер, Авито, VK и Ozon». В каких программах их проводят — в статье о Телемосте, SaluteJazz и других сервисах.
Источники и дата проверки
Проверено 16 октября 2026.
- Яндекс: «Как мы нанимаем бэкенд-разработчиков» — секция на кодинг по языкам, проверка базовых навыков, теги для тренировки, запрет AI-ассистентов.
- Т-Банк: страницы интервью по Java, Go, Python — секции по языку и алгоритмам, темы.
- Сбер: подготовка Java-разработчика, «Как проходят технические собеседования в Сбере».
- Авито: этапы отбора в Авито Tech.
- VK: по опыту кандидатов на бэкенд-позиции в 2026 году.
- Рассказ кандидата: «Собеседования в Яндекс и ВК (бэкенд, февраль 2026)» на Хабре.
Ещё в разделе «Собеседования»
System design для начинающих: как проходит секция, план на час и калькулятор нагрузки
9 мин
HR-собеседование и поведенческие вопросы: метод STAR и 20 вопросов, к которым стоит подготовить истории
9 мин
Что спросить у интервьюера в конце собеседования: список вопросов, из которого можно выбрать свои
5 мин