Python: Zaawansowane programowanie

4300 PLN+23% VAT (5289 PLN brutto / 1 os.)

Czas trwania szkolenia:5 dni (40h)

Kod kursu:PYTHON/ADV

Poziom zaawansowania:

Dostępne terminy

  • Termin
  • Lokalizacja
  • Trener
  • Cena
Brak dostępnych terminów

O szkoleniu Python: Zaawansowane programowanie

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

Dla kogo?

  • Ś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

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
  • Kameralne grupy - szkolenia technologiczne prowadzimy w grupach liczących do 8 osób. Pozwala to na indywidualne podejście oraz aktywizację każdego uczestnika
  • 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

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

Program

Type Annotations

  • Typy proste
  • Sekwencje
  • Mapy
  • Funkcje
  • Obiekty i metody

Rozpakowywanie obiektów

  • Unpacking Assignment
  • Rozpakowywanie parametrów (*args, kwargs)
  • Rozpakowywanie argumentów (*args, kwargs)
  • Assignment Expression

Zaawansowane użycie funkcji i elementy paradygmatu programowania funkcyjnego

  • Składnia parametrów do definiowania API
  • Generatory
  • Przestrzenie nazw
  • Paradygmat programowania funkcyjnego
  • Callable
  • Domknięcia (closure)
  • Moduł Functools

Dekoratory

  • Rodzaje dekoratorów i przykłady zastosowania
  • Dekoratory funkcji, klas, metod
  • Dekoratory z wrapperami funkcyjnymi i klasowymi
  • Dekoratory z argumentami i bez
  • Dekoratory w bibliotece standardowej

Paradygmat obiektowy

  • Mutowalne argumenty
  • Dataclasses
  • Pola i metody statyczne
  • Modyfikatory dostępu
  • Przeciążanie operatorów
  • Dziedziczenie i kompozycja, klasy domieszkowe (mixin)
  • Obiekty i relacje
  • Klasy abstrakcyjne
  • Tożsamość obiektów, haszowalność, string interning
  • Konstruktor i fabryki obiektów
  • S.O.L.I.D. i dobre praktyki OOP

Protokoły

  • Iterator
  • Context Manager
  • Staticmethod
  • Classmethod
  • Property
  • Refleksja
  • Deskryptory

Zagadnienia wydajnościowe i optymalizacja

  • Profiling aplikacji
  • Microbenchmarking
  • Wydajność wbudowanych struktury i typów danych
  • Alternatywne kompilatory i interpretery

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

Dobre praktyki i jakość oprogramowania

  • Wykorzystanie debuggera w IDE
  • Refactoring
  • Techniki pracy z legacy code
  • CI/CD

Podobne szkolenia