Fargo
Администратор
- Регистрация
- 2 Дек 2015
- Сообщения
- 233.559
- Реакции
- 755.725
**Складчина: Оптимизация Go, как в BigTech [Balun Courses]**
Проблемы, которые решает курс:
1. Сложности с разбором perf-снимот и кода в сторонних библиотеках на Go.
2. Неуверенность в оптимизации кода из-за недостатка знаний о его исполнении за пределами синтаксиса.
3. Желание заниматься более сложными и низкоуровневыми задачами, а не только простыми фичами.
4. Понимание исходного кода на Go и языка/архитектуры компьютера.
5. Подготовка к собеседованиям в BigTech, где спрашивают о внутреннем устройстве Go и Computer Science.
За 5 недель на практике вы научитесь:
1. Понимать computer science для работы в BigTech и исполнение кода от синтаксиса до машинных инструкций.
2. Изучать архитектуру операционных систем и применять операции вызова и системы.
3. Использовать ассемблер в Go для языковых оптимизаций.
4. Оптимизировать код с примерами от bigtech-компаний и низкоуровневого программирования.
5. Глубоко исследовать low-level пакеты: unsafe и runtime, reflect и debug.
6. Применять профайлер для оптимизации CPU, памяти и блокировок.
7. Повышать свою ценность и ЗП как специалиста в компании.
*Программа курса:*
### Основы Computer Science. Часть 1
#### Урок №1 – Микроархитектура процессора
- Внутреннее устройство компьютера: ISA, модели разделения памяти, организация чипсетов.
- Внутреннее устройство процессора: архитектура CPU, конвейер процессора, предсказывание переходов, устройство регистров, типы команд и другие.
#### Урок №2 – Оперативная, кеш память
- Внутреннее устройство кеша процессора: кеш линии, политики кэширования, уровни кэша и другие.
- Внутреннее устройство оперативной памяти: Memory endian, Page tables, Hierarchical page tables, трансляция адресов и другие.
**Результат:** Понимание Computer Science и ускорение кода через глубокое понимание его исполнения.
### Основы Computer Science. Часть 2
#### Урок №3 – Архитектура операционных систем
- Введение в операционные системы, ASMP, SMP, User space, Kernel space и прерывания.
#### Урок №4 – Управление памятью в операционке
- Механизмы управления памятью, Memory ordering, Barriers, Memory mapped files и другие аспекты.
**Результат:** Понимание Computer Science и ускорение кода через глубокое понимание его исполнения.
**Домашнее задание:** Написать программы, использующие syscalls и создать каналы в Go через syscall pipe.
### Неделя 3
### Ассемблер в GO и работа со стеком
#### Урок №5 – введение в ассемблер Go
- Введение в ассемблер Go: типы инструкций, кроссплатформенность, адресации и другое.
#### Урок №6 – инструкции работы со стеком
- Стек программы: инструкции, локальные переменные, соглашения вызова функций и другие.
**Результат:** Понимание трансляции программы в ассемблерный код и написание собственных программ на ассемблере.
**Домашнее задание:** Написать программу на ассемблере Go.
### Неделя 4
### Дополнительные фишки оптимизации, кодинг бенчмарков
#### Урок №7 – устройство памяти в Go, бенчмарки
- Устройство памяти в Go: аллокаторы, арены, scavenger, мусор и сравнение с другими языками.
- Бенчмарки в Go: виды, написание и конкурентные программы.
#### Урок №8 – оптимизации в Go
- Устройство Go: Escape analysis, оптимизации и работа с пакетами unsafe и reflect.
**Результат:** Понимание внутреннего устройства рантайма и применение оптимизаций в Go.
**Домашнее задание:** Написать свою реализацию RPC через рефлексию Go и применить оптимизации через unsafe пакет.
### Неделя 5
### Рантайм в Go и профилирование
#### Урок №9 – управление внутренним состоянием рантайма Go
- Управление рантаймом Go: пакет runtime, debug, фрагментация, сборка мусора и решения проблем.
#### Урок №10 – профилирование в Go
- Профилирование в Go: типы, работа с профилировщиком и накладные расходы при профилировании.
**Результат:** Оптимизация и профилирование приложений в Go.
**Домашнее задание:** Написать свой микросервис с CGO, профилирование и использовать PGO.
Проблемы, которые решает курс:
1. Сложности с разбором perf-снимот и кода в сторонних библиотеках на Go.
2. Неуверенность в оптимизации кода из-за недостатка знаний о его исполнении за пределами синтаксиса.
3. Желание заниматься более сложными и низкоуровневыми задачами, а не только простыми фичами.
4. Понимание исходного кода на Go и языка/архитектуры компьютера.
5. Подготовка к собеседованиям в BigTech, где спрашивают о внутреннем устройстве Go и Computer Science.
За 5 недель на практике вы научитесь:
1. Понимать computer science для работы в BigTech и исполнение кода от синтаксиса до машинных инструкций.
2. Изучать архитектуру операционных систем и применять операции вызова и системы.
3. Использовать ассемблер в Go для языковых оптимизаций.
4. Оптимизировать код с примерами от bigtech-компаний и низкоуровневого программирования.
5. Глубоко исследовать low-level пакеты: unsafe и runtime, reflect и debug.
6. Применять профайлер для оптимизации CPU, памяти и блокировок.
7. Повышать свою ценность и ЗП как специалиста в компании.
*Программа курса:*
### Основы Computer Science. Часть 1
#### Урок №1 – Микроархитектура процессора
- Внутреннее устройство компьютера: ISA, модели разделения памяти, организация чипсетов.
- Внутреннее устройство процессора: архитектура CPU, конвейер процессора, предсказывание переходов, устройство регистров, типы команд и другие.
#### Урок №2 – Оперативная, кеш память
- Внутреннее устройство кеша процессора: кеш линии, политики кэширования, уровни кэша и другие.
- Внутреннее устройство оперативной памяти: Memory endian, Page tables, Hierarchical page tables, трансляция адресов и другие.
**Результат:** Понимание Computer Science и ускорение кода через глубокое понимание его исполнения.
### Основы Computer Science. Часть 2
#### Урок №3 – Архитектура операционных систем
- Введение в операционные системы, ASMP, SMP, User space, Kernel space и прерывания.
#### Урок №4 – Управление памятью в операционке
- Механизмы управления памятью, Memory ordering, Barriers, Memory mapped files и другие аспекты.
**Результат:** Понимание Computer Science и ускорение кода через глубокое понимание его исполнения.
**Домашнее задание:** Написать программы, использующие syscalls и создать каналы в Go через syscall pipe.
### Неделя 3
### Ассемблер в GO и работа со стеком
#### Урок №5 – введение в ассемблер Go
- Введение в ассемблер Go: типы инструкций, кроссплатформенность, адресации и другое.
#### Урок №6 – инструкции работы со стеком
- Стек программы: инструкции, локальные переменные, соглашения вызова функций и другие.
**Результат:** Понимание трансляции программы в ассемблерный код и написание собственных программ на ассемблере.
**Домашнее задание:** Написать программу на ассемблере Go.
### Неделя 4
### Дополнительные фишки оптимизации, кодинг бенчмарков
#### Урок №7 – устройство памяти в Go, бенчмарки
- Устройство памяти в Go: аллокаторы, арены, scavenger, мусор и сравнение с другими языками.
- Бенчмарки в Go: виды, написание и конкурентные программы.
#### Урок №8 – оптимизации в Go
- Устройство Go: Escape analysis, оптимизации и работа с пакетами unsafe и reflect.
**Результат:** Понимание внутреннего устройства рантайма и применение оптимизаций в Go.
**Домашнее задание:** Написать свою реализацию RPC через рефлексию Go и применить оптимизации через unsafe пакет.
### Неделя 5
### Рантайм в Go и профилирование
#### Урок №9 – управление внутренним состоянием рантайма Go
- Управление рантаймом Go: пакет runtime, debug, фрагментация, сборка мусора и решения проблем.
#### Урок №10 – профилирование в Go
- Профилирование в Go: типы, работа с профилировщиком и накладные расходы при профилировании.
**Результат:** Оптимизация и профилирование приложений в Go.
**Домашнее задание:** Написать свой микросервис с CGO, профилирование и использовать PGO.
Для просмотра скрытого содержимого вы должны зарегистрироваться
Возможно, Вас ещё заинтересует:
- Деньги. Обеспеченная жизнь [PSY-инженерия] [Марта Николаева-Гарина]
- Закрытая группа Центра практика (октябрь 2026) [practicebox] [Анна Селиверстова, Ольга Миллер, Калинина Кристина]
- Ланчбоксы: идеи блюд на 30 дней [Klaudia Tobiasz] + Ланчбоксы: 60 новых рецептов для ланчбокса [Joanna Anger, Anna Piszczek]
- Практик трансформационных гипнотических путешествий, часть 01 из 10 (2026) [Игорь Ледоховский]
- Практик трансформационных гипнотических путешествий, часть 02 из 10 (2026) [Игорь Ледоховский]
- Практик трансформационных гипнотических путешествий, часть 03 из 10 (2026) [Игорь Ледоховский]