Вернуться в видеотеку

Mock-собеседование по Go (Junior) от Team Lead из Ozon

Мок-интервью по Go для Junior-разработчика с разбором задач на поведение кода и итоговой обратной связью. Основной акцент — внутреннее устройство базовых конструкций Go и конкурентность.

Источник: it-interview

Открыть на YouTube

Таймлайн

Коротко о видео

Это мок-собеседование на позицию Junior Go-разработчика: интервьюер проверяет понимание базовых типов, строк, слайсов, map, интерфейсов, defer, замыканий и конкурентности через короткие задачи на чтение кода. Кандидат рассуждает о поведении программ без компиляции, а интервьюер уточняет важные детали: руны в range, общий backing array у слайсов, typed nil в интерфейсе, порядок defer и безопасную работу с общими данными. В финале кандидат и интервьюер разбирают сильные стороны и темы для дальнейшей подготовки.

Затронутые темы

Что взять на заметку

  • Повторить строки в Go: строка неизменяема, range по строке возвращает байтовый индекс и rune; string(rune) нужен для печати символа, а не его числового кода.
  • Уметь пошагово разбирать слайсы: header содержит указатель, len и cap; слайсы могут разделять backing array, а append при нехватке capacity создаёт новый массив. Рост capacity не стоит описывать как всегда строгое удвоение — он зависит от runtime и размера элемента.
  • Для map закрепить: порядок обхода не гарантирован; ключ должен быть comparable; массивы и структуры допустимы, если сравнимы их элементы; map[T]struct{} подходит для множества без хранения отдельного значения.
  • Разобрать интерфейсы на примере typed nil: интерфейс с заданным динамическим типом и nil-значением внутри сам не равен nil.
  • Практиковать defer и замыкания: аргументы deferred-вызова вычисляются в момент defer, замыкание выполняется позже и видит захваченную переменную; несколько defer выполняются в LIFO-порядке.
  • Для конкурентных задач отработать Mutex/RWMutex, atomic, WaitGroup и каналы: map нужно защищать и при конкурентном чтении, а ожидание горутин нельзя заменять sleep.
  • Уметь написать fan-in для каналов: отдельная горутина читает каждый входной канал в общий out, WaitGroup ждёт всех читателей, а отдельная горутина закрывает out после их завершения.

Рекомендуем посмотреть

30 мин
BackendSenior

Mock-собеседование старшего Go разработчика из Тинькофф | Самое полное интервью

Длинное мок-собеседование по внутреннему устройству конкурентности в Go. Вопросы переходят от горутин и планировщика к примитивам синхронизации, архитектуре серверов и низкоуровневым аспектам процессоров.

2 ч 1 мин
Backend

Открытое собеседование на Go-разработчика | Навыки

Длинное открытое мок-интервью по Go с разбором фундаментальных тем языка, конкурентности, инфраструктуры и проектирования систем. В конце — обратная связь кандидату, карьерные вопросы и презентация менторской программы.