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 студентів в групі

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

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

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

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 $

за курсом нбу

ПЕРШИЙ КРОК ЗА ТОБОЮ

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

За тебе може заплатити роботодавець?

Напиши нам на hello@csosvita, і ми оформимо все якнайшвидше.

МАЄШ ПИТАННЯ?
     МИ ВІДПОВІДАЄМО

// Не знайшли відповідь, яку шукали? Напишіть нам на hello@csosvita.com і ми з усім допоможемо

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

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

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

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

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

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

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

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

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

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

bottom of page