Будут ли на следующих этапах задачи по Go, SQL или системному дизайну
Что проверяют
Этот вопрос обычно задаёте вы сами в конце интервью, и по нему видно, насколько осознанно вы готовитесь к найму в Go-команду. Хороший вопрос конкретен и помогает спланировать подготовку. Часто следует встречный: «А что для вас сложнее всего?», поэтому держите наготове честную оценку своих сильных и слабых зон.
Как отвечать
Спрашивайте так, чтобы получить план, а не «да, будут»: сколько этапов, какой формат (живой кодинг, разбор своего кода, дизайн на доске), сколько времени, можно ли пользоваться своей IDE. Обычно в Go-найме встречаются три блока, и к каждому готовятся отдельно:
- Go: конкурентность на горутинах, каналах и
sync.WaitGroup, отмена черезcontext.Context, поиск гонок черезgo test -race. Часто спрашивают устройство слайсов иappend, почему в map нельзя писать из нескольких горутин безsync.Mutex, nil-интерфейсы,errors.Isиerrors.As; - SQL:
JOINи группировки, оконные функции, индексы и чтениеEXPLAIN, транзакции и уровни изоляции. Со стороны Go полезно знатьdatabase/sqlилиpgx, пул соединений и проблему N+1; - системный дизайн: сервис коротких ссылок, лента, rate limiter. Ждут требования и оценку нагрузки, API, хранилище, кэш, очереди вроде Kafka, идемпотентность и узкие места.
Если по какому-то блоку опыта мало, скажите прямо и уточните глубину. Например: «Системный дизайн я делал в рамках одного сервиса. На что вы смотрите в первую очередь?» Такая честность работает лучше обещания, что вы готовы ко всему.
Где спотыкаются
Не задают вопрос вовсе и приходят на этап дизайна без подготовки, хотя рекрутер охотно рассказал бы о формате.
Отвечают на встречный вопрос шаблоном «готов ко всему, с нетерпением жду». В нём нет информации, лучше назвать, что уже повторили и что подтягиваете.
Готовятся по общим сборникам алгоритмических задач и пропускают специфику языка: конкурентность, context, поведение слайсов. На Go-интервью неприятные уточнения чаще всего звучат именно здесь.