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

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

Учебное открытое Go-собеседование с разбором типичных технических вопросов, практических задач и рекомендациями по поведению кандидата на интервью.

Источник: Эйч Навыки — менторская программа

Открыть на YouTube

Таймлайн

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

Открытый учебный разбор собеседования на Middle Go-разработчика: кандидат отвечает на теоретические вопросы и решает задачи, а интервьюер Александр Сахаров комментирует ход рассуждений. Разбирают слайсы, указатели, map, каналы, горутины, интерфейсы и алгоритмическую задачу о стеке с минимумом, затем дают подробный фидбэк и отвечают на вопросы о подготовке, курсе и карьерном старте.

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

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

  • При передаче слайса в функцию копируется его заголовок (указатель, длина и capacity), поэтому результат append нужно возвращать или явно менять длину слайса у вызывающего кода.
  • В собеседовании полезно разбирать код последовательно вслух: проговаривать гипотезу, план и назначение переменных, а не молча писать решение.
  • Конкурентный доступ к map требует синхронизации не только записи, но и чтения, если параллельно возможны изменения и рост map; map следует инициализировать через make.
  • Закрывать канал должен отправитель после завершения всех отправляющих горутин; для этого подходит отдельная горутина с WaitGroup. Чтение из уже закрытого канала без проверки может давать нулевые значения и приводить к ошибочному циклу.
  • Интерфейс с типизированным nil-указателем не равен nil, потому что в интерфейсе сохранён динамический тип; такие случаи стоит покрывать тестами.
  • Для стека с операцией Min за O(1) можно хранить отдельный стек минимумов, добавляя новое значение при условии «меньше или равно текущему минимуму» и удаляя его синхронно с основным стеком.

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