Глубокий Go — курс о нюансах и тонкостях языка

Разберешь Go на винтики — от битиков до рантайма. Не изучаем внешние библиотеки и синтаксис только устройство языка и его стандартная библиотека

Преподает ex-Team Lead в Яндекс

оценка студентов
4.94 / 5
когда
19 мая
поток
поток №6
длительность
1.5 месяца
Вырасти из Middle в Senior
уперлись в потолок, а без глубокого понимания Go не берут на интересные проекты
Изучить best practices
разобраться в тонкостях языка, писать более производительный и чистый код
Свичнуться в Golang
есть база, и нужно быстро понять, как все работает в Go и не тащить старые паттерны из текущего стека
Подготовиться к собеседованиям
уверенно отвечать на каверзные вопросы по техничке, ответы на которые редко встретишь в практике
в случаях, когда нужно:
Подойдет go-разработчикам от уровня middle
и cвитчерам из backend-стека

весь курс — о тонкостях GO, которые должен знать каждый Senior

/1
Раскладываем строки, мапы, планировщик, сборщик мусора и др. на атомы — часовые разборы всех нюансов по каждой теме
/2
Разбираемся в нюансах и best practices языка и учимся использовать их на практике
/3
Учимся работать с памятью и указателями по паттернам из C++, чтобы данные занимали минимум места, а код работал быстрее
/4
Быстро прокачиваем hard’ы для свитча из другого backend-стека

В программе 60% практики — все, что используется в работе

Урок №1 — Основные типы данных

Типы данных
  • Zero value
  • Примитивные и составные
  • Выравнивание типов данных
  • Размеры типов данных

Endianness
  • Big Endian
  • Little Endian

Внутреннее устройство целочисленных типов данных
  • Прямой код
  • Обратный код
  • Дополнительный код

Указатели
  • Арифметика указателей
  • Указатели на указатели
  • Проблемы с uintptr
  • unsafe.Pointer()
  • unsafe.Sizeof()

  • Битовые маски
  • Битовые операции
  • Разряды битов и байтов
  • Байтовая и словесная адресация
  • Переполнение знаковых и беззнаковых типов данных
  • Обнаружение переполнений
  • Копирование переменных

______________________________


Урок №2 — Массивы и срезы

Внутреннее устройство массивов в Golang
  • Копирование массивов
  • Правильная итерация по массивам
  • Оптимизации по работе с массивами
  • Аллокация массивов в стеке и в куче

Внутреннее устройство срезов в Go
  • Увеличение и уменьшение емкости среза
  • Увеличение и уменьшение размера среза
  • Аллокация среза без инициализации
  • Аллокация срезов в стеке и в куче
  • Разница пустых и нулевых срезов
  • BCE (Bound Check Elimination)
  • Утечки памяти со срезами
  • Копирование срезов
  • Расширения срезов
  • Сравнение срезов
  • Очистка срезов
  • Bound checks
  • memclr

Советы по использованию
  • Конвертация срезов в массивы и обратно
  • Получение подсрезов из массивов и срезов
  • Реализация очереди и стека на основе среза
  • Удаление из начала / конца и середины среза

Открыть ДЗ
можно начать бесплатно

Из чего состоит курс

Уроки длятся по 1.5−2 часа, и все можно смотреть в свободное от учебы и работы время. Материалы актуальны на текущий год

Записанные лекции в студийном качестве

Все задания помогают на практике прочувствовать, как устроен язык Go. Ты даже перепишешь его небольшие части

Домашняя работа для закрепления лекций

Все вопросы по урокам и домашним работам можно задавать на общих zoom-созвонах

Q&A-сессии с ответами на вопросы

Прокачаешься не только на домашках, но и на решении реальных задач, которые уже встречались в IT-компаниях или встретятся тебе в будущем в процессе разработки

Кейсы из рабочей практики

Получишь возможность совместно с другими учениками курса делать код-ревью друг другу для дополнительного закрепления полученных знания

Code review сокурсников

Получишь список книг, статей, курсов и видео, которые позволят изучить разработку на языке Go еще глубже

Дополнительные материалы

