Вернуться в каталог собеседований

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

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

it-interview
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 71,7 тыс.
  • Лайки на YouTube: 1,5 тыс.
Открыть на 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 после их завершения.

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