O szkoleniu
- 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
- 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
Od uczestników jest wymagana:
- 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
Paradygmat funkcyjny
- Czyste funkcje (pure functions)
- Rekurencja
- Mutowalne i niemutowalne struktury danych
- Wyrażenia Lambda
- Funkcje wyższego poziomu i przejrzystość referencyjna
- Callable, przestrzenie nazewnicze i atrybuty funkcji
- Funkcyjne 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
Paradygmat obiektowy
- Zasady S.O.L.I.D.
- Dziedziczenie, kompozycja i klasy domieszkowe (mixin)
- Kolejność rozwiązywania metod (MRO) i super()
- Polimorfizm, enkapsulacja, abstrakcja
- Mapowanie Obiektowo Relacyjne
- Interfejsy i klasy abstrakcyjne
- Metody statyczne i klasowe
- Slots
- Konstruktor i fabryki obiektów - __new__ vs. __init__
- Metaklasy
Przeciążanie operatorów
- Operatory lewe, prawe i inkrementacji
- Operatory numeryczne, porównania i binarne
- Operatory dostępu (akcesory)
Protokoły
- Context Manager
- Iterator
- Property
- Refleksja (setattr, getattr, hasattr, delattr)
- Deskryptory
CI/CD w projektach Python
- Zależności dev, cicd, prod (frozen)
- Statyczna analiza kodu źródłowego - pylint, pylama, sonarlint, pyflakes
- Standardy programowania PEP8, PEP20 i dobre praktyki - pycodestyle, pydocstyle
- Wyszukiwanie podatności bezpieczeństwa - bandit
- Statyczna analiza typów - mypy
Zagadnienia wydajnościowe i optymalizacja
- Microbenchmarking: wydajność wbudowanych typów danych - timeit
- Profiling: wyszukiwanie wąskich gardeł w programie - cProfile
- Kompilacja kodu Pythona do bibliotek współdzielonych - mypyc
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
Projekt praktyczny
- Zastosowanie technologii ze szkolenia
Czas trwania
Prelegenci
Matt Harasymczuk
Programuję od końca lat 90 ubiegłego wieku, a od 2005 roku zawodowo związany jestem z branżą inżynierii oprogramowania. Pracowałem w Allegro, Centralnym Ośrodku Informatyki, Polskiej Agencji Żeglugi Powietrznej oraz w Europejskiej Agencji Kosmicznej. Prowadzę dwie firmy z branży kosmicznej oraz IT: Astro Tech and Bioastronautics i Analog Astronaut Training Center. Ukończyłem studia z zakresu informatyki a także lotnictwa i kosmonautyki. Otrzymałem Medal Kopernikański za stworzenie podstaw dla załogowych lotów kosmicznych w Polsce i budowę pierwszej w Europie bazy badawczej dla misji księżycowych i marsjańskich. Założyłem też firmę szkolącą kandydatów na astronautów. Jestem właścicielem habitatu, symulatora bazy kosmiczej, i tworzę dla niego system operacyjny wykorzystujący mechanizmy uczenia maszynowego (sieci neuronowe) i analizę danych biomedycznych, psychologicznych i środowiskowych budynku do inteligentnego wsparcia załogi astronautów oraz detekcji anomalii. Jestem w trakcie kończeni doktoratu w tym zakresie. Napisałem kilka książek dotyczących inżynierii oprogramowania, procesów IT oraz astronautyki. Od 2015 roku prowadzę szkolenia jako trener Sages. Mam ponad 7800 godzin doświadczenia w prowadzeniu warsztatów dla ponad 28 tys. osób. Dotychczas przeprowadziłem szkolenia dla 196 organizacji z sektorów tj. publiczny, bankowy, obronny, agencje kosmiczne, firmy branży lotniczej, automotive, e-commerce, fintech, ubezpieczenia, startupy wysokich technologii, branża paliwowa, telekomy, medyczna, uczelnie wyższe, gaming, druk 3d i consumer electronics. Specjalizuję się w szkoleniach z zakresu: Python (Foundations, Intermediate, Advanced, Design Patterns, Numerical Analysis, Machine Learning, HTTP, TDD, Performance, Django, FastAPI, Microservices, Databases), DevOps, Continuous Integration/Delivery, GIT/GIT Flow, JIRA jak również Agile: Scrum/Kanban/XP w szczególnie ciężkim procesowo środowisku. Jestem także instruktorem nurkowania rekreacyjnego i technicznego.
Co robię na co dzień?
Rozwija HabitatOS pierwszy system operacyjny dla baz Marsjańskich i Księżycowych wykorzystujący uczenie maszynowe do wyszukiwania anomalii i analizy danych w czasie rzeczywistym. Konsultował około 150 organizacji przy zarządzaniu projektami i inżynierii oprogramowania.
Dlaczego lubię szkolić?
Przekazując wiedzę rozwijam się porządkując własną znajomość technologii.
Terminy i miejsca
Zapoznaj się z aktualnymi terminami tego szkolenia bądź zapisz na powiadomienia o nowych terminach.
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
Rejestracja
- udział w zajęciach
- materiały szkoleniowo-konferencyjne
- certyfikat uczestnictwa
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.
Organizator
Najczęściej zadawane pytania
Masz pytania? Napisz do nas
