SEOWORK Academy · Professional track

Python Developer Professional

Безкоштовний практичний трек від першого відтворюваного Python-середовища до CLI, обробки даних, REST API та підсумкового вебзастосунку. Сертифікат відкриється лише після 58 уроків, чотирьох прийнятих проєктів і фінального іспиту.

16 модулів58 уроків4 review-проєктиСерія PY

Безпечний старт

Модулі 1–12 не потребують production-серверів, токенів або реальних даних. Працюйте в окремій теці та virtual environment; не додавайте .venv, паролі, API keys або персональні дані до репозиторію.

Професійний результат

58уроків із практичним тестом
580питань у навчальному банку
4проєкти з ручним review
32питання фінального іспиту

Чотири проєкти

01

CLI utility

Командна утиліта з чітким input/output contract, тестами, логуванням і документацією.

02

Data processor

Відтворювана обробка файлів із валідацією схеми, помилками та evidence report.

03

REST API

FastAPI-сервіс із PostgreSQL, тестами, authentication boundaries і документацією API.

04

Capstone web app

Версійований вебзастосунок із background work, observability, deployment та rollback plan.

Відкритий модуль 1

Starter pack модуля

Безпечна лабораторія

Завантажте Python Module 1 Safe Start Pack: README, діагностика середовища, starter CLI, стандартні unittest, очікуваний output і чеклист безпеки. Пакет не містить зовнішніх залежностей або секретів.

Модуль 2 — типи даних і керування потоком

5Типи, перетворення та числова точністьТип — це не підпис біля змінної, а набір допустимих операцій і поведінки значення під час виконання. Навчимося бачити фактичний runtime type, перетворювати дані лише на межі системи й не плутати красивий output із точною арифметикою.Відкрити →6Рядки, Unicode, індекси та зрізиТекст здається простим, поки в ньому не з’являються пробіли, різний регістр, українські символи або порожнє значення. Розберемо рядок як незмінну послідовність і побудуємо текстову обробку з явним контрактом, а не ланцюжок випадкових replace.Відкрити →7Умови, truthiness і безпечні рішенняУмова — це реалізація рішення, тому її треба читати як правило: які факти входять, у якому порядку перевіряються й який результат очікується на межах. Вчимося будувати прозорі гілки, а не складні вирази, правильність яких видно лише автору.Відкрити →8Цикли, range і контроль виконанняЦикл має не просто «крутитися», а мати джерело елементів або чіткий progress invariant, умову завершення й перевірюваний результат. Розберемо, коли обирати for чи while, як не отримати нескінченне виконання й як зробити пошук прозорим.Відкрити →

Модуль 3 — функції та модулі

9Функція як контракт: def, return і декомпозиціяФункція корисна не тому, що скорочує файл, а тому, що дає названий контракт: які значення приймає, що повертає, які стани відхиляє і які зовнішні ефекти створює. Такий блок можна перевірити окремо й без здогадок повторно використати.Відкрити →10Параметри й аргументи: сигнатура без сюрпризівСигнатура — публічний інтерфейс функції. Вона має зробити обов’язкове неможливо забути, значущі опції — зрозумілими в call site, а небезпечні default values — неможливими. Чим ясніша сигнатура, тим менше прихованих домовленостей у caller-а.Відкрити →11Scope, binding і mutability без прихованого стануPython передає функції об’єкти, а parameters стають локальними іменами, прив’язаними до цих об’єктів. Через це rebinding локального імені й mutation спільного list — різні події. Розуміння scope та aliasing прибирає клас помилок, які виглядають як «функція сама щось змінила».Відкрити →12Модулі, imports і __main__: структура малої програмиМодуль — не просто другий файл. Він створює окремий namespace і boundary відповідальності. Вдалий поділ дозволяє імпортувати core без запуску CLI, тестувати функції напряму й бачити dependencies за import-ами, а не копіювати definitions між скриптами.Відкрити →

Модуль 4 — колекції

13Списки й кортежі: контракт послідовностіПослідовність — це не просто «кілька значень». Вона має порядок, межі, правила зміни й очікувану форму елемента. Вибір між list і tuple має показувати, чи колекція росте й редагується, чи фіксує стабільний запис для читання та unpacking.Відкрити →14Словники: ключі, безпечний доступ і schemaDictionary пов’язує унікальний key із value. Це зручно, але не робить дані автоматично структурованими: треба визначити дозволені keys, required fields, типи values, duplicate policy і різницю між «поля немає» та «значення поля — None».Відкрити →15Множини: membership, дедуплікація й порівнянняSet моделює унікальність і належність, а не позицію. Він корисний для allowed values, already-seen IDs і порівняння двох наборів. Якщо бізнесу важливий порядок або кількість повторів, перетворення в set може знищити потрібну інформацію.Відкрити →16Comprehensions і вибір структури данихComprehension стисло створює нову collection із iterable. Вона корисна, коли transform і filter залишаються очевидними. Якщо в одному виразі з’являються кілька business branches, side effects або незрозуміла nested shape, звичайний loop із named steps буде професійнішим.Відкрити →

