Перейти к основному содержимому

Собеседование на Go-разработчика: реальные вопросы с ответами

Здесь собраны расшифровки настоящих собеседований на Go — не список вопросов из чужой подборки, а то, что реально спрашивали живые интервьюеры, вместе с ответами кандидатов и реакцией на эти ответы.

Каждый разбор устроен одинаково: вопрос, таймкод на момент в видео, ответ кандидата с пометкой «правильный» или «неправильный» и корректный ответ там, где кандидат ошибся. Это позволяет готовиться не по идеальным формулировкам, а по типичным ошибкам.

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

Всего разборов в этом разделе: 156. Каждый — расшифровка реального интервью с таймкодами: видно и вопрос интервьюера, и ответ кандидата, и оценку этого ответа.

По грейдам

Один и тот же вопрос на разных грейдах закрывается по-разному. Ориентируйтесь на позицию, на которую идёте:

Junior15 разборов

Проверяют базу языка и умение рассуждать вслух. Незнание частностей прощают, отсутствие структуры в ответе — нет.

Все разборы уровня Junior

Middle65 разборов

Спрашивают, как поведёт себя код в проде: гонки, отказы сети, нагрузка. Ждут примеров из реального опыта, а не пересказа документации.

Все разборы уровня Middle

Senior35 разборов

Основной вес — проектирование и обоснование решений. Разбирают компромиссы, стоимость поддержки и то, как вы вели чужие изменения.

Все разборы уровня Senior

По темам

Горутины, каналы и конкурентность56 разборов

Самая частая секция на собеседовании Go и главная причина отказов. Спрашивают не определение горутины, а поведение: что произойдёт при записи в закрытый канал, чем отличается nil-канал от закрытого, почему select без default блокируется, как отменить группу горутин. Дальше идут гонки данных — просят объяснить, что покажет race detector, и переписать код с мьютекса на канал или наоборот. На middle и senior добавляют worker pool, ограничение параллелизма через семафор и errgroup.

Слайсы, мапы и структуры данных9 разборов

Классический блок ловушек. Слайс — это заголовок с указателем на массив, и почти все вопросы крутятся вокруг этого: что вернёт append при нехватке capacity, почему изменение подслайса меняет исходный, как правильно удалить элемент без утечки. По мапам спрашивают порядок обхода, поведение при чтении отсутствующего ключа, почему нельзя взять адрес элемента мапы и что происходит при конкурентной записи. Разборы ниже показывают, как кандидаты на этом спотыкаются.

Память, сборщик мусора и указатели5 разборов

Секция, где отделяют middle от senior. Стандартный набор: стек против кучи и как работает escape-анализ, почему возврат указателя на локальную переменную безопасен в Go, зачем нужен pointer receiver и когда value receiver ломает логику. По GC спрашивают про трёхцветную маркировку, stop-the-world паузы, write barrier и настройку GOGC. Отдельно — типовые утечки: подслайс, удерживающий большой массив, незакрытые горутины, забытый context.CancelFunc.

Интерфейсы, context, ошибки и defer2 разборов

Проверка того, насколько вы понимаете модель языка, а не синтаксис. По интерфейсам — почему интерфейс с nil-значением внутри не равен nil, как устроен iface/eface, зачем нужен type switch. По context — как отмена распространяется по дереву, чем WithTimeout отличается от WithDeadline, почему context нельзя класть в структуру. По ошибкам — обёртки через %w, errors.Is и errors.As, когда паника уместна. По defer — порядок выполнения, работа с именованными возвращаемыми значениями и цена defer в горячем цикле.

System design и архитектура сервисов22 разборов

Секция на middle+ и почти всегда на senior. Формат один: расплывчатая задача вроде «спроектируй ленту» или «сделай сокращатель ссылок», от вас ждут уточняющих вопросов до того, как вы начнёте рисовать. Оценивают сбор требований, прикидку нагрузки в цифрах, выбор хранилища с обоснованием, стратегию кэширования, поведение при отказе компонента. Готовое решение из статьи без объяснения компромиссов засчитывают редко.

Базы данных, брокеры и инфраструктура26 разборов

Практический блок про то, с чем Go-сервис живёт в проде. По базам — уровни изоляции транзакций, индексы и планы запросов, N+1, дедлоки, пулы соединений. По Kafka и очередям — гарантии доставки, идемпотентность консьюмера, порядок сообщений, ребалансировка. По инфраструктуре — graceful shutdown, health-чеки, деплой в Kubernetes, ретраи и таймауты во внешних вызовах. На этих вопросах хорошо видно, работал ли кандидат с нагрузкой.

Live-coding и задачи23 разборов

Секция, где просят писать код при интервьюере. Задачи обычно небольшие: обработать слайс, развернуть строку с учётом рун, реализовать LRU, распараллелить обработку с ограничением по количеству горутин. Оценивают не столько итоговое решение, сколько проговаривание плана, обработку краевых случаев и реакцию на подсказку. В разборах ниже видно, где кандидаты молчат и теряют баллы.

Полные разборы интервью

Все разборы

Полный список разборов (156) →