Python: Zaawansowane programowanie
LICZBA DNI: 5 (40h)
KOD KURSU: PYTHON/ADV
Weź udział w szkoleniu
Termin
Lokalizacja
Trener
Cena / os
19
kwietnia
Dostępne w BUR
Warszawa,
Kraków,
Zdalne,
23
sierpnia
Dostępne w BUR
Warszawa,
Zdalne,
25
października
Dostępne w BUR
Gdańsk,
Warszawa,
Zdalne,
13
grudnia
Dostępne w BUR
Warszawa,
Zdalne,
Termin
19
kwietnia
Lokalizacja
Warszawa,
Kraków,
Zdalne,
Trener
Cena / os
Termin
23
sierpnia
Lokalizacja
Warszawa,
Zdalne,
Trener
Cena / os
Termin
25
października
Lokalizacja
Gdańsk,
Warszawa,
Zdalne,
Trener
Cena / os
Termin
13
grudnia
Lokalizacja
Warszawa,
Zdalne,
Trener
Cena / os
Powiadom
o kolejnych terminach
O szkoleniu
DLA KOGO?
Średniozaawansowani i zaawansowani programiści oraz inżynierowie oprogramowania
Średniozaawansowani i zaawansowani inżynierowie jakości
Architekci
Programiści tworzący aplikacje głównego nurtu oraz aplikacje sieciowe w języku Python
WYMAGANIA
umiejętność programowania w Python i znajomości struktur danych
biegłe posługiwanie się wybranym środowiskiem IDE
znajomość koncepcji programowania obiektowego, systemowego i aplikacyjnego
umiejętność posługiwania się narzędziem debuggera języka Python
znajomość koncepcji związanych z programowaniem w języku Python na poziomie średnio i zaawansowanym
ZALETY
Uczestnicy zdobędą umiejętności analizy obiektowej i zastosowania idiomów językowych Python
Uczestnicy nauczą się identyfikacji wąskich gardeł przetwarzania
Uczestnicy nauczą się tworzyć aplikacje z użyciem zaawansowanych struktur danych
Omówione zostaną również różne paradygmaty programowania
Cele szkolenia
Kształcenie umiejętności i rozwijanie wiedzy dotyczącej zaawansowanego programowania w języku Python
Osadzenia zaawansowanych narzędzi i procesów tworzenia oprogramowania w realiach współczesnych wymagań inżynierii oprogramowania
Dokonania konsolidacji wiedzy i uzupełnienia braków w kompetencjach w zakresie szkolenia
Pogłębienie znajomości mechanizmów i idiomów języka Python
Program
1. Type Annotations
- Typy proste
- Sekwencje
- Mapy
- Funkcje
- Obiekty i metody
2. Rozpakowywanie obiektów
- Unpacking Assignment
- Rozpakowywanie parametrów (*args, **kwargs)
- Rozpakowywanie argumentów (*args, **kwargs)
- Assignment Expression
2. Zaawansowane użycie funkcji i elementy paradygmatu programowania funkcyjnego
- Składnia parametrów do definiowania API
- Generatory
- Przestrzenie nazw
- Paradygmat programowania funkcyjnego
- Callable
- Domknięcia (closure)
- Moduł Functools
3. Dekoratory
- Rodzaje dekoratorów i przykłady zastosowania
- Dekoratory funkcji, klas, metod
- Dekoratory z wrapperami funkcyjnymi i klasowymi
- Dekoratory z argumentami i bez
- Dekoratory w bibliotece standardowej
4. Paradygmat obiektowy
- Mutowalne argumenty
- Dataclasses
- Pola i metody statyczne
- Modyfikatory dostępu
- Przeciążanie operatorów
- Dziedziczenie i kompozycja, klasy domieszkowe (mixin)
- Obiekty i relacje
- Klasy abstrakcyjne
- Tożsamość obiektów, haszowalność, string interning
- Konstruktor i fabryki obiektów
- S.O.L.I.D. i dobre praktyki OOP
5. Protokoły
- Iterator
- Context Manager
- Staticmethod
- Classmethod
- Property
- Refleksja
- Deskryptory
6. Zagadnienia wydajnościowe i optymalizacja
- Profiling aplikacji
- Microbenchmarking
- Wydajność wbudowanych struktury i typów danych
- Alternatywne kompilatory i interpretery
7. Współbieżność
- Modele współbieżności
- Kolejki
- Komunikacja międzyprocesowa i międzywątkowa
- Mechanizmy blokujące
- Wprowadzenie do programowania wielowątkowego
- Wprowadzenie do programowania wieloprocesowego
- Wprowadzenie do programowania asynchronicznego
8. Dobre praktyki i jakość oprogramowania
- Wykorzystanie debuggera w IDE
- Refactoring
- Techniki pracy z legacy code
- CI/CD