Review-проєкт 1: CLI-аудитор →

Модуль 5 — файли, помилки й логування

17Файли й pathlib: безпечна межа I/OФайл — зовнішня межа, де припущення програми зустрічаються з реальною файловою системою. До читання треба визначити allowed root, формат, encoding, граничний розмір і поведінку для missing/empty input; до запису — ownership, overwrite policy та спосіб не залишити частковий результат.Відкрити →18JSON і CSV: schema перед business logicПарсер підтверджує лише синтаксис формату. Успішний json.load або csv.DictReader ще не доводить required fields, types, allowed values, uniqueness чи business grain. Надійний pipeline розділяє decode, structural validation, normalization і domain rules.Відкрити →19Exceptions: вузький handler і чесний failureException — не незручність, яку треба приховати, а typed signal, що normal contract не може бути виконаний. Хороший handler знає, яку конкретну failure він може відновити або перекласти; усі інші exceptions мають зберегти traceback і дійти до boundary, де програма завершиться чесно.Відкрити →20Logging: evidence без витоку данихLog — operational evidence, а не смітник зі значеннями всіх variables. Корисний event відповідає: що сталося, де, з яким safe identifier, який result і що робити далі. Він не містить password, token, email, customer row або повний filesystem path лише тому, що їх легко надрукувати.Відкрити →

Review-проєкт 1 залишається доступним →

Модуль 6 — об’єктно-орієнтоване програмування

21Classes й objects: стан, methods та invariantsКлас корисний не тому, що групує кілька functions, а тому, що тримає допустимий стан і поведінку разом. Добрий object не дозволяє створити себе напіввалідним, не ділить випадково mutable state з іншими instances і має малий зрозумілий public API.Відкрити →22Encapsulation: property, classmethod і API boundaryEncapsulation у Python — не спроба зробити дані магічно недоступними. Це домовленість про public API: які names підтримуються, де перевіряються invariants і які implementation details caller не повинен використовувати як contract.Відкрити →23Composition, inheritance і polymorphismПовторне використання коду не означає автоматично inheritance. Спочатку визначте relationship: object є спеціалізованим різновидом base type чи лише використовує інший object як collaborator. Composition зазвичай робить залежності явними; inheritance доречна для стабільного substitutable contract.Відкрити →24Dataclasses і data model: value object без boilerplateRecord-like object часто потребує однакових constructor, representation і equality rules. Dataclass прибирає механічний boilerplate, але не визначає domain contract замість розробника: fields, mutability, validation, secret-safe repr і semantics equality треба обрати свідомо.Відкрити →

Review-проєкт 1 залишається доступним →

Модуль 7 — тестування

25unittest: fast feedback і executable contractТест — не доказ відсутності всіх bugs, а executable example конкретного contract. Він має падати з однієї зрозумілої причини, бути незалежним від порядку запуску й давати однаковий результат на локальній машині та в CI.Відкрити →26Test design: boundaries, tables і negative casesВелика кількість tests не гарантує сильне покриття поведінки. Найцінніші cases походять із contract: equivalence classes, межі, invalid inputs, state transitions і наслідки failure. Таблиця cases допомагає бачити пропуски до написання коду.Відкрити →27Test doubles: mock, patch і dependency seamsTest double замінює collaborator, а не саму логіку, яку треба перевірити. Найстійкіший seam — explicit dependency parameter або Protocol. Mock корисний для interaction contract, але надмірна кількість mocks прив’язує suite до implementation order.Відкрити →28Integration tests: CLI, filesystem і deterministic suiteUnit tests швидко локалізують logic defects, але не доводять, що package imports, CLI arguments, filesystem encoding і adapters працюють разом. Невелика кількість integration tests закриває wiring без production data або реальних зовнішніх side effects.Відкрити →

Review-проєкт 1 залишається доступним →

Модуль 8 — Git і командна робота

