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

Mock - собеседование от Team Lead из VK (секция Go)

Запись мок-собеседования по Go с тремя алгоритмическими задачами и разбором ключевых структур данных и конкурентных примитивов языка.

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

Открыть на YouTube

Таймлайн

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

Это мок-собеседование по Go, в котором кандидат решает задачи на поиск уникального числа, поиск подстроки и слияние двух каналов. После задач собеседующие разбирают устройство map, строк, каналов и слайсов в Go: хеш-коллизии, байты и руны, select, закрытие и буферизацию каналов, len/capacity слайсов. В авторском отзыве отмечено, что кандидат в целом рассуждает верно, но ему стоит закрепить практику и детали языка Go.

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

  • Для поиска уникального числа рассматривается множество на базе map: это даёт линейное время и линейную дополнительную память.
  • Нужно уметь объяснить, почему поиск по map обычно O(1), что такое хеш-коллизии и почему худший случай может быть линейным.
  • Поиск подстроки кандидат начинает с вложенных циклов и сравнения символов; важно заранее назвать сложность такого решения и его крайние случаи.
  • Стоит различать байты и руны в строках Go, а также понимать, что обращение по индексу строки работает с байтом.
  • При слиянии двух упорядоченных каналов нужно учитывать порядок значений, чтение из обоих каналов через select и завершение работы после их закрытия.
  • Нужно повторить семантику буферизированных каналов: отправка блокируется при заполненном буфере, а запись в закрытый канал приводит к panic.
  • Для слайсов полезно знать их представление через указатель, length и capacity, возможное перевыделение памяти при append и ограничения на сравнение слайсов.

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