
Подай заявку
на відбір
за Весь курс
700 $
за курсом нбу
помісячно
370 $
КУРС ТРИВАЄ 2 МІСЯЦІ
ПЕРШИЙ КРОК ЗА ТОБОЮ
Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.
За тебе може заплатити роботодавець?
Напиши нам на hello@csosvita.com, і ми оформимо все якнайшвидше.
МАЄШ ПИТАННЯ?
МИ ВІДПОВІДАЄМО
// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо
я зможу навчатися на курсі, якщо в мене інший часовий пояс?
Так, звісно. Всі заняття ми записуємо, тож різниця в часових поясах не буде суттєвою перешкодою. Переглядайте лекції коли зручно, а якщо виникнуть пита ння — викладач і команда на зв'язку в Slack-каналі.
чи є записи занять?
Щоразу організовуємо запис, однак краще долучатися д о онлайн-зустрічі — обговорити питання з одногрупниками та проконсультуватися з викладачем. Доступ до записів зберігається протягом року з дня старту курсу.
який рівень підготовки потрібен?
Курс розрахований на Python-розробників рівня Junior+ / Strong Junior, які вже впевнено пишуть код і хочуть глибше зрозуміти, як Python працює «під капотом».
Детальніше вимоги описані у блоці Prerequisites вище на цій сторінці.
як проходять заняття?
Ми працюємо в невеликих групах до 25-30 людей у форматі живих занять із викладачем — зустрічаємося кілька разів на тиждень у Zoom. На заняттях розбираємо задачі, дискутуємо, уточнюємо деталі, розглядаємо приклади та аргументацію рішень. Формат побудований так, щоб кожен був залучений і мав можливість взаємодіяти з викладачем та групою.
до зустрічі на курсі
Перевірено випускниками —
ТОП інженерами з індустрії
Я повністю задоволений курсом: було багато цікавої, корисної й доступно поданої інформації. Особливо сподобались практичні завдання, а також якісні та зрозумілі презентації. Окремо хочу відзначити лекторку — вона дуже активно коментувала наші pull request’и, і це було справді цінно для навчання.
ПРО КУРС
Python швидкий настільки, наскільки добре ви розумієте, що відбувається під капотом. На цьому курсі ми відкриємо те, що зазвичай приховано: модель памʼяті CPython, PyObject, алокації та фрагментацію, GIL і конкурентність потоків, multiprocessing, async та zero-copy підходи. Ви навчитеся не «припускати», а міряти, профілювати й оптимізувати. Ви переконаєтесь, що робота з пам’яттю чи потоками — це не дрібниці, а фундамент, що визначає швидкість, стійкість та вартість вашої системи.
Цей курс переводить розробника у категорію those who understand Python beneath Python — інженерів, що контролюють поведінку інтерпретатора, вміють будувати scalable-рішення, зменшувати latency та споживання RAM, писати код стійкий до високих навантажень. Результат — відчутний приріст продуктивності програм і повний контроль над тим, як вони працюють зсередини.
Програма не для пасивного перегляду, а для глибокої роботи: дослідження, експерименти, оптимізація й, можливо, переписування того, що здавалося правильним роками.
ЩО ПОТРІБНО ЗНАТИ
:: Технічна англійська на рівні B1+ / B2 для роботи з технічними статтями
:: Буде плюсом базове розуміння потоків, процесів та асинхронності
:: Python на рівні Junior: впевнене володіння змінними, функціями, класами, ООП та базовими принципами написання чистого коду.
:: Шкільна математика та математичне мислення
:: Базове розуміння ітераторів, генераторів, декораторів, контекстних менеджерів і принципів організації коду в Python
:: Практичний досвід роботи з основними структурами даних Python: list, dict, set, tuple
ДВІЧІ на тиждень
ПОНЕДІЛОК 18:30 (UTC+3)
ПʼЯТНИЦЯ 18:30 (UTC+3)
// live зустрічі з записом
Стек
Python
// пишемо код з першого заняття
ПРОГРАМА
:: 16 ЗАНЯТЬ :: LIVE-CODING :: ДО 25 СТУДЕНТІВ У ГРУПІ
Як Python керує памʼяттю
Як влаштована памʼять в CPython і чому це має значення для продуктивності
Внутрішня обʼєктна модель CPython: PyObject, reference counting, роль GC
Рівні керування памʼяттю: heap, arenas, pools, blocks та логіка роботи pymalloc
Типові патерни надлишкових алокацій і фрагментації памʼяті в Python-коді
Інструменти вимірювання та діагностики: tracemalloc, gc, sys.getsizeof, практичні техніки аналізу
Практика:
Написання коду без зайвих алокацій
Копіювання та фрагментація памʼяті
Як непомітні копії та алокації впливають на споживання памʼяті та стабільність програм
Поверхневе, глибоке та приховане копіювання: де Python створює нові обʼєкти
Фрагментація памʼяті: причини виникнення та накопичення
Вплив копіювання та фрагментації на споживання памʼяті та стабільність системи
Що використовувати замість копій: робота з посиланнями та view-підходи (генератори, слабкі посилання, слоти, іменовані кортежі, датакласи)
Практика:
Реалізація Copy-On-Write масиву, аналіз прихованих алокацій, профілювання памʼяті
Швидкодія за межами Python
Коли інтерпретатора вже недостатньо і які підходи дозволяють масштабувати продуктивність
Векторизація та відмова від Python-циклів NumPy і альтернативи: PyArrow, JAX — сценарії використання
Zero-copy підхід: buffer protocol, memoryview, mmap — робота з даними без копій
Компіляція та JIT-оптимізація: Cython, Numba. Коли це виправдано, а коли ні
Практика:
Робота з байтовими даними без копій, вибір оптимального підходу обробки даних під конкретну задачу
Стратегії кешування
Від локального кешу до багаторівневих стратегій з Redis
Локальні та зовнішні кеші (in-memory vs Redis): коли який підхід доречний
Типові помилки кешування: застарілі дані, cache stampede, неконтрольоване зростання
Політики cache-eviction (LRU, LFU, TTL) і їх вплив на памʼять та hit-rate
Підходи до вибору розміру кешу: компроміс між споживанням памʼяті, швидкодією та стабільністю
Практика:
Вибір підходу під задачу, реалізація LRU-кешу, аналіз впливу кешу на продуктивність і поведінку алгоритму
GIL та багатопоточність
Як Global Interpreter Lock визначає межі паралельності в CPython
Роль GIL у CPython та його вплив на продуктивність
Перемикання потоків: як Python поводиться з I/O-bound та CPU-bound задачами
Взаємодія GIL з планувальником потоків і сигналами
Реалізація GIL: мʼютекси, семафори, умовні змінні pthreads
Практика:
Вибір стратегії виконання та пояснення результатів з урахуванням впливу GIL
Синхронізація та безпечна робота з потоками
Як уникати гонок, блокувань і нестабільної поведінки у багатопоточному коді
Як та чому виникають гонки потоків
Примітиви синхронізації: mutex, lock і їхній вплив на продуктивність
Потокобезпечна взаємодія через черги та обмін даними
Координація потоків: Semaphore, Event, Condition
Вибір кількості потоків: компроміс між паралельністю та накладними витратами
Практика:
Реалізація багатопоточного log collector, реалізація thread-safe структур
Багатопроцесність
Як обходити обмеження GIL і масштабувати CPU-bound задачі через процеси
Моделі запуску процесів: fork, spawn
Обмін даними між процесами: черги, пайпи, shared memory
IPC та координація процесів
Вибір кількості процесів: баланс між продуктивністю та можливостями процесора
Практика:
Централізація логування, паралельні обчислення та спільний доступ до даних із використанням IPC і shared memory
Асинхронність
Як працює асинхронна модель виконання і де вона ламається в реальних системах
Корутинна модель та event loop: як досягається конкурентність
Очікування та координація задач: await, gather, task groups
Типові помилки асинхронного коду: блокування loop, race conditions, витоки памʼяті
Зелені потоки та інші альтернативи
Практика:
Оркестрація задач з використанням семафору, вибір стратегії паралельності/конкурентності для різних типів задач
ЯК ПРОХОДИТЬ
НАВЧАННЯ
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє рішення, повертає на доопрацювання та пояснює, де прогалини
Zoom
02
записи та конспекти
// Записуємо всі заняття та ділимося матеріалами, щоб ви не втрачали темп навіть через форс-мажори чи особист і обставини
Zoom
03
live звʼязок
// Усі заняття проходять в живому форматі з викладачем, щоб поставити запитання та попрактикувати live-coding
Zoom
01
live зв'язок
// Усі заняття проходять в живому форматі з викладачем, щоб поставити запитання та попрактикувати live-coding
Zoom
Slack
02
записи та конспекти
// Записуємо всі заняття та ділимося матеріалами, щоб ви не втрачали темп навіть через форс-мажори чи особисті обставини
Notion
03
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює
GitHub
HackerRank
ПРАКТИЧНА
РОБОТА
:: 8+1 ДОМАШНІХ ЗАВДАНЬ :: ФІДБЕК ТА РЕВʼЮ :: РЕАЛЬНІ ПРОДАКШН ЗАДАЧІ
Copy-On-Write Array
// приклад однієї з домашок на курсі
Модуль-02 · Копіювання та фрагментація памʼяті.
Створи структуру, де копії масиву ділять спільний буфер, а реальне копіювання відбувається лише під час першого запису.
Завдання допомагає зрозуміти оптимізацію памʼяті, refcount, shared state та підхід, який лежить в основі snapshot-структур, zero-copy операцій і fork-процесів.
ЩО ЗМІНИТЬСЯ
ПІСЛЯ КУРСУ
1
читаєш і розумієш Python зсередини
// Розумієш, як PyObject, reference counting і pymalloc формують поведінку коду і бачиш потенційні витоки памʼяті, зайві алокації та неочевидні performance-проблеми ще на етапі code review.
2
контролюєш памʼять під навантаженням
// RAM-споживання стає більш передбачуваним: ти вмієш профілювати алокації, знаходити фрагментацію, прибирати зайві копії та замінювати їх ефективнішими підходами - зокрема memoryview, генераторами й роботою з даними без дублювання.
3
бачиш, де Python справді паралельний, а де лише здається
// Розумієш, як GIL впливає на виконання коду, чому threading може допомогти в одних задачах і майже нічого не дати в інших, та як не будувати конкурентність навмання.
ВИКЛАДАЧ
ТА АВТОР ПРОГРАМИ

Світлана Сумець
Senior Python Software Engineer @N-iX
:: 5+ років комерційного досвіду в Python backend engineering, зокрема у високонавантажених системах.
:: AWS Certified Developer — Associate, AWS Certified Cloud Practitioner.
:: B.Sc. & M.Sc. in Computer Science & AI, ХНУРЕ.
:: Працює з backend, cloud infrastructure, distributed systems та runtime performance задачами.