29Git model: snapshots, working tree, index і HEADGit стає передбачуваним, коли ви перестаєте сприймати його як кнопку «зберегти все». Repository зберігає snapshots, working tree містить поточні файли, index готує наступний snapshot, а HEAD називає commit, від якого ви працюєте.Відкрити →30Atomic commits: staging, history і safe undoХороший commit — не просто точка backup, а reviewable change з однією причиною. Index дозволяє відокремити finished logic від debug print або сусіднього refactor. Undo починається з питання: зміна local/uncommitted чи вже shared у history?Відкрити →31Branches, merge conflicts і rebase boundaryBranch у Git — легкий movable reference на commit, а не копія каталогу. Конфлікт не означає, що Git зламав код: дві histories змінили однаковий context, і людина має сформулювати правильний combined result та довести його tests.Відкрити →32Remotes і pull request: від fetch до reviewRemote collaboration складається з двох різних систем: Git передає commits і references, hosting platform організовує pull request, review, checks і permissions. Fetch не інтегрує код у вашу branch, а pull не є магічною синхронізацією без policy.Відкрити →

Перейти до review-проєкту 2 →

Модуль 9 — алгоритми й оцінка складності

33Algorithm contract: Big O, time і space complexityШвидкість на одному ноутбуці не є складністю алгоритму. Спочатку визначають input size, домінантну операцію та гіпотезу росту; лише потім запускають вимірювання й пояснюють, що саме вони доводять.Відкрити →34Search і sort: linear, binary, bisect та stabilityBinary search швидкий не тому, що код короткий, а тому, що кожен крок відкидає частину впорядкованого простору. Якщо sorted invariant не доведений або insertion домінує, очікувана перевага зникає.Відкрити →35Data structure choice: list, deque, dict, set і CounterСтруктуру даних обирають не за звичкою, а за домінантними операціями й потрібними гарантіями. Та сама колекція може бути чудовою для append і невдалою для queue-from-left або частих membership checks.Відкрити →36Traversal і priority: BFS, DFS, heap та lazy iterationTraversal — це не лише цикл: порядок frontier, visited policy і tie-breakers визначають результат. Priority queue теж потребує стабільного secondary key, якщо дві задачі мають однаковий пріоритет.Відкрити →

Review-проєкт 2 залишається доступним →

Модуль 10 — SQL і PostgreSQL

37PostgreSQL schema: types, keys, constraints і migrationsБаза даних починається не з ORM-моделі, а з контракту: які факти зберігаємо, хто ними володіє, що є ідентичністю, які стани заборонені та як змінити схему без втрати даних.Відкрити →38SELECT: filters, order, NULL і safe parametersSQL-запит має контракт так само, як функція Python: які rows він повертає, у якому порядку, за яких parameters і що означає порожній результат. Без цього навіть правильний SELECT стає нестабільним API.Відкрити →39JOIN, aggregation, cardinality, indexes і EXPLAINJOIN не просто додає columns: він змінює кількість rows. Перед оптимізацією треба довести cardinality й правильність результату; індекс і план виконання мають сенс лише після цього.Відкрити →40Psycopg: connections, transactions, repository і testsНадійний database code визначає не лише SQL, а й межу транзакції: хто відкриває connection, коли зміни стають видимими, що відбувається після помилки і як довести поведінку без production-даних.Відкрити →

Review-проєкт 2 залишається доступним →

Модуль 11 — HTTP і REST

Review-проєкт 2 залишається доступним →

Модуль 12 — FastAPI

44FastAPI і ASGI: path operations, parameters та OpenAPIFastAPI не скасовує HTTP contract — він перетворює Python type hints і path operation declarations на перевірний ASGI application, runtime validation та OpenAPI. Хороший endpoint починається не з декоратора, а з чіткої resource semantics.Відкрити →45Pydantic у FastAPI: request і response modelsType hint стає API boundary лише тоді, коли команда усвідомлює coercion, constraints, unknown fields і різницю між input, domain та public output. Один ORM object не повинен автоматично бути і request body, і database model, і response.Відкрити →46FastAPI dependencies, errors і async boundariesDependency injection робить request context і infrastructure явними, exception handlers уніфікують public failures, middleware охоплює cross-cutting behavior, а правильна async boundary не дозволяє blocking I/O зупинити event loop.Відкрити →47FastAPI architecture і contract testingAPI test має доводити поведінку через HTTP boundary, а не лише викликати handler як звичайну function. Testable architecture відділяє transport, use case та persistence, щоб contract перевірявся швидко, детерміновано й без production side effects.Відкрити →

Review-проєкт 2 залишається доступним →

Дорожня карта

1Середовище та синтаксис4 урокиДоступний
2Типи даних і керування потоком4 урокиДоступний
3Функції та модулі4 урокиДоступний
4Колекції4 урокиДоступний
5Файли, помилки й логування4 урокиДоступний
6Об’єктно-орієнтоване програмування4 урокиДоступний
7Тестування4 урокиДоступний
8Git і командна робота4 урокиДоступний
9Алгоритмічне мислення4 урокиДоступний
10SQL і PostgreSQL4 урокиДоступний
11HTTP і REST3 урокиДоступний
12FastAPI4 урокиДоступний
13Authentication basics3 урокиУ черзі
14Background tasks та інтеграції4 урокиУ черзі
15Deployment basics3 урокиУ черзі
16Підсумковий вебпроєкт1 урокУ черзі

