
Python
Advanced
Master Python from the inside out
The revolution needs builders
ПРО КУРС
Алгоритми та структури даних — фундамент, який працює в будь-якій мові програмування, але на рівні middle/senior справа вже не в тому, щоб їх "знати". Справа в тому, щоб вміти виводити рішення з обмежень задачі — від наївного підходу до оптимального, з усвідомленням trade-offs на кожному кроці. Саме цьому ми й вчимо: не запам'ятовувати готові розв'язки, а думати так, щоб приходити до них самостійно.
На курсі ми починаємо з ключових ідей, розбираємо їх глибоко й системно, а потім закріплюємо на великій кількості прикладів та продакшн-кейсів. У результаті ви зможете впевнено розв’язувати задачі рівня LeetCode Hard, проходити техспівбесіди в Big Tech, оптимізувати legacy-код і краще розуміти внутрішню логіку складних систем. Курс побудований як траєкторія: кожна наступна тема логічно виростає з попередньої, а інструменти з’являються саме тоді, коли стають потрібними для наступного кроку — так формується цілісна картина, а не набір розрізнених технік.
Це курс-виклик. 40 занять, сотні задач, код кожного тижня. Тих, хто не виконує домашки — відраховуємо. Тих, хто залишається — чекає розбір їхнього коду, живі дискусії та оточення інженерів, які теж хочуть стати сильнішими. Найкращі студенти наприкінці курсу отримають mock-інтервʼю з інженером із FAANG з персональним фідбеком.
prerequisites
:: Технічна англійська на рівні B1+ / B2 для читання документації
:: Буде плюсом базове розуміння потоків, процесів та асинхронності
:: Знання Python на рівні Junior+ / Strong Junior: синтаксис, функції, класи, модулі, винятки
:: Базова математика. Асимптотичний аналіз (Big-O), логарифми, комбінаторика
:: Базове розуміння ООП, ітераторів, генераторів, декораторів та контекстних менеджерів
:: Досвід роботи з типовими структурами даних Python: list, dict, set, tuple
ДВІЧІ на тиждень
Субота
10:00 UTC+3
Середа
18:30 UTC+3
// live зустрічі з записом
Стек
Будь-яка мова програмування
// live зустрічі з записом
ПРОГРАМА
:: 32 live заняття
:: 8 Q&A сесій
:: до 30 студентів в групі
Асинхронність
Як працює асинхронна модель виконання і де вона ламається в реальних системах
Корутинна модель та event loop: як досягається конкурентність
Очікування та координація задач: await, gather, task groups
Типові помилки асинхронного коду: блокування loop, race conditions, витоки памʼяті
Зелені потоки та інші альтернативи
Практика:
Оркестрація задач з використанням семафору, вибір стратегії паралельності/конкурентності для різних типів задач
Багатопроцесність
Як обходити обмеження GIL і масштабувати CPU-bound задачі через процеси
Моделі запуску процесів: fork, spawn
Обмін даними між процесами: черги, пайпи, shared memory
IPC та координація процесів
Вибір кількості процесів: баланс між продуктивністю та можливостями процесора
Практика:
Централізація логування, паралельні обчислення та спільний доступ до даних із використанням IPC і shared memory
Синхронізація та безпечна робота з потоками
Як уникати гонок, блокувань і нестабільної поведінки у багатопоточному коді
Як та чому виникають гонки потоків
Примітиви синхронізації: mutex, lock і їхній вплив на продуктивність
Потокобезпечна взаємодія через черги та обмін даними
Координація потоків: Semaphore, Event, Condition
Вибір кількості потоків: компроміс між паралельністю та накладними витратами
Практика:
Реалізація багатопоточного log collector, реалізація thread-safe структур
GIL та багатопоточність
Як Global Interpreter Lock визначає межі паралельності в CPython
Роль GIL у CPython та його вплив на продуктивність
Перемикання потоків: як Python поводиться з I/O-bound та CPU-bound задачами
Взаємодія GIL з планувальником потоків і сигналами
Реалізація GIL: мʼютекси, семафори, умовні змінні pthreads
Практика:
Вибір стратегії виконання та пояснення результатів з урахуванням впливу GIL
Стратегії кешування
Від локального кешу до багаторівневих стратегій з Redis
Локальні та зовнішні кеші (in-memory vs Redis): коли який підхід доречний
Типові помилки кешування: застарілі дані, cache stampede, неконтрольоване зростання
Політики cache-eviction (LRU, LFU, TTL) і їх вплив на памʼять та hit-rate
Підходи до вибору розміру кешу: компроміс між споживанням памʼяті, швидкодією та стабільністю
Практика:
Вибір підходу під задачу, реалізація LRU-кешу, аналіз впливу кешу на продуктивність і поведінку алгоритму
Швидкодія за межами Python
Коли інтерпретатора вже недостатньо і які підходи дозволяють масштабувати продуктивність
Векторизація та відмова від Python-циклів NumPy і альтернативи: PyArrow, JAX — сценарії використання
Zero-copy підхід: buffer protocol, memoryview, mmap — робота з даними без копій
Компіляція та JIT-оптимізація: Cython, Numba. Коли це виправдано, а коли ні
Практика:
Робота з байтовими даними без копій, вибір оптимального підходу обробки даних під конкретну задачу
Копіювання та фрагментація памʼяті
Як непомітні копії та алокації впливають на споживання памʼяті та стабільність програм
Поверхневе, глибоке та приховане копіювання: де Python створює нові обʼєкти
Фрагментація памʼяті: причини виникнення та накопичення
Вплив копіювання та фрагментації на споживання памʼяті та стабільність системи
Що використовувати замість копій: робота з посиланнями та view-підходи (генератори, слабкі посилання, слоти, іменовані кортежі, датакласи)
Практика:
Реалізація Copy-On-Write масиву, аналіз прихованих алокацій, профілювання памʼяті
Як Python керує памʼяттю
Як влаштована памʼять в CPython і чому це має значення для продуктивності
Внутрішня обʼєктна модель CPython: PyObject, reference counting, роль GC
Рівні керування памʼяттю: heap, arenas, pools, blocks та логіка роботи pymalloc
Типові патерни надлишкових алокацій і фрагментації памʼяті в Python-коді
Інструменти вимірювання та діагностики: tracemalloc, gc, sys.getsizeof, практичні техніки аналізу
Практика:
Написання коду без зайвих алокацій
Recursion
Text manipulation techniques.
Deep understanding of parsing techniques
Working with lists and trees
ЯК ПРОХОДИТЬ
НАВЧАННЯ
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
01
фідбек та ітерації
// Домашки не задаємо для галочки. Викладач перевіряє ваші результати та відправляє на доопрацювання та пояснює пробіли
Zoom
ПРАКТИЧНА
РОБОТА
:: 30 завдань
:: пишете власну СУБД
:: ФІДБЕК ВИКЛАДАЧА
// Рекомендуємо виділяти 6–10 годин на тиждень для виконання домашніх завдань, щоб отримати максимальний результат від курсу.
Copy-On-Write Array
Реалізуй структуру зі shared buffer і копіюванням лише під час запису.
Створи структуру, де копії масиву ділять спільний буфер, а реальне копіювання відбувається лише під час першого запису.
Завдання допомагає зрозуміти оптимізацію памʼяті, refcount, shared state та підхід, який лежить в основі snapshot-структур, zero-copy операцій і fork-процесів.
ЩО ЗМІНИТЬСЯ
ПІСЛЯ КУРСУ
4
проєктуєш багатозадачність під реальне навантаження
// Вмієш обирати між asyncio, потоками та процесами залежно від типу зада чі, обмежень системи й очікуваного навантаження - щоб рішення було не просто швидшим, а справді ефективним і стабільним.
1
читаєш Python на рівні інтерпретатора
// Розумієш, як PyObject, reference counting і pymalloc формують поведінку коду - і бачиш потенційні витоки памʼяті, зайві алокації та неочевидні performance-проблеми ще на етапі code review.
2
контролюєш памʼять під навантаженням
// RAM-споживання стає більш передбачуваним: ти вмієш профілювати алокації, знаходити фрагментацію, прибирати зайві копії та замінювати їх ефективнішими підходами - зокрема memoryview, генераторами й роботою з даними без дублювання.
3
бачиш, де Python справді паралельний, а де лише здається
// Розумієш, як GIL впливає на виконання коду, чому threading може допомогти в одних задачах і майже нічого не дати в інших, та як не будувати конкурентність навмання.
ВИКЛАДАЧ
ТА АВТОР ПРОГРАМИ

