Открытое собеседование на Middle Go разработчика
Запись открытого мок-собеседования на Middle Go-разработчика с разбором live coding-задач и внутренностей Go. После технической части идут обратная связь кандидату, Q&A и презентация менторской программы.
Эйч Навыки — менторская программа
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 3,8 тыс.
- Лайки на YouTube: 70
Таймлайн
Коротко о видео
Это открытое мок-собеседование по Go: наставник разбирает с Сергеем слайсы, каналы, горутины, worker pool, планировщик Go, конкурентный доступ к map, внутренности map и проектирование многопоточного кэша. Во второй части участники дают кандидату обратную связь, обсуждают его переход в разработку, подготовку к реальным интервью, pet-проекты, Git, линтеры и практику. Значительная часть эфира посвящена презентации менторской программы «Эйч Навыки» и ответам на вопросы зрителей; это не реальное собеседование в конкретную компанию.
Затронутые темы
Что взять на заметку
- Для задач со слайсами нужно уметь объяснить, что при передаче slice копируется его заголовок с len и cap, а не меняется длина исходного слайса; append может записать элемент в общий backing array, но исходный len останется прежним.
- Для массовой обработки URL подготовьте два решения: семафор на буферизированном канале и worker pool с фиксированным числом воркеров, каналом задач, закрытием канала после отправки задач и ожиданием завершения через sync.WaitGroup.
- При подсчёте HTTP-статусов общий map нужно защищать mutex; конкурентные записи в обычный map могут завершиться panic, а отсутствие panic в отдельном запуске не делает код безопасным.
- Число горутин для I/O-задачи не следует брать равным числу ядер: его подбирают с учётом GOMAXPROCS, тайм-аутов, файловых дескрипторов, сетевых ограничений и измерений нагрузки.
- Повторите отличие поведения переменной цикла в goroutine в версиях Go до 1.22 и начиная с Go 1.22, а также блокировку небуферизированного канала при отправке без готового получателя.
- Для вопросов о кэше подготовьте LRU/LFU-вытеснение при нехватке памяти, шардирование данных и мьютексов для снижения конкуренции, а также компромиссы между sync.Map и map с синхронизацией.
- Для подготовки к интервью полезнее глубоко разобрать несколько тем — здесь это слайсы, concurrency и map — чем поверхностно перечислить множество тем; практику закрепляют собственные реализации структур и регулярное написание кода.