Чему вы научитесь
- Отвечать на вопросы о срезах, map, интерфейсах и ошибках в Go
- Предсказывать вывод кода с defer, panic и recover
- Писать горутины и каналы без утечек и взаимных блокировок
- Находить и исправлять гонки данных
- Объяснять, как работают планировщик, стек и куча, сборщик мусора
- Писать табличные тесты и бенчмарки
- Находить ошибки в чужом коде на код-ревью
- Оценивать сложность решения по ограничениям задачи
- Узнавать приём по условию задачи
- Решать задачи на графы, деревья и динамическое программирование
О курсе
Курс идёт в том же порядке, что и собеседование
Сначала вопросы по языку: что выведет код, что станет со срезом после append, почему программа зависла на канале. Потом алгоритмическая задача и задача на горутины. Во многих компаниях ещё и код-ревью. В конце курса - пробные собеседования на время.
Задачи на горутины проверяются по времени и утечкам
Проверка засекает время, считает одновременные горутины и находит зависшие. Большие тесты не пропустят решение "в лоб". После каждого модуля про язык - технические вопросы с собеседований без вариантов ответа и ответы для сверки.
Go изнутри: срезы, интерфейсы, горутины, рантайм
- Срезы и map: как растёт срез, когда
appendпортит чужие данные, почему map не сжимается послеdelete - Интерфейсы и ошибки: почему nil-интерфейс бывает не равен nil,
errors.Isиerrors.As, порядокdefer - Горутины и каналы: закрытый канал, deadlock, гонки данных,
sync,context, errgroup - Рантайм: планировщик, стек и куча, сборщик мусора
- Встраивание, дженерики, тесты и бенчмарки
Алгоритмы: один модуль - один приём
Два указателя, хеш-таблицы, двоичный поиск, стек, перебор с возвратом, деревья, графы, динамическое программирование. Разбор с кодом и оценкой сложности, потом задачи. Пишешь только функцию, как на собеседовании.
Код-ревью: найди ошибки в чужом сервисе
HTTP-обработчик, кэш, воркер очереди. Сначала отметь все проблемы - среди вариантов есть ловушки. Потом исправь код: проверка запустит его под нагрузкой, с ошибками и таймаутами.
Пробные собеседования на время
Каждое идёт 60 минут: вопросы по языку, алгоритмическая задача без подсказки, какой приём нужен, и задача на конкурентность. После каждого - разбор.
Для кого этот курс
Начальные требования
Как проходит обучение
Программа курса
В курс входят
- 61 урок
- 240 тестов
- 130 интерактивных задач
Наши преподаватели
Сертификат
Что вы получаете
- Решение автора к каждой задаче
- Пробные собеседования на время с разбором
- Технические вопросы с собеседований с ответами
- Задачи на код-ревью: найти ошибки и исправить код
- Сертификат о прохождении курса