Офіційна основа

Межа сертифікації

Це авторська програма SEOWORK, а не сертифікація Python Software Foundation або окремого вендора. Після модулів 1–12 і review-проєктів 1–2 прогрес зберігається, але фінал, PDF і QR server-side заблоковані до повної програми.

SEOWORK Education · контроль знань

Прогрес і сертифікація

Складіть практичний тест після кожного уроку, а потім фінальний іспит. Сертифікат міститиме унікальний номер і QR-перевірку справжності.

Урок 1 інтерпретатор, REPL і перший скрипт Пройти тест Урок 2 venv, pip і відтворюване середовище Пройти тест Урок 3 синтаксис, імена, значення та вирази Пройти тест Урок 4 Python CLI: введення, виведення й перша діагностика Пройти тест Урок 5 Типи, перетворення та числова точність Пройти тест Урок 6 Рядки, Unicode, індекси та зрізи Пройти тест Урок 7 Умови, truthiness і безпечні рішення Пройти тест Урок 8 Цикли, range і контроль виконання Пройти тест Урок 9 Функція як контракт: def, return і декомпозиція Пройти тест Урок 10 Параметри й аргументи: сигнатура без сюрпризів Пройти тест Урок 11 Scope, binding і mutability без прихованого стану Пройти тест Урок 12 Модулі, imports і __main__: структура малої програми Пройти тест Урок 13 Списки й кортежі: контракт послідовності Пройти тест Урок 14 Словники: ключі, безпечний доступ і schema Пройти тест Урок 15 Множини: membership, дедуплікація й порівняння Пройти тест Урок 16 Comprehensions і вибір структури даних Пройти тест Урок 17 Файли й pathlib: безпечна межа I/O Пройти тест Урок 18 JSON і CSV: schema перед business logic Пройти тест Урок 19 Exceptions: вузький handler і чесний failure Пройти тест Урок 20 Logging: evidence без витоку даних Пройти тест Урок 21 Classes й objects: стан, methods та invariants Пройти тест Урок 22 Encapsulation: property, classmethod і API boundary Пройти тест Урок 23 Composition, inheritance і polymorphism Пройти тест Урок 24 Dataclasses і data model: value object без boilerplate Пройти тест Урок 25 unittest: fast feedback і executable contract Пройти тест Урок 26 Test design: boundaries, tables і negative cases Пройти тест Урок 27 Test doubles: mock, patch і dependency seams Пройти тест Урок 28 Integration tests: CLI, filesystem і deterministic suite Пройти тест Урок 29 Git model: snapshots, working tree, index і HEAD Пройти тест Урок 30 Atomic commits: staging, history і safe undo Пройти тест Урок 31 Branches, merge conflicts і rebase boundary Пройти тест Урок 32 Remotes і pull request: від fetch до review Пройти тест Урок 33 Algorithm contract: Big O, time і space complexity Пройти тест Урок 34 Search і sort: linear, binary, bisect та stability Пройти тест Урок 35 Data structure choice: list, deque, dict, set і Counter Пройти тест Урок 36 Traversal і priority: BFS, DFS, heap та lazy iteration Пройти тест Урок 37 PostgreSQL schema: types, keys, constraints і migrations Пройти тест Урок 38 SELECT: filters, order, NULL і safe parameters Пройти тест Урок 39 JOIN, aggregation, cardinality, indexes і EXPLAIN Пройти тест Урок 40 Psycopg: connections, transactions, repository і tests Пройти тест Урок 41 HTTP contract: request, response, methods і status codes Пройти тест Урок 42 HTTP client у URL, timeout, errors і JSON Пройти тест Урок 43 REST API contract: resources, pagination і Problem Details Пройти тест Урок 44 FastAPI і ASGI: path operations, parameters та OpenAPI Пройти тест Урок 45 Pydantic у FastAPI: request і response models Пройти тест Урок 46 FastAPI dependencies, errors і async boundaries Пройти тест Урок 47 FastAPI architecture і contract testing Пройти тест

Практичні проєкти: 0/4 прийнято

Кожен проєкт перевіряється SEOWORK окремо. Для професійного сертифіката потрібен статус «Прийнято» для всіх обов’язкових робіт.

Професійний фінальний іспит і сертифікат Python Developer відкриються після всіх 16 модулів, 58 уроків та приймання чотирьох практичних проєктів. Поточний прогрес: 0/47 опублікованих уроків.