[Balun.Courses] Владимир Балун - Быстрая подготовка к собеседованию по Golang (2025)

149 

Описание

Подойдет Golang-разработчикам и Switcher’ам, которые:

  • Перегуглили весь интернет запросом «Задачи с собеседований по Go», и до сих пор не чувствуют уверенности
  • Не знают, как проходят собеседования по Go или идут туда первый раз
  • Хотят быстро изучить все вопросы и подготовиться к задачам, которые спросят на собеседовании по Go
  • Пытались свичнуться на GO, но поняли, что в нем много подводных камней. Не хватает знаний, чтобы пройти собеседование

Изучишь тонкости, без которых сложно пройти собеседование по GO:

  • Разберешь 100 задач, которые могут встретиться на реальном собеседовании
  • Узнаешь, как работает аллокатор, сборщик мусора и планирощик Golang
  • Узнаешь, как устроены строки, срезы, словари и каналы Go
  • Изучишь различные темы по Concurrency — deadlock, livelock, data race, race condition и многое другое
  • Изучишь множество нюансов, тонкостей и подводных камней Go
  • Разберешься в глубоких темах Go, которые спросят на собеседовании в BigTech

15 уроков
100 задач
Все темы спрашивают на реальных интервью. В уроках быстро разбираем теорию, чтобы закрыть вопросы, которые спрашивают на собеседованиях + разбираем задачи на эти темы

Типы данных

Задачи урока:

  • переполнение целочисленных переменных
  • особенности битовых операций со знаковыми числами
  • особенности работы с разными системами счисления
  • нюансы uintptr
  • endianness
  • указатели на указатель

Массивы и срезы

Теория урока:

  • устройство массивов и срезов

Задачи урока:

  • бесконечная итерация по срезу
  • глубокое копирование срезов
  • создание среза без инициализации
  • возврат среза из функции
  • пустые и нулевые срезы
  • утечки памяти при работе со срезами
  • опасные операции со срезами и массивам

Строки

Теория урока:

  • устройство строки

Задачи урока:

  • длина строки
  • различные способы итерации по строке
  • разница итерации по строке и по срезу байт
  • особенности получения подстроки из строки
  • различные способы конкатенации строк
  • использование strings. Builder
  • копирование strings. Builder
  • конвертация строки в срез байт и обратно
  • изменение строки
  • утечки памяти при работе со строками

Словари

Теория урока:

  • устройство словаря

Задачи урока:

  • сравниваемые ключи
  • последовательность итерации
  • изменение словаря во время итерации
  • утечки памяти со словарями
  • словари с вещественными числами
  • опасные операции со словарями

Структуры

Задачи урока:

  • разные ресиверы
  • ambigious selectors
  • выравнивание структур
  • встраивание типов
  • сравнение структур
  • пустые структуры

Интерфейсы

Теория урока:

  • устройство интерфейсов

Задачи урока:

  • сравнение интерфейсов
  • приведение интерфейсов
  • копирование интерфейсов
  • срез пустых интерфейсов
  • nil интерфейсы
  • особенности type assertion
  • особенности type switch

Defer

Теория урока:

  • устройство defer

Задачи урока:

  • defer с циклами
  • вычисление defer
  • модификация возвращаемого значения с использованием defer
  • производительность defer
  • последовательность defer-ов
  • defer с receiver-ом

Ошибки

Теория урока:

  • устройство ошибок

Задачи урока:

  • константные ошибки
  • перехват деления на ноль
  • перехват переполнения стека и OOM
  • перехват размывания nil pointer
  • оборачивание ошибок
  • пропуск паники
  • тонкости паники
  • подмена паники

Аллокатор

Теория урока:

  • устройство аллокатора

Задачи урока:

  • аллокация объектов на стеке и в куче
  • аллокация интерфейсов
  • аллокация массивов и срезов

Сборщик мусора

Теория урока:

  • устройство сборщика мусора

Задачи урока:

  • большие аллокации
  • баласты памяти

Горутины и планировщик Go

Теория урока:

  • устройство горутин и планировщика

Задачи урока:

  • количество горутин
  • запуск горутин
  • GOMAXPROCS
  • async preemption
  • паники с горутинами
  • перехват паники из горутины

Concurrency: примитивы синхронизации

Задачи урока:

  • date race и race condition
  • deadlock
  • livelock
  • некорректная синхронизация структур данных
  • локальные мьютексы
  • гранулярность блокировок
  • опасные операции с мьтексами
  • копирование примитивов синхронизации
  • CAS
  • опасные операции с sync. Cond
  • false sharing

Concurrency: каналы

Теория урока:

  • устройство каналов в языке программирования Go

Задачи урока:

  • select
  • data race с каналами
  • опасные операции с каналами
  • утечки горутин с каналами
  • проверка закрытия канала
  • nil каналы
  • неблокирующая запись и чтение
  • приоритизация select
  • последовательное выполнение
  • особенности записи в канал

Concurrency: контексты

Теория урока:

  • устройство контекстов

Задачи урока:

  • nil context
  • родительские и дочерние контексты
  • особенности context. WithValue
  • использование контекста

Concurrency: паттерны

Задачи урока:

  • паттерн Fan-In
  • паттерн Fan-Out
  • паттерн worker pool
  • паттерн pipeline
  • синхронизация кэша
  • распределенный запрос в несколько реплик
  • распределенный запрос в несколько шардов

Курс готовит только к технической секции по GO
В материалах нет информации по подготовке к System Design, алгоритмической и другим секциям. Для этого у нас есть отдельные курсы: System Design, Алгоритмы, Глубокий Go и Concurrency в Go