Для каждого механизма Go готовьте четыре слоя ответа: контракт языка, небольшой код, отказный случай и production-наблюдаемость. Это превращает заученную теорию в инженерное решение.
План
Пройдите этапы по порядку
- 01
Неделя 1: значения, slices, maps и interfaces
Zero value, pointer/value receiver, comparability, nil interface, backing array и map concurrency. Пишите маленькие примеры и объясняйте, где копируется header, а где данные.
- 02
Неделя 2: goroutines, channels и context
Ownership каналов, select, cancellation, worker pool, fan-in/out, backpressure и leak prevention. Обязательно гоняйте go test -race и разбирайте завершение каждой goroutine.
- 03
Неделя 3: runtime, память и профилирование
G-M-P, preemption, GC, escape analysis, allocations, pprof и trace. Привязывайте теорию к метрике: CPU, heap, goroutine count, latency и scheduler delay.
- 04
Неделя 4: production backend
HTTP/gRPC, PostgreSQL, транзакции, Kafka, кеш, idempotency, timeouts, retries и graceful shutdown. Реализуйте один сервис с observability и failure tests.
- 05
Live coding: ежедневная короткая задача
Чередуйте алгоритмы и Go-практику: LRU, concurrent map, pipeline, rate limiter, parser, batching. Сначала проговорите контракт и тесты, затем код.
- 06
Финал: два system-design кейса
Спроектируйте сервис уведомлений и высоконагруженный checkout. Оцените QPS, данные, delivery semantics, деградацию и on-call сигнал для каждого критичного компонента.
Что обычно мешает
Частые ошибки
- Учить только goroutines и channels.
- Не запускать race detector.
- Путать delivery semantics с бизнес-эффектом.
- Игнорировать SQL и эксплуатацию.
Перед следующим этапом
Чек-лист готовности
- Объясняю nil interface и slice aliasing.
- Все goroutines имеют путь выхода.
- Умею читать pprof.
- Проектирую idempotent consumer.
- Пишу тесты и benchmarks.
Коротко
Частые вопросы
Нужно ли знать runtime на junior?
Базово — да: goroutine, channel, allocation и race. Глубина планировщика и GC растёт с грейдом и требованиями highload-роли.
Что писать в pet project?
Небольшой сервис с БД, очередью или фоновой работой, context cancellation, тестами, метриками и README с решениями. Размер менее важен, чем законченный ownership.
Стоит ли читать исходники Go?
Для middle+/senior полезно точечно: runtime, sync, net/http. Сначала закрепите публичный контракт и измерьте поведение, затем используйте исходники для глубины.
Источники
Источники и редакционная политика
Материалы RecallDeck сопоставлены с официальной документацией и открытыми публикациями компаний, когда первичный источник доступен. Мы не связаны с упомянутыми работодателями, не публикуем конфиденциальные задания и не продаём места в подборках. Формат найма может меняться — уточняйте его у рекрутера.
От чтения к воспроизведению
Отрепетируйте полный цикл интервью.
RecallDeck возвращает сложные темы по расписанию и помогает удерживать в памяти язык, SQL, архитектуру и поведенческие истории.