Скачать Оптимизация Go, как в BigTech [Balun Courses]

Kevin

VIP складчик
Platinum
Администратор
Регистрация
8 Сен 2016
Сообщения
483.764
Реакции
268.165
**Складчина: Оптимизация Go, как в BigTech [Balun Courses]**

Курс поможет в решении следующих проблем:

1. Непонимание perf-снимот и кода в сторонних библиотеках при написании бизнес-логики и приложений на Go.
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 – Микроархитектура процессора**
- Внутреннее устройство компьютера: ISA, модели разделения памяти, организация чипсетов.
- Внутреннее устройство процессора: архитектура CPU, конвейер процессора, предсказывание переходов, устройство регистров и другие аспекты.

**Урок №2 – Оперативная, кеш память**
- Внутреннее устройство кеша процессора, оперативной памяти и их организация.

**Основы Computer Science. Часть 2**

**Урок №3 – Архитектура операционных систем**
- Введение в операционные системы, ASMP и SMP, прерывания и системные вызовы с примерами.

**Урок №4 – Управления памяти в операционке**
- Механизмы управления памятью, абстракции операционной системы и аллокаторы памяти.

**Неделя 3**

**Урок №5 – введение в ассемблер Go**
- Основы ассемблера Go и его применение.

**Урок №6 – инструкции работы со стеком**
- Работа со стеком программы, локальные переменные, соглашения вызова функций и другие аспекты.

**Неделя 4**

**Урок №7 – устройство памяти в Go, бенчмарки**
- Устройство памяти в Go, использование аллокаторов и бенчмарки в Go.

**Урок №8 – оптимизации в Go**
- Устройство Go, оптимизации кода, работа с пакетом unsafe, рефлексия в Go и прочее.

**Неделя 5**

**Урок №9 – управление внутренним состоянием рантайма Go**
- Управление внутренним состоянием рантайма Go, продвинутые оптимизации и использование CGO.

**Урок №10 – профилирование в Go**
- Профилирование в Go, работа с профилировщиком и его типами.

**Домашнее задание:**
- Написать программы, взаимодействующие с операционной системой через syscalls, написать свои каналы в Go, используя syscall pipe.
- Написать свою программу на ассемблере Go.
- Написать микросервис, включив работу с CGO, выполнить профилирование и применить PGO.
 
Сверху