Джокер
Администратор
- Регистрация
- 1 Янв 2015
- Сообщения
- 146.297
- Реакции
- 78.236
**Складчина: Оптимизация Go, как в BigTech [Balun Courses]**
Курс поможет решить следующие проблемы:
1. Затруднения с perf-снимот или чтением кода в сторонних библиотеках.
2. Неопределенность в оптимизации кода из-за недостатка знаний за пределами синтаксиса.
3. Желание заниматься нетривиальными и низкоуровневыми задачами.
4. Непонимание исходного кода Go из-за отсутствия понимания языка/архитектуры компьютера.
5. Подготовка к собеседованиям в BigTech по внутреннему устройству Go и Computer Science.
На протяжении 5 недель курс поможет освоить следующее:
1. Изучение computer science для работы в BigTech и понимание исполнения кода от синтаксиса до машинных инструкций.
2. Настройка операционной системы, разбор calling convention и вызов syscall’ов.
3. Практическое использование ассемблера в Go для языковых оптимизаций.
4. Оптимизация кода на примерах bigtech-компаний и низкоуровневого программирования.
5. Глубокое понимание работы low-level пакетов: unsafe и runtime, reflect и debug.
6. Применение профайлера для оптимизаций CPU, памяти и блокировок.
7. Повышение уровня ЗП и ценности как специалиста в компании.
### **Основы Computer Science. Часть 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, необходимых на собеседованиях.
- Умение ускорять код через понимание внутренних процессов исполнения.
### **Основы Computer Science. Часть 2**
#### **Урок №3 – Архитектура операционных систем**
Введение в операционные системы:
- Архитектура операционных систем (monolitic, micro)
- ASMP, SMP
- User space
- Kernel space
- Примеры операционных систем xv6
Прерывания и системные вызовы:
- fork(), vfork(), exec(), clone()
- Copy on write
- Синхронные, асинхронные прерывания
- User, kernel, interrupt stacks
- Golang syscalls examples
- Буферизация и дескрипторы
#### **Урок №4 – Управления памяти в операционке**
Механизмы управления памятью:
- Memory ordering
- Barriers, out-of-order execution
- Memory reclaim
- Виртуальные и физические адреса
- Memory mapped files
- Swap file
- Translation lookaside buffer
**Результат:**
- Освоение основ Computer Science, востребованных на собеседованиях.
- Умение ускорять код через понимание внутренних процессов исполнения.
**Домашнее задание:**
- Написать программы, взаимодействующие с операционной системой через syscalls. Создать свои каналы в Go, используя syscall pipe.
### **Неделя 3**
#### **Урок №5 – Введение в ассемблер Go**
**Введение в ассемблер Go:**
- Типы инструкций
- Кроссплатформенность
- Flags register
- Addressing modes
#### **Урок №6 – Инструкции работы со стеком**
**Стек программы:**
- Инструкции работы со стеком
- Red zone
- Guard pages
- Stack overflow
- Локальные переменные
- Соглашения вызова функций
- Стековый фрейм
**Результат:**
- Понимание трансляции программы в ассемблерный код.
- Навык написания программ на ассемблере.
**Домашнее задание:**
- Написать свою программу на ассемблере Go.
### **Неделя 4**
#### **Урок №7 – Устройство памяти в Go, бенчмарки**
Устройство памяти в Go:
- Аллокатор Go
- Go арены, спаны
- Сравнение с другими языками
- Сборка мусора
Бенчмарки в Go:
- Цель и практика создания бенчмарков
- Проверка производительности конкурентных программ
#### **Урок №8 – Оптимизации в Go**
Устройство Go:
- Escape analysis
- Устройство типов в Go
- Оптимизации и их практическое применение
**Результат:**
- Понимание устройства рантайма Go и умение работать с low-level пакетами и рефлексией Go.
- Навык применения оптимизаций в Go.
**Домашнее задание:**
- Написание собственной реализации RPC с использованием рефлексии Go.
- Создание нетривиальных функций через unsafe пакет, с написанием бенчмарков.
### **Неделя 5**
#### **Урок №9 – Управление внутренним состоянием рантайма Go**
Управление внутренним состоянием рантайма Go:
- Пакет runtime для анализа и профилирования приложений
- Продвинутые техники управления состоянием рантайма Go
#### **Урок №10 – Профилирование в Go**
Профилирование в Go:
- Работа с профилировщиком Go
- Типы профилировщиков и их применение
**Результат:**
- Навык оптимизации приложений с использованием продвинутых пакетов Go для управления внутренним состоянием рантайма.
- Умение профилировать приложения.
**Домашнее задание:**
- Создание микросервиса с работой CGO, профилированием и применением PGO.
Данный курс предоставляет глубокие знания по оптимизации Go, призванные повысить вашу квалификацию и ценность в IT-компаниях.
Курс поможет решить следующие проблемы:
1. Затруднения с perf-снимот или чтением кода в сторонних библиотеках.
2. Неопределенность в оптимизации кода из-за недостатка знаний за пределами синтаксиса.
3. Желание заниматься нетривиальными и низкоуровневыми задачами.
4. Непонимание исходного кода Go из-за отсутствия понимания языка/архитектуры компьютера.
5. Подготовка к собеседованиям в BigTech по внутреннему устройству Go и Computer Science.
На протяжении 5 недель курс поможет освоить следующее:
1. Изучение computer science для работы в BigTech и понимание исполнения кода от синтаксиса до машинных инструкций.
2. Настройка операционной системы, разбор calling convention и вызов syscall’ов.
3. Практическое использование ассемблера в Go для языковых оптимизаций.
4. Оптимизация кода на примерах bigtech-компаний и низкоуровневого программирования.
5. Глубокое понимание работы low-level пакетов: unsafe и runtime, reflect и debug.
6. Применение профайлера для оптимизаций CPU, памяти и блокировок.
7. Повышение уровня ЗП и ценности как специалиста в компании.
### **Основы Computer Science. Часть 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, необходимых на собеседованиях.
- Умение ускорять код через понимание внутренних процессов исполнения.
### **Основы Computer Science. Часть 2**
#### **Урок №3 – Архитектура операционных систем**
Введение в операционные системы:
- Архитектура операционных систем (monolitic, micro)
- ASMP, SMP
- User space
- Kernel space
- Примеры операционных систем xv6
Прерывания и системные вызовы:
- fork(), vfork(), exec(), clone()
- Copy on write
- Синхронные, асинхронные прерывания
- User, kernel, interrupt stacks
- Golang syscalls examples
- Буферизация и дескрипторы
#### **Урок №4 – Управления памяти в операционке**
Механизмы управления памятью:
- Memory ordering
- Barriers, out-of-order execution
- Memory reclaim
- Виртуальные и физические адреса
- Memory mapped files
- Swap file
- Translation lookaside buffer
**Результат:**
- Освоение основ Computer Science, востребованных на собеседованиях.
- Умение ускорять код через понимание внутренних процессов исполнения.
**Домашнее задание:**
- Написать программы, взаимодействующие с операционной системой через syscalls. Создать свои каналы в Go, используя syscall pipe.
### **Неделя 3**
#### **Урок №5 – Введение в ассемблер Go**
**Введение в ассемблер Go:**
- Типы инструкций
- Кроссплатформенность
- Flags register
- Addressing modes
#### **Урок №6 – Инструкции работы со стеком**
**Стек программы:**
- Инструкции работы со стеком
- Red zone
- Guard pages
- Stack overflow
- Локальные переменные
- Соглашения вызова функций
- Стековый фрейм
**Результат:**
- Понимание трансляции программы в ассемблерный код.
- Навык написания программ на ассемблере.
**Домашнее задание:**
- Написать свою программу на ассемблере Go.
### **Неделя 4**
#### **Урок №7 – Устройство памяти в Go, бенчмарки**
Устройство памяти в Go:
- Аллокатор Go
- Go арены, спаны
- Сравнение с другими языками
- Сборка мусора
Бенчмарки в Go:
- Цель и практика создания бенчмарков
- Проверка производительности конкурентных программ
#### **Урок №8 – Оптимизации в Go**
Устройство Go:
- Escape analysis
- Устройство типов в Go
- Оптимизации и их практическое применение
**Результат:**
- Понимание устройства рантайма Go и умение работать с low-level пакетами и рефлексией Go.
- Навык применения оптимизаций в Go.
**Домашнее задание:**
- Написание собственной реализации RPC с использованием рефлексии Go.
- Создание нетривиальных функций через unsafe пакет, с написанием бенчмарков.
### **Неделя 5**
#### **Урок №9 – Управление внутренним состоянием рантайма Go**
Управление внутренним состоянием рантайма Go:
- Пакет runtime для анализа и профилирования приложений
- Продвинутые техники управления состоянием рантайма Go
#### **Урок №10 – Профилирование в Go**
Профилирование в Go:
- Работа с профилировщиком Go
- Типы профилировщиков и их применение
**Результат:**
- Навык оптимизации приложений с использованием продвинутых пакетов Go для управления внутренним состоянием рантайма.
- Умение профилировать приложения.
**Домашнее задание:**
- Создание микросервиса с работой CGO, профилированием и применением PGO.
Данный курс предоставляет глубокие знания по оптимизации Go, призванные повысить вашу квалификацию и ценность в IT-компаниях.
Для возможности скачивать складчины и сливы курсов нужно зарегистрироваться
Возможно, Вас ещё заинтересует:
- Хватит ждать. Как стать миллионером, когда всё ломается [Алексей Головин]
- [Аудиокнига] Цель! Как определять и достигать. 12 самых важных книг о том, как превращать мечты в реальность [Smart Reading]
- Идеальные пончики дома и для бизнеса [Lakomka_zaika] [Екатерина Варганова]
- Pro вафли [tati_cooks]
- Pro блины [tati_cooks]
- Терапия Ли. Одна маленькая частица, которая меняет всё [Герасим Авшарян]
- Вебинары и записи вебинаров для психологов [Тариф Летний доступ старт] [Hungrie.School]
- Митохондриальная медицина: иммунометаболическая диагностика, функциональные тесты и клиническая коррекция [PreventAge]
- Курс по 3D-печати 2026. Быстрый старт [Антон Чернов]
- Английский без галстуков: сборник британской ненормативной лексики [Дарья Велимович]