Как готовиться к техническому собеседованию на позицию Golang-разработчика?

YOUTUBE · 01.12.2025 05:40

Ключевые темы и таймкоды

Введение

0:00
  • Обсуждение вопросов на собеседованиях для Go-разработчиков.
  • Личный опыт автора с собеседованиями в России и Европе.

Кто проводит собеседования

0:30
  • Собеседования проводят опытные инженеры, техлиды или сторонние специалисты.
  • У специалистов часто нет времени на подготовку, поэтому они ищут вопросы в интернете.

Вопросы из интернета

1:29
  • Примеры вопросов из статьи Виктора Уголькова.
  • Вопросы касаются общих тем, микросервисов, инфраструктуры и баз данных.

Личный опыт

2:42
  • Автор проходил два собеседования в один день, и вопросы были одинаковыми.
  • Вопросы из статьи Виктора Уголькова оказались качественными и полезными.

Подготовка к собеседованиям

4:19
  • Рекомендации по подготовке к собеседованиям.
  • Важно решать примеры и запоминать ответы.

Вопросы на английском

6:18
  • Для англоязычных компаний вопросы также ищут в интернете.
  • Примеры вопросов и статей на английском языке.

Примеры вопросов

8:14
  • Примеры вопросов с конкретными примерами кода.
  • Важно решать и понимать примеры для подготовки.

Дополнительные ресурсы

11:03
  • Статья на Хабре от Дэниела Подольского с опросником из 28 вопросов.
  • Вопросы касаются различных аспектов Go, включая передачу значений и работу с каналами.

Аксиомы каналов

13:29
  • Четыре аксиомы: блокировка навсегда при записи в nil канал, блокировка навсегда при чтении из nil канала, паника при записи в закрытый канал, нулевое значение при чтении из закрытого канала.
  • Закрытие закрытого канала вызывает панику, закрытие nil канала также вызывает панику.

Сортировка и стерилизация

14:56
  • Как работает сортировка в Go, использование пакета sort.
  • Стерилизация и обращение односвязного списка.
  • Реализация стейка и очереди через слайсы.

Обработка ошибок и мьютексы

15:53
  • Обработка ошибок в Go, использование fmt.Errorf.
  • Мьютексы и их группы, реализация мьютексов на каналах.
  • Синхронные карты sync.Map и их особенности.

Синхронные карты и атомарные счетчики

18:56
  • Синхронные карты sync.Map и их производительность.
  • Атомарные счетчики sync.Atomic и их использование.

Контексты

20:56
  • Пакет контекстов в Go, его использование для тайм-аутов.
  • Создание и отмена контекстов, пример использования.

Планировщик и сборщик мусора

24:24
  • Основы работы планировщика и сборщика мусора в Go.
  • Выполнение горутин на системных тредах и логических процессорах.

Слайсы и тесты

25:15
  • Внутреннее устройство слайсов.
  • Вопросы по Go и тесты, их важность и использование.

Слайсы в Go

26:10
  • Слайс в Go хранит ссылку на массив, длину и вместимость.
  • При реслайсинге изменяется указатель на элемент, но длина и вместимость остаются прежними.
  • В Go все передается по значению, включая слайсы, что вызывает проблемы при изменении длины и вместимости.

Проблемы с передачей слайсов

27:06
  • При передаче слайса функции можно изменять элементы, но не длину и вместимость.
  • Пример с функцией, добавляющей единицу каждому элементу слайса, показывает, что длина и вместимость не меняются.
  • Важно понимать, что слайсы передаются по значению, чтобы избежать проблем.

Пример с копированием слайсов

29:34
  • При копировании слайсов значения элементов могут быть неверными.
  • Пример кода показывает, что при копировании элементов слайса через переменную, все элементы получают последнее значение.
  • Решение: использовать ссылки на элементы слайса вместо переменных.

Вопросы по технологиям

31:49
  • Вопросы могут касаться различных технологий, таких как MySQL, Cassandra, MongoDB, Redis и другие.
  • Примеры вопросов: разработка программы для загрузки файлов, изменение типа данных в таблице, типы запросов в PostgreSQL.
  • Важно знать базовые концепции и типы данных, используемые в технологиях.

Микросервисы, тесты и паттерны

35:26
  • Вопросы касаются различных типов тестов: юнит, интеграционные, системные, функциональные, регрессионные.
  • Важно знать, что такое Postman, Swagger, OOP на Python, пакет тестирования Go, табличные тесты и моки.
  • В микросервисах каждый сервис работает с отдельной базой данных, что требует согласованного изменения данных через паттерн саги.

Заключение

38:15
  • Видео охватывает множество тем, связанных с собеседованиями и технологиями.
  • Автор делится своим опытом и приглашает зрителей делиться своими историями и задачами.
  • Пожелания хорошего вечера и приглашение к обсуждению в комментариях.