оптимизация go, как в bigtech

с помощью основ computer science, низкоуровнего программирования, ассемблера и практических фишек, о которых мало кто рассказывает

преподает Senior из Яндекс

|

как попасть
предзапись
поток
поток №2
длительность
5 недель
когда
2024

Обучение подойдет Golang-разработчикам

{
ффф"for_whom": {
ффффф"junior": true,
ффффф"middle": true,
ффффф"senior": true,

ффф}
}
Junior
Тебе нужно уметь писать на Go на элементарном уровне и поверхностно знать устройство компьютера. Всему остальному научим:)
Middle
Senior

Частые проблемы, которые решает курс:

/5
/5
/1
Пишу бизнес-логику и приложения на Go, но не могу разобрать perf-снепшот или прочитать код в сторонней библиотеке
Часто не в теме по рабочим вопросам — хочу обсуждать с коллегами задачи, предлагать идеи и быть полезным (-ой)
/2
Паникую, если нужно оптимизировать код, потому что не знаю, что происходит за пределами синтаксиса
/3
На работе пишу простые фичи, но хочется заниматься чем-то нетривиальным и низкоуровневым
Хочу устроиться в BigTech, но на собеседованиях валюсь на вопросах по внутреннему устройству GO и Computer Science
/4
Не могу разобраться в исходном коде Go, потому что не понимаю, как устроен язык/архитектура компьютера

За 5 недель на практике научишься выжимать все соки из GO

Изучишь сomputer science для работы в BigTech и научишься понимать, как исполняется код от языкового синтаксиса до машинных инструкций
Узнаешь, как устроена операционка + на практике разберешь calling convention и научишься вызывать syscall’ы
С нуля научишься использовать ассемблер в Go для понимания языковых оптимизаций
Научишься оптимизировать код на примерах bigtech-компаний и низкоуровневого программирования
Глубоко разберешь подкапотную low-level пакетов: unsafe и runtime, reflect и debug
Научишься использовать профайлер для оптимизаций CPU, памяти и блокировок
И за счет всех этих знаний сможешь повысить уровень ЗП и свою ценность в компании, как специалиста
ИЗУЧАЕМ ВСЕ, ЧТО BIGTECH-КОМПАНИИ ТРЕБУЮТ В ВАКАНСИЯХ
{
ффф"optimization": {
ффффф"demand": 100%
ффф}
}
Вся программа состоит из тем, которые точно пригодятся в работе и которые 100% спросят на собеседовании
Скриншоты вакансий сделаны на hh.ru
На скриншотах представлены вакансии GO-разработчика в:

  1. Kaspersky Lab
  2. Cloud.ru
  3. СБЕР Маркет
  4. Битрикс 24

10 лекций и 4 домашки — только то, что пригодится в работе

{
ффф"ratio": {
ффффф"theory": 50%,
ффффф"practice": 50%
ффф}
}
/3
/2
Ассемблер в GO, по которому почти нет документации
Выжимка по CS, которому годами учат в универах
Фишки оптимизации в Go, которые применяют в BigTech
/1
Подробная программа
Урок №1 — Микроархитектура процессора

Внутреннее устройство компьютера
  • Industry Standard Architecture (ISA)
  • Модели разделения памяти
  • Организация чипсетов

Внутреннее устройство процессора
  • Архитектура CPU
  • Многотактовые процессоры
  • Конвеер процессора
  • Предсказывание переходов
  • Устройство регистров
  • Типы команд
  • SMT и hyperthreading
  • Таксономия Флинна
  • Пример процессора на Verilog

Урок №2 — Оперативная, кеш память

Внутреннее устройство кеша процессора
  • Кеш линии
  • Политики кэширования
  • Когерентность кеша
  • Политики инвалидации кеша
  • Уровни кеша
  • Способы размещения данных на уровнях кэша
  • Чтение и запись в кеш

Внутреннее устройство оперативной памяти
  • Memory endian
  • Page tables
  • Hierarchical page tables
  • Страничная адресация
  • Трансляция адресов
  • Shared memory
  • Direct memory access

______________________________

Результат:
  • за пару часов получил(-а) основы Computer Science, которые спрашивают на собеседованиях
  • умеешь ускорять код через понимание, как он исполняется «под капотом»
Понимание исполнения кода «под капотом» дает возможность его ускорить.

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

Например, почему при необходимости лучше использовать буферизированное чтение/запись или direct буфферы при работе с сетью

Результат обучения в блок-схеме

