top of page

Python

Advanced

Master Python from the inside out

17 серп. 2026 р.

// старт наступної групи

4 місяці

// 40 занять, 4 місяці

400 $/місяць

1600 $

до 30 учасників

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

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 може допомогти в одних задачах і майже нічого не дати в інших, та як не будувати конкурентність навмання.

ВИКЛАДАЧ
         ТА АВТОР ПРОГРАМИ

ivan2.jpg

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

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 задачами

Перевірено випускниками -
        ТОП інженерами з індустрії

google

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 і ми з усім допоможемо

я зможу навчатися на курсі, якщо в мене інший часовий пояс?

Так, звісно. Всі заняття ми записуємо, тож різниця в часових поясах не буде суттєвою перешкодою. Переглядайте лекції коли зручно, а якщо виникнуть питання — викладач і команда на зв'язку в Slack-каналі.

чи є запис занять?

Щоразу організовуємо запис, однак краще долучатися до онлайн-зустрічі — обговорити питання з одногрупниками та проконсультуватися з викладачем. Доступ до записів зберігається протягом року з дня старту курсу.

який рівень підготовки потрібний?

Курс розрахований на Python-розробників рівня Junior+ / Strong Junior, які вже впевнено пишуть код і хочуть глибше зрозуміти, як Python працює «під капотом».

Детальніше вимоги описані у блоці Prerequisites вище на цій сторінці.

як проходять заняття?

Ми працюємо в невеликих групах до 25-30 людей у форматі живих занять із викладачем — зустрічаємося кілька разів на тиждень у Zoom. На заняттях розбираємо задачі, дискутуємо, уточнюємо деталі, розглядаємо приклади та аргументацію рішень. Формат побудований так, щоб кожен був залучений і мав можливість взаємодіяти з викладачем та групою.

до зустрічі на курсі

bottom of page