Kurs Python dla zaawansowanych
To 32-lekcyjny kurs, który jest skierowany do osób, które mają już dobrą znajomość podstaw języka Python i chcą wejść na wyższy poziom w tworzeniu efektywnych, skalowalnych oraz profesjonalnych aplikacji.
Proponowany wiek
12 lat+ (lub każdy, kto posiada solidne podstawy Pythona i chce rozwinąć umiejętności!)
Wymagania
Bardzo dobra znajomość podstaw Pythona, chęć nauki zaawansowanych technologii i narzędzi, stabilne połączenie z internetem oraz dobry humor.
Program kursu – 8 modułów (32 lekcje)
Moduł 1: Zaawansowane funkcje i struktury danych +
- Rozszerzone możliwości funkcji: Funkcje lambda, domknięcia, dekoratory, wykorzystanie functools.
- Generatory i iteratory: Tworzenie obiektów iterowalnych, yield, lazy evaluation.
- Namedtuple, dataclass i kolekcje zaawansowane: collections (deque, defaultdict, Counter).
- Wzorce projektowe związane z funkcjami: Iterator, Command, Strategy w praktyce.
Moduł 2: Programowanie obiektowe na poziomie eksperckim +
- Dziedziczenie wielokrotne i mixins: Zasada MRO, dobre praktyki stosowania mixins.
- Metody i atrybuty magiczne: __new__, __call__, __getitem__, operator overloading.
- Metaklasy i metaprogramowanie: Czym są metaklasy, sposoby dynamicznego tworzenia klas.
- Wzorce projektowe w OOP: Singleton, Factory, Observer.
Moduł 3: Testowanie, debugowanie i optymalizacja +
- Testy jednostkowe i integracyjne (pytest, unittest): Tworzenie scenariuszy testowych, fixture, testy integracyjne.
- Mockowanie i testy wydajnościowe: Biblioteka mock, patch, testowanie funkcji zależnych.
- Debugowanie w praktyce: Breakpoints, debug mode w IDE (PyCharm, VSCode), logger.
- Analiza złożoności i optymalizacja algorytmów: Big-O w praktyce, narzędzia do mierzenia czasu i zużycia pamięci.
Moduł 4: Współbieżność, równoległość i asynchroniczność +
- Procesy i wątki w Pythonie: GIL, multiprocessing vs. multithreading.
- Asynchroniczność – asyncio, coroutines: Tworzenie pętli zdarzeń (event loop), async/await.
- Zarządzanie kolejkami i synchronizacja: Moduł queue, Lock, Semaphore, Condition.
- Wzorce projektowe we współbieżności (Producer-Consumer): Implementacje w Pythonie.
Moduł 5: Zaawansowane operacje sieciowe i tworzenie API +
- Sockety i protokoły sieciowe: Komunikacja TCP/UDP, tworzenie podstawowego serwera.
- Frameworki webowe (Flask, FastAPI): Tworzenie REST API, routing, middleware, autoryzacja.
- Asynchroniczne API – websockets: Budowa serwisów real-time (chat, powiadomienia).
- Wzorce projektowe w aplikacjach sieciowych (MVC, MVP): Architektura webowa, separacja logiki biznesowej.
Moduł 6: Bazy danych i ORM +
- Połączenie z bazami relacyjnymi (SQLite, PostgreSQL): psycopg2, sqlite3 – wykonywanie zapytań, transakcje.
- SQLAlchemy – ORM w Pythonie: Definiowanie modeli, mapowanie klas na tabele.
- Bazy NoSQL (MongoDB): Podstawy dokumentów, kolekcji i zapytań MongoDB.
- Projektowanie schematów i optymalizacja zapytań: Normalizacja vs. denormalizacja.
Moduł 7: Automatyzacja i DevOps +
- Skrypty automatyzujące i harmonogramy: Zadania cykliczne (cron, apscheduler), automatyczne przetwarzanie.
- Docker i konteneryzacja aplikacji: Pisanie Dockerfile, tworzenie obrazów i kontenerów.
- CI/CD w projektach Python: Integracja ciągła (GitHub Actions, GitLab CI), testy automatyczne.
- Wdrażanie aplikacji na produkcję: Hosting w chmurze (AWS, Azure, Heroku), konfiguracja serwerów.
Moduł 8: Projekt końcowy i dalsze kroki +
- Projekt 1: Skalowalna aplikacja webowa: Tworzenie większego projektu w zespole.
- Projekt 2: Zaawansowany skrypt do analizy danych: Przetwarzanie dużych zbiorów, automatyczne raporty.
- Bezpieczeństwo w Pythonie: Zasady bezpiecznego kodowania (SQL injection, XSS, CSRF).
- Podsumowanie i kierunki dalszego rozwoju: Prezentacja projektów końcowych, perspektywy kariery.
Harmonogram: 1 spotkanie w tygodniu – 60 lub 90 minut
Płatność: 80–100 zł za lekcję
Ilość osób w grupie: 1–4
