Вернуться в видеотекуКоротко о видео
Это публичное мок-собеседование 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-статусов.