Хотя... Глубже будет некуда:)
Выдадим после успешного прохождения курса для подтверждения твоих навыков

Сертификат по итогам курса

учимся на своей платформе

Преподаватель — владимир балун, ex-team lead в яндекс

руководил разработкой системы трейсинга (11ГБ/с трафик)
Yandex
разрабатывал системы трейсинга и непрерывного профилирования
Ozon
разрабатывал движок по подбору таргетированной рекламы
Tinkoff
разрабатывал Kaspersky Endpoint Security
Kaspersky Lab
поддерживал ICQ и разрабатывал My Teams
Mail.ru
руководил курсом Golang Developer.Professional
OTUS
Saint HighLoad++, GolangConf, CodeFest, Стачка и E-CODE
Спикер конференций
30 000+
подписчиков
на YouTube
>600 часов
менторства и личного обучения
>1000
учеников обучились на моих курсах
6+ лет
занимаюсь программированием

средняя оценка учеников

{
ффф"reviews": {
ффффф"reliability": true
ффф}
}
4.94 / 5

метрики удовлетворенности одного из прошлых потоков

Учеников готовы рекомендовать обучение друзьям и коллегам
Итоговая оценка курса
по 10-ти балльной шкале

истории учеников

На курсе можно учиться за счет работодателя

Оставляй заявку — ответим на вопросы и поможем согласовать обучение
у нас учились:
начинаем 19 мая
Можно оплатить в рассрочку и иностранной валютой. Вернем 100% средств в первую неделю обучения, если не понравится
Стандарт
75 900 Р
Только 50 мест
74 900 Р
Стоимость увеличится через
дней
часов
минут
секунд
Премиум
12 практических занятий
Доступ к записям на 1 год
Домашка с автоматизированной проверкой
Сode-review сокурсников
Разбор кейсов из жизни и поддержка в чате
Групповые Q&A-сессии 1 раз в неделю
Проверка ДЗ с фидбеком от преподавателя
88 600 Р
Только 50 мест
89 400 Р
Стоимость увеличится через
дней
часов
минут
секунд
Проверка ДЗ с фидбеком от преподавателя
Групповые Q&A-сессии 1 раз в неделю
Разбор кейсов из жизни и поддержка в чате
Сode-review сокурсников
Домашка с автоматизированной проверкой
Доступ к записям на 2 года
12 практических занятий
Стандарт
93 050 Р
Только 50 мест
136 100 Р
Стоимость увеличится через
дней
часов
минут
секунд
Премиум
12 практических занятий
Доступ к записям на 1 год
Домашка с автоматизированной проверкой
Сode review сокурсников
Разбор кейсов из жизни и поддержка в чате
Групповые Q&A-сессии 1 раз в неделю
Проверка ДЗ с фидбеком от преподавателя
13 050 Р
Только 50 мест
174 100 Р
Стоимость увеличится через
дней
часов
минут
секунд
Проверка ДЗ с фидбеком от преподавателя
Групповые Q&A-сессии 1 раз в неделю
Разбор кейсов из жизни и поддержка в чате
Сode review сокурсников
Домашка с автоматизированной проверкой
Доступ к записям на 2 года
12 практических занятий
+ курс «Сoncurrency в Go» со скидкой
+ курс «Сoncurrency в Go» со скидкой
быстрый Курс

Подготовка к go-собеседованию за 7 часов

По этой же теме
Частые вопросы
MIddle — минимальный грейд для комфортной учебы на курсе

Нужно иметь коммерческий опыт разработки, знать синтаксис Go и хотя бы поверхностно владеть базовыми алгоритмами и структурами данных

Также, уроки на курсе подходят свитчерам из другого backend-стека, но важно знать синтаксис Go. Быстро и бесплатно с ним можно познакомиться на этом курсе

Будет сложно Junior Go-разработчикам и свитчерам из других предметных областей, у которых нет базы в backend’е. Здесь мы разбираем тонкости и нюансы Golang, а вам нужно набрать уверенную базу. Для начала рекомендуем сходить на наш курс «Go на практике»

Если программа этого курса покажется легкой, приходи на бесплатную консультацию в техподдержку — определим уровень и поможем определиться с выбором