До
После
Верхнеуровнево понимаешь взаимодействие пользователя с приложением
Понимание исполнения кода выходит за рамки приложения — умеешь ускорять любой код

Весь процесс обучения по шагам

Уроки длятся по 2 часа два раза неделю и проходят в свободное от учебы и работы время. Запись уроков останется у тебя навсегда

Ходишь на онлайн-уроки в Zoom

Домашка полностью моделируют реальные ситуации, чтобы ты на 100% был(-а) готов к работе над коммерческими проектами

Делаешь домашку с упором на коммерческую практику

Домашние задания необязательные. Без их сдачи
можно изучать все лекции
Домашки проверяются автоматизированно, а все вопросы можно задать на онлайн-встречах

Проверяешь ДЗ с помощью тестов и задаешь вопросы на Q&A-cесиях

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

Разбираешь кейсы BigTech-компаний

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

Изучаешь дополнительные материалы

Выдадим его после курса для подтверждения твоих навыков

Получаешь сертификат

Преподает Senior-разработчик из Яндекса — Игорь Панасюк

разрабатываю платёжный движок, через который проводят платежи все коммерческие сервисы Яндекса
Yandex
ex-преподаватель курса по Golang
ITMO
занимаюсь программированием
5+ лет
менторства и преподавания в ИТМО
350+ часов
учеников обучились на моих курсах
> 100
практики на проектах Яндекса
4000+ часов
пример подачи и качества материала

Это был первый поток, и здесь пока нет отзывов

{
ффф"feedback": {
ффффф"quantity": 0
ффф}
}
Но у нас есть другие курсы, которые преподаются >1 года и где есть классный фидбек

System Design

Сoncurrency в GO

★ 4,94 / 5
★ 4,89 / 5
300+ учеников, обучено 7 потоков
100+ учеников, обучено 2 потока

Подготовка к алгоритмическим собеседованиям

Микросервисы, как в BigTech

★ 4,89 / 5
★ 4,92 / 5
150+ учеников, обучено 4 потока
150+ учеников, обучено 2 потока
Как только курс будет доступен к прохождению, ты первым (-ой) узнаешь о самой выгодной цене для покупки
Забронируй за собой место в анкете предзаписи
предзапись бесплатная

Развеиваем мифы

  • Сергей
    Какой смысл, если это может мне не пригодиться?
  • Игорь
    Оптимизация кода — нечастая проблема, но эта задача бывает нужна, и круто, когда ты умеешь ее решать. К тому же, вопросы по оптимизации, Computer Science и нюансам GO задают на собеседованиях. Прямо сейчас у тебя может не быть потребности в оптимизации, но этот навык может отразиться на твоей карьере в будущем
  • Мария
    Я не знаю ассемблер и ничего не пойму
  • Игорь
    Курс не требует от тебя знания ассемблера и глубоких знаний в Computer Science. Мы всему научим:)
  • Евгений
    В интернете куча бесплатных статей по оптимизации
  • Игорь
    Да, на курсе буду делиться только уникальным опытом работы в Яндексе. За 5 недель я расскажу все, чем пользуюсь сам и что пригодится на работе и собеседованиях:

    1. Устройство архитектуры компьютера и операционных систем, которое изучают годами в универе
    2. Низкоуровневые концепты и Ассемблер Go, с которыми очень сложно разобраться без должных примеров и объяснения
    3. Свой опыт, инсайты и фишки, которые применяю в работе

    Особенность курса в том, что контент, который есть в программе, очень трудно найти в интернете. Это все чисто мой опыт)

Боишься, что курс не понравится?

Протестируй его на бесплатном уроке
Поймешь, как и во что компилируется код на Go на разных платформах
Научишься писать и запускать код с использованием Go ассемблера
В live-режиме ускоришь инфраструктурные функции, используя векторные инструкции процессора
Задашь любые вопросы 
Senior-разработчику
Научишься методам оптимизации кода, которыми пользуются в Яндексе

Частые вопросы

{
ффф"questions": {
ффффф"quantity": 8
ффф}
}
Курс подойдет для любого грейда. Если ты Junior, придется немножко поднапрячься, но качественно усвоить материал все равно получится)

Для обучения на курсе тебе нужно уметь писать на Go на элементарном уровне и поверхностно знать устройство компьютера. Всему остальному научим
Остались вопросы?
Если у тебя срочный вопрос, можешь написать нам в Telegram-бот
Если ты готов немного подождать, оставляй вопрос на сайте — мы свяжемся с тобой в ближайшее время