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

Моковое собеседование на Middle Golang разработчика | Solvery & Uproger

Запись мокового технического интервью по Go с теоретическим блоком, реализацией LRU-кэша и развёрнутой обратной связью кандидату. Рассматриваются типичные вопросы для Middle Go-разработчика.

Источник: Solvery

Открыть на YouTube

Таймлайн

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

Это учебное моковое собеседование на Middle Go-разработчика: после знакомства с кандидатом интервьюер проверяет Go, базы данных, сети, ОС и Docker. Практическая часть посвящена проектированию LRU-кэша на Go через map и двусвязный список, с методами получения, обновления и вытеснения записей. В финале ментор отмечает уверенное практическое решение задачи, но рекомендует освежить теорию по внутренностям БД, каналам и смежным темам.

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

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

  • Объясняйте передачу аргументов в Go как копирование значений: у slice копируется его заголовок, содержащий указатель на общий backing array, поэтому изменения элементов могут быть видны через обе переменные.
  • Для map подготовьте ответ про среднюю сложность доступа O(1), хеширование, бакеты, коллизии и рост структуры при достижении порога заполнения.
  • Не отождествляйте небуферизированный канал с буферизированным каналом ёмкости 1: первый send блокируется до чтения, а во второй можно записать первое значение без читателя.
  • Нужно уверенно разбирать операции с каналами: чтение из закрытого возвращает нулевое значение и ok=false после опустошения, отправка в закрытый канал вызывает panic, операции с nil-каналом блокируются.
  • Context применяют для отмены, дедлайнов и таймаутов; context.WithValue не стоит использовать для обычных параметров функции — в стриме его рекомендуют для сквозной служебной информации вроде логгера или метрик.
  • По БД стоит повторить устройство индексов, транзакции, различие WHERE и HAVING, агрегаты, триггеры и хранимые процедуры; отдельно прозвучал пример триггера для аудита изменений таблицы.
  • Для LRU-кэша отработайте связку map[key]*list.Element и двусвязного списка: при Get и обновлении перемещать запись в начало, а при переполнении удалять хвост и соответствующий ключ из map.

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

1 ч 29 мин
BackendMiddle

Открытое интервью на Middle Go-разработчика

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

2 ч 40 мин
BackendMiddle

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

Открытый мок-интервью для Go-разработчика: разбор сложных тем Go, баз данных и системного дизайна, затем обратная связь кандидату и ответы на вопросы зрителей. Запись также содержит два больших рекламных блока менторской платформы Эйч Навыки.