O szkoleniu
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
Dlaczego warto wziąć udział?
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
Kto powinien wziąć udział?
- Średnio zaawansowani i zaawansowani programiści, posługujący się językiem Python
- Architekci rozwiązań aplikacyjnych w języku Python
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
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
Czas trwania
5 dni (40h)
Terminy i miejsca
Zapoznaj się z aktualnymi terminami tego szkolenia bądź zapisz na powiadomienia o nowych terminach.
Wymagany komputer z dostępem do internetu.
Wymagany komputer z dostępem do internetu.
Rejestracja
Wybierz termin:
Cena standardowa
za osobę
3 950
zł
+23% VAT
Cena zawiera:
- udział w zajęciach
- materiały szkoleniowe w wersji elektronicznej
- certyfikat uczestnictwa
Zapisz się
Brak miejsc. Wypełnij formularz, aby zapytać o nowe terminy.
Termin nieaktualny. Wybierz inny termin powyżej, bądź wypełnij formularz, aby zapytać o planowane nowe terminy.
FAQ
Najczęściej zadawane pytania
Prosimy o przejście do sekcji
Zapisz się, aby
wypełnić formularz zgłoszenia w wydarzeniu. Po jego wysłaniu organizator skontaktuje
się celem potwierdzenia przyjęcia zgłoszenia i przekazania szczegółów organizacyjnych.
Podczas wypełniania formularza rejestracji zaznacz opcję
"Oświadczam, że udział będzie finansowany ze środków publicznych, proszę o wystawienie faktury z zerową stawką VAT."
Jeśli potrzebujesz zarejestrować organizatora w wewnętrznym systemie zamówień możesz zrobić to na dwa sposoby.
W trakcie wypełniania zgłoszenia w polu Uwagi przekaż tą informację - opiekun szkolenia skontaktuje się w celu dopełnienia formalności.
Możesz to również zrobić samodzielnie z użyciem poniższych danych:
- Nazwa firmy: Sages Sp. z o.o.
- Ulica i nr: ul. Wąwozowa 11
- Kod pocztowy: 02-796
- Miejscowość: Warszawa
- Numer NIP: 1132737407
Najszybszym sposobem kontaktu z organizatorem i uzyskania dodatkowych informacji jest
wypełnienie formularza kontaktowego.
Możesz też zadzwonić do organizatora.
Kontakt
Masz pytania? Napisz do nas
Wypełnij formularz
Dane kontaktowe
Sages Sp. z o.o.
02-796 Warszawa, Polska
ul. Wąwozowa 11
Organizator
Powiadomienia o nowych terminach