Python zaawansowany

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
Dlaczego warto wziąć udział?
  • 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ł?

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

5 dni: 40h

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.

Komputer z dostępem do Internetu
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

Szkolenie online
za osobę
4 450
+23% VAT
Cena zawiera:
  • udział w zajęciach
  • materiały szkoleniowo-konferencyjne
  • certyfikat uczestnictwa
Zapisz się

Organizator

Sages Sp. z o.o.
02-796 Warszawa
ul. Wąwozowa 11
woj. mazowieckie
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.

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

Uzupełnij pole
Uzupełnij pole
Wybierz termin wydarzenia
Uzupełnij pole
Uzupełnij pole
Uzupełnij wiadomość
Potwierdź, że nie jesteś botem.
Musisz zaakceptować regulamin.

Dane kontaktowe

Sages Sp. z o.o.
02-796 Warszawa ul. Wąwozowa 11
Powiadomienia o nowych terminach

Zapisz się, aby otrzymywać powiadomienia o nowych terminach tego wydarzenia!