Світлана Сумець
Senior Python Software Engineer @N-iX
Експертка з високонавантажених систем та сертифікована AWS-архітекторка.
Проєктує масштабовані low-latency рішення та складні інтеграції для глобальних корпорацій
:: випустив понад 300 інженерів
:: 14 років інженерного досвіду з високонавантаженими системами
:: випускник Stanford University
01
5+ років комерційного досвіду в Python backend engineering, зокрема у високонавантажених системах
02
AWS Certified Developer – Associate, AWS Certified Cloud Practitioner
03
B.Sc. & M.Sc. in Computer Science & AI, ХНУРЕ
04
Працює з backend, cloud infrastructure, distributed systems та runtime performance задачами
Перевірено випускниками -
ТОП інженерами з індустрії
amazon
netflix
booking.com
spotify
meta
БРОНЮЙ СВОЄ
МІСЦЕ В ГРУПІ
оплата помісячно
420 $
курс триває 4 місяці
оплата за весь курс
1600 $
за курсом нбу
ПЕРШИЙ КРОК ЗА ТОБОЮ
Я приймаю умови Публічної оферти та надаю згоду на обробку своїх персональних даних відповідно до Політики конфіденційності.
За тебе може заплатити роботодавець?
Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.
МАЄШ ПИТАННЯ?
МИ ВІДПОВІДАЄМО
// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо