
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 студентів в групі
Asynchrony
How the asynchronous execution model works and where it breaks down in real systems
- Coroutine model and event loop: how concurrency is achieved
- Waiting and coordinating tasks: await, gather, task groups
- Typical asynchronous code errors: blocking loops, race conditions, memory leaks
- Green flows and other alternatives
Practice:
Task orchestration using a semaphore, choosing a concurrency/concurrency strategy for different types of tasks
Multiprocessing
How to bypass GIL restrictions and scale CPU-bound tasks across processes
- Process launch models: fork, spawn
- Data exchange between processes: queues, pipes, shared memory
- IPC and process coordination
- Choosing the number of processes: balancing performance and processor capabilities
Practice:
Centralized logging, parallel computing, and data sharing using IPC and shared memory
Synchronization and safe work with threads
How to avoid races, deadlocks, and unstable behavior in multithreaded code
- How and why thread races arise
- Locking primitives: mutex, lock and their impact on performance
- Thread-safe interaction through queues and data exchange
- Thread Coordination: Semaphore, Event, Condition
- Choosing the Number of Threads: A Tradeoff Between Concurrency and Overhead
Practice:
Implementation of a multi-threaded log collector, implementation of thread-safe structures
GIL and multithreading
How the Global Interpreter Lock determines concurrency limits in CPython
- The role of the GIL in CPython and its impact on performance
- Thread switching: how Python handles I/O-bound and CPU-bound tasks
- GIL interaction with thread scheduler and signals
- GIL implementation: mutexes, semaphores, pthreads conditional variables
Practice:
Choosing an execution strategy and explaining the results taking into account the impact of GIL
Caching strategies
From local cache to multi-tier strategies with Redis
- Local and external caches (in-memory vs Redis): when is which approach appropriate?
- Typical caching errors: stale data, cache stampede, uncontrolled growth
- Cache-eviction policies (LRU, LFU, TTL) and their impact on memory and hit-rate
- Approaches to choosing cache size: a trade-off between memory consumption, performance, and stability
Practice:
Choosing an approach for the task, implementing an LRU cache, analyzing the impact of the cache on performance and algorithm behavior
Performance beyond Python
When an interpreter is no longer enough and what approaches allow you to scale performance
- Vectorization and abandonment of Python loops NumPy and alternatives: PyArrow, JAX — usage scenarios
- Zero-copy approach: buffer protocol, memoryview, mmap — working with data without copies
- Compilation and JIT optimization: Cython, Numba. When it's justified and when it's not
Practice:
Working with byte data without copies, choosing the optimal data processing approach for a specific task
Memory copying and fragmentation
How silent copies and allocations affect memory consumption and program stability
- Shallow, deep, and hidden copying: where Python creates new objects
- Memory fragmentation: causes and accumulation
- The impact of copying and fragmentation on memory consumption and system stability
- What to use instead of copies: working with references and view approaches (generators, weak references, slots, named tuples, dataclasses)
Practice:
Implementation of Copy-On-Write array, analysis of hidden allocations, memory profiling
How Python manages memory
How memory is organized in CPython and why it matters for performance
- CPython's internal object model: PyObject, reference counting, the role of GC
- Memory management levels: heap, arenas, pools, blocks and pymalloc logic
- Typical patterns of overallocation and memory fragmentation in Python code
- Measurement and diagnostic tools: tracemalloc, gc, sys.getsizeof, practical analysis techniques
Practice: Writing code without unnecessary allocations
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 $
за курсом нбу
ПЕРШИЙ КРОК ЗА ТОБОЮ
I accept the terms of the Public Offer Agreement and consent to the processing of my personal data in accordance with the Privacy Policy.
За тебе може заплатити роботодавець?
Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.
МАЄШ ПИТАННЯ?
МИ ВІДПОВІДАЄМО
// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо