top of page

Performance Engineering

Practice writing fast software. Learn to do it right.

Про курс

Алгоритміка заклала фундамент мислення, тепер настав час зазизрнути ще глибше. Адже хороші програмісти знають інструменти, що використовують, а найкращі з них можуть мислити про виконання програми на різних рівнях - від мови програмування до операційної системи та процесора​. Ці знання дозволяють знаходити вузькі місця в коді, писати швидкі, коректні, надійні асинхронні та багатопоточні програми, приймати правильні архітектурні рішення.

Курс є важливим для подальшого вивчення Compilers, Databases та Operating Systems i потребує знань з Aлгоритмів.

21 травня 2024

27 занять

курс триває 3 місяці

обмежена кількість місць

вебінари вівторок, п'ятниця о 19:00

Під час курсу

10% теорії 90% практики

нестандартні домашні завдання

code review та регулярний фідбек

12000 грн/міс.

10% переводимо на ЗСУ

Різні тарифи? Ні, лише преміум підхід.

Куратор

272838157_4824965370904852_2047525019762377337_n.jpg

Engineering Lead y Squad, Founder в CS osvita. Ex - Dell Software Engineer,

Fiverr Senior Software Engineer, Ring Machine Learning Engineer.

Навчальний план.
Буде гаряче

CPU

  • Не асимптотичні оптимізації алгоритмів

  • Чи всі інструкції 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

 

A 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

Carmack.jpg

Джон Ромеро та Джон Кармак після закінчення курсу Performance Engineering

1. Zoom зустрічі

Вебінари з куратором двічі на тиждень - вівторок, п'ятниця о 19:00. Тривалість 1.5 години. Ми щоразу організовуємо запис. Мова викладання - українська. Додаткові матеріали - англійською.

2. Домашні завдання

Коду доведеться написати багато. Ціль - закріпити пройдений матеріал на production-like завданнях.

3. Q&A сесії

Окрім вебінарів, щотижневі зустрічі з куратором. Маєте запитання? Отримуєте відповіді. 

4. Регулярний фідбек

Slack підтримка 24/7, code review, коментарі. І, так, десята ітерація — це нормально.

5. Цінності

Панує атмосфера відкритості, доброзичливості, дисциплінованості та русофобії.

Реєстрація.
Перший крок за вами

До зв'язку!

bottom of page