Про курс
Алгоритміка заклала фундамент мислення, тепер настав час зазизрнути ще глибше. Адже хороші програмісти знають інструменти, що використовують, а найкращі з них можуть мислити про виконання програми на різних рівнях - від мови програмування до операційної системи та процесора. Ці знання дозволяють знаходити вузькі місця в коді, писати швидкі, коректні, надійні асинхронні та багатопоточні програми, приймати правильні архітектурні рішення.
Курс є важливим для подальшого вивчення Compilers, Databases та Operating Systems i потребує знань з Aлгоритмів.
10 вересня 2024
27 занять + 12 Q&A сесій
курс триває 3 місяці
обмежена кількість місць
вебінари вівторок, п'ятниця о 18:30
Під час курсу
10% теорії 90% практики
нестандартні домашні завдання
code review та регулярний фідбек
12000 грн/міс.
10% переводимо на ЗСУ
Різні тарифи? Ні, лише преміум підхід.
Куратор
Engineering Lead y Squad, Founder в CS osvita. Ex - Dell Software Engineer,
Fiverr Senior Software Engineer, Ring Machine Learning Engineer.
Навчальний план.
Буде гаряче
CPU
-
Найпопулярніші техніки оптимізації алгоритмів
-
Sentinel та як він дозволяє пришвидшити код
-
Чи всі інструкції CPU однаково швидкі?
-
Як Twitter та Facebook пришвидшили продакшн код в 100 разів
-
Оптимізації наносекунд в High-frequency trading (HFT) компаніях
-
Реалізація віртуальної машини як Java Virtual Machine (JVM)
-
Python vs C. У скільки разів та чому Python сповільнює код?
Cache
-
Пришвидшення продакшн-коду за рахунок memory hierarchy
- OOP мертвий. Хай живе Data-Oriented Design
-
Нюанси написання сache-friendly алгоритмів та структур даних
-
Кеш операційної системи та вплив на реалізацію File I/O
- Інструменти для вимірювання cache performance
А Bit about Bytes
-
Bitmap-індекси в базах даних
-
Деталі представлення та роботи з типами int, float, string
-
Як влаштований variable length int під капотом у Protobuf?
-
Unicode або як Twitter обмежує розмір твіта?
-
Bit hacks
Memory
-
Реалізуємо Memory allocator та Garbage collector
- Alignment даних. Вплив на пам'ять та швидкодію
- Масиви та структури. Тонкощі реалізації list в Python
-
Сегменти пам'яті. Як влаштований Stack і Heap
Low-level optimizations
-
Пришвидшення за рахунок Instruction-level parallelism (ILP)
-
Використання SIMD та Branch prediction на прикладах
-
Вступ до асемблеру. Навчимося писати та читати прості програми
-
Reverse-engineering
Operating system
-
Як влаштована Virtual Memory та Page Tables під капотом
-
Як працюють System calls та context switches
-
Key features OS provide for users
-
How Page Faults can dramatically affect performance?
Processes
-
Реалізуємо свій Shell
-
Fork + Exec
-
Як досягається координація між процесами через pipe
Multithreading and Concurrency
-
Threads vs. Processes vs. Coroutines: погляд зсередини
-
Реалізуємо Event loop
-
Synchronization objects та Data races. Як реалізувати м'ютекс?
-
Напишемо Thread pool та виправимо багато конкурентних багів
Відгуки.
Що говорять випускники
Що на вас чекає.
Lectures that go way beyond the basics
Джон Ромеро та Джон Кармак після закінчення курсу Performance Engineering
1. Zoom зустрічі
Вебінари з куратором двічі на тиждень - вівторок, п'ятниця о 18:30. Тривалість 1.5 години. Ми щоразу організовуємо запис. Мова викладання - українська. Додаткові матеріали - англійською.
2. Домашні завдання
Коду доведеться написати багато. Ціль - закріпити пройдений матеріал на production-like завданнях.
3. Q&A сесії
Окрім вебінарів, щотижневі зустрічі з куратором. Маєте запитання? Отримуєте відповіді.
4. Регулярний фідбек
Slack підтримка 24/7, code review, коментарі. І, так, десята ітерація — це нормально.
5. Цінності
Панує атмосфера відкритості, доброзичливості, дисциплінованості та русофобії.