Szkolenie: Python zaawansowany
Uczestnicy szkolenia zapoznają się z zaawansowanymi konstrukcjami w języku Python, mechanizmami i praktykami programowania obiektowego oraz przykładami użycia idiomów i wzorców projektowych. Na zajęciach zapoznają się z koncepcjami tworzenia aplikacji wielowątkowych, serializacją danych do różnych formatów i obsługą relacji. Szczególny nacisk kładziemy na praktyczne aspekty programowania oraz osadzenie technik wytwarzania oprogramowania w języku Python we współczesnych realiach. Szkolenie odpowiada potrzebom średnio zaawansowanych i zaawansowanych programistów i nie jest przeznaczone dla os ób początkujących lub nieprogramujących
4345 PLN+23% VAT (5344 PLN brutto / 1 os.)Czas trwania szkolenia:5 dni (40h)
Kod kursu:PYTHON/ADV
Python zaawansowany
Cele szkolenia
Kształcenie umiejętności i rozwijanie wiedzy dotyczącej zaawansowanego programowania w języku Python
Konsolidacja wiedzy i uzupełnienie braków w kompetencjach w zakresie szkolenia
Pogłębienie znajomości mechanizmów i idiomów języka Python
Nauka refaktoryzacji i pracy z debuggerem w środowisku IDE
Dla kogo?
Średnio zaawansowani i zaawansowani programiści, posługujący się językiem Python
Architekci rozwiązań aplikacyjnych w języku Python
Zalety
Zajęcia prowadzone są przez doświadczonych praktyków, którzy na co dzień stosują prezentowane techniki i narzędzia
Na zajęciach stosowane są otwarte rozwiązania
Szkolenie porusza zagadnienia związane z tworzeniem i rozwijaniem aplikacji, z użyciem biblioteki standardowej oraz szkieletów aplikacyjnych (ang. framework)
W trakcie ćwiczeń wykorzystywane są przykłady zbliżone do rzeczywistych zastosowań i promowane są praktyki tworzenia łatwego w utrzymaniu kodu
Praktyka przed teorią - wszystkie szkolenia technologiczne prowadzone są w formie warsztatowej. Konieczna teoria jest wyjaśniana na przykładzie praktycznych zadań
Konkretne umiejętności - w ramach każdego szkolenia rozwijamy praktyczne umiejętności związane z daną technologią i tematyką
Nauka z praktykami - wszyscy trenerzy na co dzień pracują w projektach, gwarantuje to dostęp do eksperckiej wiedzy i praktycznego know-how
Wymagania
Umiejętność programowania w języku Python oraz znajomości podstawowych struktur danych
Znajomość koncepcji programowania obiektowego
Umiejętność posługiwania się wybranym środowiskiem IDE, dedykowanym dla języka Python
Ogólna znajomość biblioteki standardowej dla języka Python
W cenie otrzymasz:
Materiały szkoleniowe
Certyfikat ukończenia szkolenia
W przypadku szkolenia w trybie stacjonarnym zapewnimy Ci również lunch oraz sprzęt niezbędny do nauki
Program szkolenia
Wprowadzenie
Zadania określające poziom grupy
Zmiany w najnowszych wydaniach Python
Assingment Expression
Typing
Typy podstawowe
Sekwencje i mapy
Funkcje
Obiekty i metody
Statyczna analiza typów - mypy
Transpilacja kodu Python do C i kompilacja
Dataclasses
Definicja i składnia
Zagnieżdżone dataklasy
Postinit, (nie)mutowalne atrybuty, field
Parametry, helpery, dziedziczenie, introspekcja
Paradygmat obiektowy
Atrybuty: mutowalność, pola instancji i klasowe, modyfikatory dostępu, slots
Metody: modyfikatory dostępu, metody statyczne, metody klasowe
Dziedziczenie: wzorce, kompozycja, mixin, problemy, przeciążanie, super, MRO
Obiekty: relacje, wartość i tożsamość, konstuktor new i init
Klasy: dynamiczne tworzenie klas, metaklasy
Dobre praktyki: S.O.L.I.D.
Przeciążanie operatorów:
Lewe, prawe, inkrementacji
Numeryczne, binarne, porównania
Akcesory
Protokoły
Polimorfizm: interfejsy, protokoły, klasy abstrakcyjne
Wzorce: Context Manager, Iterator
Property: setter, getter, deleter
Refleksja: setattr, getattr, hasattr, delattr
Deskryptory: set, get, delete, set_name
Paradygmat funkcyjny
Wyrażenia Lambda,
Zakresy funkcji
Czyste funkcje (pure functions)
Rekurencja
Niemutowalne struktury danych
Funkcje wyższego poziomu i przejrzystość referencyjna
Przestrzenie nazewnicze i atrybuty funkcji, callable
Domknięcia (closures)
Wzorce: callback, closure, maybe, some, map-reduce
Moduł Functools
Dekoratory
Rodzaje dekoratorów i przykłady zastosowania
Dekoratory funkcji, klas, metod
Dekoratory funkcje, dekoratory klasy, dekoratory metody
Dekoratory z wrapperami funkcyjnymi i klasowymi
Dekoratory z argumentami i bez argumentów
Dekoratory w bibliotece standardowej
Zagadnienia wydajnościowe i optymalizacja
Notacja wielkiego-O, złożoności, optymalizacja
Microbenchmarking: wydajność wbudowanych typów danych
Profiling: wyszukiwanie wąskich gardeł w programie
Kompilacja kodu Pythona do bibliotek współdzielonych
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