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

Тестовое собеседование на позицию Go-разработчика / Ingternet

Двухчасовое тестовое мок-собеседование Go-разработчика с теоретическими вопросами, live coding и обратной связью по подготовке к уровню middle.

Источник: Ingternet

Открыть на YouTube

Таймлайн

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

Это публичное мок-собеседование Go-разработчика: после знакомства с участниками интервьюер проверяет Муслима по внутреннему устройству Go, PostgreSQL, сетям и практическим задачам. Основной объём разговора посвящён строкам, слайсам, map, конкурентности, каналам, GC и GMP-модели; затем разбираются вывод кода со слайсами и проектируется параллельная загрузка URL с обработкой ошибок. В конце интервьюер даёт обратную связь: по его мнению, кандидат в целом соответствует уровню middle, но ему стоит углубить темы индексов, процедур и представлений в базах данных.

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

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

  • Для подготовки к Go-интервью нужно уверенно объяснять разницу между строкой, массивом и слайсом, неизменяемость строк, байты и руны, а также влияние len и cap на append.
  • Нужно разбирать устройство slice: общий backing array при передаче слайса в функцию, перераспределение памяти при нехватке capacity и последствия append для исходного слайса.
  • Важно знать map на уровне реализации: хеширование, бакеты, коллизии, рост и эвакуацию, сравнимость ключей, а также ограничения при конкурентном доступе.
  • Следует уметь выбирать и объяснять примитивы конкурентности Go: Mutex/RWMutex, sync.Map, sync.WaitGroup, errgroup, atomic и channels; отдельно — правила закрытия каналов, nil-каналы и select.
  • Практическая задача требует организовать параллельные HTTP-запросы, не терять ошибки горутин, дождаться завершения работы и закрыть канал результатов; при большом числе URL нужен лимит конкурентности или worker pool.
  • По PostgreSQL стоит повторить ACID, уровни изоляции и аномалии, B-tree/Hash/GIN/BRIN-индексы, EXPLAIN ANALYZE, constraints, триггеры, процедуры и materialized views.
  • Для сетевого блока полезно различать TCP и UDP, HTTP и HTTPS/TLS, возможности HTTP/2 и классы HTTP-статусов.

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