задать вопрос

Пиши, если есть вопрос по курсу или не знаешь, с чего начать — поможем советом
Обучение «Глубокий Go» в Balun. Courses — онлайн-программа, в рамках которой ты разберешься со всеми тонкостями и нюансами, которые прячет язык программирования, и сможешь стать востребованным программистом не только в своей команде, но и на рынке.

Наш формат обучения подойдет, если ты разработчик уровня junior/middle/senior и имеешь опыт в сфере программирования. Если ты ранее нигде не проходил обучения по языкам программированию, у тебя иная специальность/профессия и твоя цель — пройти переподготовку и освоить программирование/разработку с нуля, наша программа не подойдет, т.к. учиться будет сложно. Чтобы успешно проходить обучения по нашим программам, необходимо знать основы языков в программировании и иметь опыт работы — это важное условие.

Углубленное изучение языка программирования в нашей школе начинаем с базовых типов и указателей, массивов и срезов, которые должен знать backend-разработчик: BCE, zero value, различия пустых и нулевых срезов, аллокации в стеке и куче. Затем вы освоите строки и словари: кодировки, strings. Builder, интернирование, утечки памяти, swiss table и нюансы переиндексации. Отдельные блоки — функции и defer, хвостовая рекурсия, структуры и выравнивание, unsafe-приемы и Data Oriented Design. Финальная часть — интерфейсы, обработка ошибок, сборщик мусора, аллокатор, планировщик и горутины: sysmon, preemption, work stealing, GMP-модель. Также мы поможем подготовиться к интервью и расскажем, какие вопросы и задачи часто спрашивают на собеседованиях в крупных BigTech-компаниях. Все полученные знания ты можно смело использовать при прохождении интервью при трудоустройстве на позицию Golang-разработчик.

Как итоговый результат — после прохождения всех модулей курса ты как разработчик сможешь:
  • увереннее проходить собеседования в BigTech и построить карьеру мечты,
  • понимать такие инструменты, как аллокатор, GC и планировщик,
  • уменьшать аллокации и bound checks и ускорять критичные участки,
  • писать поддерживаемый, понятный код и создавать эффективные приложения и сервисы, который экономит ресурсы компании, что очень актуально и важно для бизнеса,
  • написать резюме, которое выделит тебя среди других в условиях высокой конкуренции и привлечет потенциальных работодателей.

Все уроки на онлайн-обучении в записи, каждый урок длительностью по 1,5−2 часа. Для обучения потребуется примерно 4−5 часов в неделю. Доступ к записям открывается сразу после оплаты курса. После просмотра уроков на обучении ты практикуешься, делаешь ДЗ с автопроверкой, а также ходишь на еженедельные Q&A и разбираешь реальные кейсы. Записи будут доступны в зависимости от тарифа 1 или 2 года. В тариф «Премиум» также входит проверка д/з преподавателем.

Для того, чтобы не отставать от программы, по опыту наших студентов стоит уделять 10−12 часов в неделю.

Уже более 1 000 студентов повысили свою квалификацию как backend-программиста в Balun.Courses. Среди наших выпускников — программисты из банков и других крупных компаний. Средняя оценка нашей программы составляет 4.94 из 5 на основании отзывов наших студентов, которые вы можете увидеть на сайте.

Если ты сомневаешься, подходит ли тебе наш формат, приходи на бесплатный открытый урок. В нашей школе Balun.Courses мы проводим открытые уроки по всем имеющимся направлениям, как System Design, оптимизации в Golang, микросервисам и проектированию высоконагруженных систем, Observability и другим, участие на многих уроках является бесплатным. Такой открытый урок поможет не только узнать что-то новое в программировании — так ты ознакомишься с нашим форматом еще до покупки и старта потока.

Если у вас есть вопросы или сомнения, вы можете связаться с нами по контактам, которые указаны на сайте, или оставить заявку — мы проведем консультацию, ответим на вопросы и предоставим необходимую информацию.
Углубленное обучение по Go
Особенности аллоцирования объектов в Go
Следующий урок

Выравнивание структур данных