Вернуться в видеотекуОткрытое интервью на Go-разработчика | Эйч Навыки
Демонстрационное техническое интервью по Go с подробным разбором ответов кандидата и финальным фидбеком. В первой и заключительной частях организаторы рекламируют менторскую программу «Эйч Навыки».
- Направление
- Backend
- Формат
- Техническое собеседование
- Компания
Яндекс- Длительность
- 1 ч 50 мин
Коротко о видео
Это открытое мок-собеседование на Go-разработчика: после вводной части кандидат Дима отвечает на вопросы Сергея Мошкина о языке Go, рантайме, инфраструктуре и базах данных. Разбираются карты и слайсы, структуры и интерфейсы, GC, модель GMP, горутины, контексты, каналы, ошибки, тестирование, наблюдаемость, Docker, Kubernetes и шардирование. В финале интервьюер даёт кандидату положительную оценку уровня middle+ и называет зоны роста; организаторы также рассказывают о менторском абонементе «Эйч Навыки».
Затронутые темы
Что взять на заметку
- Для ключей map нужно знать требование сравнимости типов: нельзя использовать slice, map и function; struct допустима, если все её поля сравнимы. При известном размере map стоит задавать ёмкость, а для множества ключей использовать struct{} как значение.
- При передаче slice в функцию копируется заголовок, но исходный и переданный slice могут разделять backing array: сортировка изменит исходные элементы, а append внутри функции не изменит длину исходного slice, хотя может записать данные в общий массив.
- Подготовьте объяснение встраивания структур, отличий value- и pointer-receiver, выравнивания полей, устройства interface и цены type assertion. В интервью отдельно обсуждаются неявность утиной типизации и дополнительная работа при распаковке interface{}.
- Нужно различать отмену горутин через context или каналы и прямое «убийство», которого нет; для context.Value лучше скрывать типизированный ключ и доступ за функциями пакета, а не использовать строковый ключ напрямую.
- Для наблюдаемости разделяйте назначение инструментов: метрики показывают агрегированное состояние, tracing связывает путь запроса через сервисы, а профилирование помогает найти причину долгой работы внутри одного span.
- Для пакета Go полезно иметь внутренние тесты в том же package для приватных деталей и внешние тесты в package_test для публичного API; интервьюер прямо исправляет идею вовсе не тестировать приватные методы.
- По итогам обратной связи кандидату предложено углубить понимание памяти горутин, проектирования пакетов и Kubernetes; базовые темы Go, слайсы, интерфейсы и часть рантайма интервьюер оценил положительно.