Szkolenie: Python zaawansowany
Uczestnicy szkolenia zapoznają się z zaawansowanymi konstrukcjami w języku Python oraz mechanizmami i praktykami programowania obiektowego. W trakcie zajęć poznają system anotacji typów, transpilację kodu Pythona do C, klasy danych (dataclasses), zaawansowane paradygmaty obiektowe, zasady S.O.L.I.D., paradygmat funkcyjny oraz funkcyjne wzorce projektowe. Omówione zostaną również przeciążanie operatorów, properties, mechanizmy refleksji, deskryptory, generatory, programowanie asynchroniczne oraz konwencje programistyczne i dobre praktyki. Szczególny nacisk zostanie położony na praktyczne aspekty programowania oraz osadzenie technik wytwarzania oprogramowania w języku Python we współczesnych realiach. Szkolenie jest przeznaczone dla średnio zaawansowanych i zaawansowanych programistów i nie jest skierowane do osób początkujących ani nieprogramujących.
- Trenerzy praktycy
- Kameralne grupy
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
Składnia
Assingment Expression
Exception (zagnnieżdżone, własne)
Typing
Typy podstawowe i zaawansowane
Sekwencje i mapy
Funkcje
Obiekty i metody
Wariancja, kowariancja i inwariancja
Typy generyczne
Aliasty typów
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: sloty, równość, tożsamość, name mangling, metody, staticmethods, classmethod
Dziedziczenie: wzorce, mixin, przeciążanie, super, MRO
Metaprogramowanie: init subclas, new, type, metaclass
Przeciążanie operatorów:
Lewe, prawe, inkrementacji
Arytmetyczne, binarne, porównania
Akcesory, przeciążanie wbudowanych funckji
Akcesory
Wzorce: Context Manager, Iterator
Property: setter, getter, deleter
Refleksja: setattr, getattr, hasattr, delattr
Deskryptory: set, get, delete, set_name
Paradygmat funkcyjny
Wyrażenia Lambda
Przestrzeń 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
Generatory
Zasada działania
Wyrażenia generatorowe
Introspekcja
Słowa kluczowe yield i yield from
Wysyłanie wartości do generatorów
Moduł itertools
Asynchroniczność
Modele współbieżności
Wprowadzenie do AsyncIO
Słowa kluczowe async/await
Coroutines, Awaitables, Event Loop
Run, gather, wait_for
Asynchroniczne Iteratory i Context Managery
Przyszłość
Zmiany planowane w przyszłych wersjach Pythona
Spekulacje
Gdzie szukać dalszych informacji