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

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

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

|

во сколько
19:00, СР/СБ
формат
online
длительность
6 недель
старт
12 февраля

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

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

ффф}
}
Junior
Например, понимать, что такое виртуальная память, чем занимается ОС или почему по двумерному массиву быстрее итерироваться по строкам, а не по столбцам. Всему остальному научим:)
Middle
Senior

Нужно писать на Go на элементарном уровне и поверхностно знать устройство компьютера

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

/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

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

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

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

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

Урок №2 — Внутреннее устройство оперативной памяти

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

______________________________

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Стоимость обучения

/2
Гарантия возврата денег в течение 1-ой недели обучения
Доступна оплата в валюте из других стран
/1

Премиум

42 560 Р
От 10 640 руб./мес. Места ограничены
60 800 Р
До конца черной пятницы:
дней
часов
минут
секунд

Стандарт

39 060 Р
55 800 Р
До конца черной пятницы:
дней
часов
минут
секунд
От 9 765 руб./мес. Места ограничены
10 практических занятий
4 ДЗ с автоматизированной проверкой
3 Q&A-сессии с разбором домашек и вопросов
Общий чат с участниками
Доступ к курсу на 1 год
10 практических занятий
4 ДЗ с автоматизированной проверкой
3 Q&A-сессии с разбором домашек и вопросов
Общий чат с участниками
Доступ к курсу на 6 месяцев
Как учиться за счет компании?

Оплатите обучение сотруднику

Через юрлицо стоимость выше на 10%. Это связано с издержками на подготовку сделки:(
/1

Повысите производительность

Разработчик сможет ускорить приложение. Особенно если оно обрабатывает большие объемы данных или работает с высоконагруженными системами
/2

Снизите затраты на инфраструктуру

Оптимизированный код требует меньше ресурсов. Это снизит затраты на серверы, особенно в облачных средах, где стоимость зависит от потребляемых ресурсов
/3

Улучшите поддерживаемость кода

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

Уменьшите количество ошибок

Знание тонкостей GO позволит разработчику быстрее находить ошибки, исправлять и избегать их в будущем
Компании, которые уже обучили у нас своих сотрудников
{
ффф"it_companies": {
ффффф"trust": 100%
ффф}
}

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

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

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

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

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

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

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

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

Для обучения на курсе тебе нужно уметь писать на Go на элементарном уровне, знать основные правила разработки и поверхностно знать устройство компьютера. Всему остальному научим

Остались вопросы?

Если у тебя срочный вопрос, можешь написать нам в Telegram-бот
Если ты готов немного подождать, оставляй вопрос на сайте — мы свяжемся с тобой в ближайшее время