top of page

python internals

Master Python from the inside out.

старт:

23 бер. 2026 р.

16 занять

350 $/міс

про курс

Python швидкий настільки, наскільки ви розумієте, що відбувається під капотом. На цьому курсі ми відкриємо те, що зазвичай приховано: модель памʼяті CPython, PyObject, алокації та фрагментацію, GIL і конкуренцію потоків, multiprocessing, async та zero-copy підходи. Ви навчитеся не «припускати», а міряти, профілювати й оптимізувати. Ви переконаєтесь, що рішення на рівні пам’яті чи паралельності ніколи не є дрібницями — вони визначають швидкість, стійкість і вартість системи. 


Цей курс переводить розробника у категорію those who understand Python beneath Python — інженерів, що контролюють поведінку інтерпретатора, вміють будувати scalable рішення, зменшувати latency та RAM, писати код, який тримається під трафіком. Результат — відчутний приріст продуктивності ваших програм і впевненість у тому, що відбувається всередині інтерпретатора.  


Програма не для пасивного перегляду, а для глибокої роботи: дослідження, експерименти, оптимізацію й, можливо, переписування того, що здавалося правильним роками.

навчальний план
буде гаряче

  • Внутрішня обʼєктна модель CPython: PyObject, reference counting, роль GC 
  • Рівні керування памʼяттю: heap, arenas, pools, blocks та логіка роботи pymalloc
  • Типові патерни надлишкових алокацій і фрагментації памʼяті в Python-коді
  • Інструменти вимірювання та діагностики: tracemalloc, gc, sys.getsizeof, практичні техніки аналізу


Практика:  
Написання коду без зайвих алокацій

Як Python керує памʼяттю

Як влаштована памʼять в CPython і чому це має значення для продуктивності

  • Поверхневе, глибоке та приховане копіювання: де Python створює нові обʼєкти
  • Фрагментація памʼяті: причини виникнення та накопичення
  • Вплив копіювання та фрагментації на споживання памʼяті та стабільність системи
  • Що використовувати замість копій: робота з посиланнями та view-підходи (генератори, слабкі посилання, слоти, іменовані кортежі, датакласи) 

Практика:  
Реалізація Copy-On-Write масиву, аналіз прихованих алокацій, профілювання памʼяті

Копіювання та фрагментація памʼяті

Як непомітні копії та алокації впливають на споживання памʼяті та стабільність програм

  • Векторизація та відмова від Python-циклів NumPy і альтернативи: PyArrow, JAX — сценарії використання
  • Zero-copy підхід: buffer protocol, memoryview, mmap — робота з даними без копій
  • Компіляція та JIT-оптимізація: Cython, Numba. Коли це виправдано, а коли ні  

Практика: 
Робота з байтовими даними без копій, вибір оптимального підходу обробки даних під конкретну задачу

Швидкодія за межами Python

Коли інтерпретатора вже недостатньо і які підходи дозволяють масштабувати продуктивність

  • Локальні та зовнішні кеші (in-memory vs Redis): коли який підхід доречний
  • Типові помилки кешування: застарілі дані, cache stampede, неконтрольоване зростання 
  • Політики cache-eviction (LRU, LFU, TTL) і їх вплив на памʼять та hit-rate
  • Підходи до вибору розміру кешу: компроміс між споживанням памʼяті, швидкодією та стабільністю 

Практика:  
Вибір підходу під задачу, реалізація LRU-кешу, аналіз впливу кешу на продуктивність і поведінку алгоритму

Стратегії кешування

Від локального кешу до багаторівневих стратегій з Redis

  • Роль GIL у CPython та його вплив на продуктивність
  • Перемикання потоків: як Python поводиться з I/O-bound та CPU-bound задачами
  • Взаємодія GIL з планувальником потоків і сигналами
  • Реалізація GIL: мʼютекси, семафори, умовні змінні pthreads  

Практика:  
Вибір стратегії виконання та пояснення результатів з урахуванням впливу GIL

GIL та багатопоточність

Як Global Interpreter Lock визначає межі паралельності в CPython

  • Як та чому виникають гонки потоків
  • Примітиви блокування: mutex, lock і їх вплив на продуктивність
  • Потокобезпечна взаємодія через черги та обмін даними
  • Координація потоків: Semaphore, Event, Condition
  • Вибір кількості потоків: компроміс між паралельністю та накладними витратами

Практика:  
Реалізація багатопоточного log collector, реалізація thread-safe структур

Синхронізація та безпечна робота з потоками

Як уникати гонок, блокувань і нестабільної поведінки у багатопоточному коді

  • Моделі запуску процесів: fork, spawn
  • Обмін даними між процесами: черги, пайпи, shared memory
  • IPC та координація процесів
  • Вибір кількості процесів: баланс між продуктивністю та можливостями процесора  

Практика:  
Централізація логування, паралельні обчислення та спільний доступ до даних із використанням IPC і shared memory

Багатопроцесність

Як обходити обмеження GIL і масштабувати CPU-bound задачі через процеси

  • Корутинна модель та event loop: як досягається конкурентність 
  • Очікування та координація задач: await, gather, task groups
  • Типові помилки асинхронного коду: блокування loop, race conditions, витоки памʼяті
  • Зелені потоки та інші альтернативи

Практика:  
Оркестрація задач з використанням семафору, вибір стратегії паралельності/конкурентності для різних типів задач

Асинхронність

Як працює асинхронна модель виконання і де вона ламається в реальних системах

читає

Світлана Сумець

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

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

Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.

відгуки
що говорять випускники

що на вас чекає
have fun and dive deep

спільнота крутих людей

Проводимо відбір на курс, щоб ви навчалися поряд із сильними та вмотивованими. Навіть відраховуємо за незараховані домашки.

Викладач готовий працювати з вами, поки все не стане на свої місця. Іноді це третя ітерація code review, іноді — додатковий 1-1 на 15 хвилин. Ми тут, щоб вчитись і ставати сильнішими.

А ще щоб жартувати про своє в Slack-у та обмінюватися рефералами в круті компанії.

результат, який має сенс

Тут не буде поверхневих слайдів та довгих вступів: тільки глибокий розбір цікавих задач із реального продакшену.

Сертифікат видаємо не за відвідування, а за результати — виконані домашки, участь у дискусіях, відчутний рух та прогрес.

інтенсивний режим

Зустрічаємось у Zoom двічі на тиждень — щопонеділка і щопʼятниці о 18:30. Щотижня — нова домашка.

Усі лекції — це живі зустрічі з викладачем під запис (щоб повернутися до матеріалу пізніше). Регулярно проводимо додаткові Q&A-сесії із викладачем та тримаємо з вами звʼязок в Slack.

Мова викладання — українська.
Додаткові матеріали — англійською.

bottom of page