Pobierz kartę szkolenia
Zaawansowane techniki programowania w języku Python
kod szkolenia: PYTH02 / PL AA 5d
Szkolenie z zaawansowanych technik programowania w Pythonie pozwala utrwalić i poszerzyć dotychczasową wiedzę o nowe funkcjonalności oraz bardziej złożone mechanizmy. Uczestnicy zapoznają się z nowoczesnymi praktykami i narzędziami, które pozwolą na skuteczne rozwiązywanie problemów i optymalizację procesów. To szkolenie jest idealnym krokiem dla osób, które chcą w pełni wykorzystać możliwości języka Python.
Szkolenie jest przeznaczone dla:
- Programistów Pythona, którzy posiadają już podstawową wiedzę i chcą rozwinąć swoje umiejętności w bardziej zaawansowanych obszarach.
- Osób pracujących w obszarach analizy danych, automatyzacji procesów czy tworzenia aplikacji, które potrzebują zaawansowanych narzędzi programistycznych.
- Specjalistów IT, którzy chcą poszerzyć swoją wiedzę o nowoczesne techniki pracy z Pythonem.
- Developerów zainteresowanych optymalizacją wydajności swoich aplikacji i pracą w środowisku wielowątkowym.
- Osób, które chcą lepiej zrozumieć nowoczesne praktyki programistyczne i narzędzia używane w branży.
- Zaawansowane techniki programowania – Uczestnicy opanują bardziej skomplikowane mechanizmy Pythona, takie jak metaklasy, asynchroniczność i zaawansowane dekoratory.
- Znajomość nowoczesnych narzędzi i bibliotek – Szkolenie obejmuje praktyczne zastosowanie popularnych modułów, takich jak asyncio, logging, collections, czy sqlalchemy.
- Efektywne przetwarzanie danych – Kurs wprowadza do narzędzi takich jak pandas, BeautifulSoup, requests, które umożliwiają pracę z dużymi zbiorami danych i aplikacjami sieciowymi.
- Optymalizacja i testowanie kodu – Uczestnicy nauczą się korzystania z narzędzi do mierzenia wydajności, takich jak timeit, oraz tworzenia testów jednostkowych w środowisku TDD.
- Rozwój w pracy z bazami danych i aplikacjami wielowątkowymi – Szkolenie obejmuje zarówno relacyjne, jak i nierelacyjne bazy danych oraz koncepcje wielowątkowości i współbieżności.
- PROGRAMOWANIE FUNKCYJNE
- *args & **kwargs
- Rozpakowywanie Argumentów oraz Rozpakowywanie Kolekcji
- Funkcja jako parametr (First Class Citizen)
- Funkcje lambda (Anonimowe)
- Wyrażenia Listowe, Słownikowe, etc… – zaawansowane
- Zagnieżdżone Wyrażenia Listowe, Słownikowe, etc…
- Moduł ITERTOOLS – omówienie
- Moduł FUNCTOOLS – omówienie
- Generatory i Iteratory (różne sposoby definiowania)
- Wzorzec Dekoratora – Tworzenie własnych Dekoratorów (dekorator prosty)
- PROGRAMOWANIE OOP – POZIOM ZAAWANSOWANY
- Dokumentowanie Kodu
- Atrybuty Klas
- Wielodziedziczenie oraz Method Resolution Order
- Metoda Super
- Dostęp do Atrybutów, Atrybuty Prywatne
- Deskryptory i definiowanie właściwości
(__get__, __set__, __delete__, __set_name__) - __getitem__, __setitem__, __delitem__
- Implementacja Iterowalności dla Klas
- Przeciążanie operatorów
- Klasy Abstrakcyjne – podstawowe zagadnienia
- Dekoratory Klasowe z Argumentami
- MetaClasses – podstawowe zagadnienia
- POMOCNE NARZĘDZIA
- Adnotacje Typów (Hints) – informacje i przykład zastosowania
- Moduł TIMEIT – na przykładach (porównanie czasu wykonywania się algorytmów)
- Moduł LOGGING – logowanie zdarzeń (konfiguracja i sposoby zastosowania)
- Moduł OS – powtórzenie oraz dodatkowe informacje
- Moduł SYS – powtórzenie oraz dodatkowe informacje
- Interakcja z systemem operacyjnym i systemem plików – moduły SYS i OS
- KOLEKCJE – rozszerzenie wbudowanych typów złożonych
- Moduł COLLECTIONS:
- a) NamedTuple
- b) DataClass
- c) DefaultDict
- d) Deque
- e) Counter
- WYRAŻENIA REGULARNE
- Moduł RE:
- a) Składnia – symbole, budowa wyrażeń regularnych
- b) funkcje match & search
- c) funkcje findall & finditer
- d) obiekt Pattern
- e) obiekt Match
- f) funkcje sub & split
- g) flagi DOTALL & MULTILINE
- h) Narzędzia online do tworzenia WR (np. regex101 i pythex)
- PRZETWARZANIE DANYCH
- Moduł REQUESTS – HTTP Protocol (podstawowe informacje oraz żądania z poziomu Pythona)
- Moduł BEAUTIFUL SOUP – WebScrapping (XML & HTML) (przykład zastosowania w przeszukiwaniu dokumentów hipertekstowych)
- Moduł PARAMIKO – połączenia SSH (przykład zastosowania)
- JSON, YAML, PICKLE – praktyczne użycie
- Wstęp do Pandas (odczyt i zapis XLS, CSV, etc…)
- Przegląd innych bibliotek
- BAZY DANYCH
- Przegląd popularnych „Connectorów” dla relacyjnych baz danych – na podstawie połączeń z MYSQL / PostgreSQL / ORACLE lub innego wybranego silnika
- Obsługa zapytań z poziomu Pythona – podstawowe zapytania
- Połączenie z bazami nierelacyjnymi – na przykładzie PYMONGO (MongoDB)
- ORM na przykładzie SQLAlchemy
- WĄTKI I PROCESY
- Moduł THREADING – podstawowe koncepcje:
- a) Uruchamianie Wątków
- b) Synchronizacja Wątków
- c) Rlocks
- d) Semaphores
- e) GIL (Global Interpreter Lock)
- Moduł MULTIPROCESSING – podstawowe koncepcje:
- a) Processes, Queues, Locks
- b) Pools
- c) Daemons
- d) Wymiana Danych pomiędzy Procesami
- ASYNCHRONICZNY PYTHON – Wstęp i Podstawy
- Moduł ASYNCIO – omówienie podstawowych zagadnień:
- a) Coroutines, Tasks
- b) Streams
- c) Subprocesses
- d) Queues
- e) Exceptions
- f) Event Loop
- g) Futures
- h) Asynchronous (Non-Blocking) HTTP Calls
- WSTĘP DO TESTÓW
- Testy jednostkowe
- Wstęp do TDD
- Biblioteka Unittest
- Przegląd innych bibliotek
- DODATKOWO:
- Inne biblioteki wybrane wspólnie z uczestnikami kursu
Udział w szkoleniu PYTH01 – Podstawy programowania w języku Python lub równoważna wiedza.
Podstawowa znajomość środowiska Linux/Unix/Windows.
Mile widziana znajomość podstawowych zagadnień bazodanowych
- wykłady
- warsztaty
- Szkolenie: polski
- Materiały: polski