Menu Zamknij

Kurs Python

Cena szkolenia

Cena szkolenia wynosi 120 zł za 60 min. Ilość godzin szkolenia jest zależna od postępów w nauce uczestnika kursu oraz ilości czasu, którą będzie potrzebował do realizacji zadań i projektów zleconych w ramach szkolenia.

Opis kursu

Szkolenie przygotowuje do pracy na stanowisku Programista Python, Python Junior Developer lub podobnym. Po zakończeniu szkolenia uczestnik kursu będzie w stanie tworzyć oraz rozwijać aplikacje w języku Python. 

W aplikacjach wykorzysta komunikację z bazami danych SQL, mechanizmy ORM oraz komunikację z bazami danych NoSQL. Dodatkowo będzie w stanie implementować aplikacje webowe z mechanizmami security. Aplikacje zostaną skonteneryzowane z wykorzystaniem platformy Docker. Podczas szkolenia uczestnik kursu pozna również wiele innych narzędzi wspomagających pracę z opisanymi wyżej technologiami.

W ramach szkolenia uczestnik kursu rozwiąże ogromną ilość zadań teoretycznych i praktycznych, które skutecznie przygotują go do rozmowy kwalifikacyjnej. Wiedza uczestnika kursu będzie systematycznie sprawdzana w trakcie próbnych rozmów kwalifikacyjnych, które odbywają się w języku polskim lub angielskim.

Po zakończeniu szkolenia uczestnik kursu będzie posiadał kilka dużych projektów, które potwierdzą jego praktyczne umiejętności posługiwania się narzędziami i językami programowania, które pojawiły się w kursie. Każdy kolejny etap projektu będzie indywidualnie sprawdzony i oceniony przez mentora. Zagwarantuje to zgodność projektu z przyjętymi założeniami oraz dobrymi praktykami programistycznymi, jak również wymusi systematyczną pracę nad projektem. Dodatkowo uczestnik kursu otrzyma zadania rozwijania lub modyfikowania istniejących już projektów oraz ich analizy pod kątem wyszukiwania błędów.

Szkolenie zawsze odbywać się będzie w formie spotkań indywidualnych, dzięki czemu tempo kursu zostanie dopasowane do konkretnych potrzeb uczestnika kursu.

Potrzebne aplikacje i narzędzia

Komputer / laptop z dowolnym systemem operacyjnym i zainstalowanym zestawem narzędzi do budowania aplikacji pojawiających się w trakcie szkolenia. Potrzebne oprogramowanie zostanie szczegółowo opisane oraz zainstalowane na pierwszym darmowym spotkaniu testowym lub w momencie, kiedy nastąpi konieczność jego wykorzystania w trakcie szkolenia.

Aplikacje potrzebne do nawiązania połączenia: Team Viewer oraz Skype. Na życzenie uczestnika kursu będzie możliwość używania innej aplikacji zdalnego pulpitu lub komunikatora głosowego. Na pierwszym darmowym spotkaniu testowym oceniona zostanie jakość połączenia. Na tej podstawie przeprowadzona będzie konfiguracja, która pozwoli zapewnić najlepszą jakość dźwięku oraz obrazu podczas szkoleń.

Umiejętności potrzebne przed
rozpoczęciem kursu

Kurs przeznaczony jest dla osób o różnym stopniu zaawansowania. W szkoleniu uczestniczyć mogą osoby, które nie miały do tej pory nic wspólnego z programowaniem, ale również osoby, które już posiadają doświadczenie na podobnym stanowisku. Celem szkolenia jest przygotowanie do pracy programisty, jak również podnoszenie kwalifikacji osób już pracujących w branży IT.

Istnieje możliwość rozpoczęcia szkolenia od wybranego punktu w planie szkolenia. Kurs poprzedzony jest wtedy szczegółową rozmową kwalifikacyjną w języku polskim lub angielskim. Na podstawie rozmowy zostanie oceniony poziom uczestnika kursu z zakresu materiału przed wybranym punktem w planie szkolenia.

Plan szkolenia

  • Instalacja Python na wybranym systemie operacyjnym
  • Instalacja managera pakietów pip
  • Omówienie zasady działanie virtual environments
  • Instalacja narzędzia virtualenv
  • Instalacja narzędzia pipenv
  • Omówienie struktury projektu Python
  • Omówienie roli plików Pipfile oraz Pipfile.lock
  • Przegląd komend pipenv shell
  • Praca z interpreterem Python
  • Instalacja managera pakietów conda
  • Zarządzanie wirtualnymi środowiskami z wykorzystaniem conda
  • Zagadnienia uzupełniające
  • Obiekty mutable oraz immutable
  • Typy liczbowe
  • Typy logiczne
  • Liczby zespolone
  • Ułamki
  • Precyzyjne przechowywanie danych zmiennoprzecinkowych
  • Przegląd dostępnych sekwencji
  • Typ wyliczeniowy
  • Zasięg zmiennych
  • Zagadnienia uzupełniające
  • Klasy Sposoby przechowywania napisów
  • Formatowanie napisów
  • Metody zarządzające napisami
  • Optymalne przetwarzanie napisów
  • Wyrażenia regularne
  • Konwersje i parsowanie napisów
  • Zagadnienia uzupełniające
  • Sekwencje immutable oraz mutable
  • Lista
  • Tuple oraz namedtuple
  • Range
  • Sekwencje binarne
  • Set
  • Dict
  • Counter
  • Deque
  • Defaultdict
  • Namedtuple
  • OrderedDict
  • ChainedMap
  • Przegląd wszystkich operacji i metod wykonywanych na sekwencjach
  • Zasady porównywania elementów sekwencji
  • Zasady sortowania elementów sekwencji
  • Zagadnienia uzupełniające
  • Obiekty naive oraz aware
  • Omówienie typów modułu datetime
  • Zarządzanie typami reprezentującymi czas i datę
  • Zarządzanie strefami czasowymi
  • Dobre praktyki programistyczne związane z przetwarzaniem daty i czasu
  • Zagadnienia uzupełniające
  • Pobieranie danych od użytkownika
  • Losowanie danych
  • Operatory i priorytety operatorów
  • Instrukcje warunkowe
  • Pętle
  • Implementacja instrukcji wyboru
  • Słowa kluczowe break, continue oraz pass
  • Zagadnienia uzupełniające
  • Definiowanie funkcji
  • Keyword arguments
  • Domyślne wartości argumentów
  • Różne sposoby przekazywania argumentów (xargs, xxargs)
  • Znaczenie kolejności przekazywanych argumentów
  • Funkcje zagnieżdżone
  • Zakresy zmiennych w funkcjach
  • Wyrażenia lambda
  • Dekoratory
  • Dokumentowanie funkcji
  • Debuggowanie
  • Dobre praktyki programistyczne związane z definiowaniem funkcji
  • Zagadnienia uzupełniające
  • Klasyfikacja błędów
  • Zachowanie aplikacji podczas wystąpienia błędu
  • Obsługa wyjątków – blok try except
  • Sekcja else w bloku try except
  • Rzucanie wyjątków
  • Przegląd wbudowanych klas wyjątków
  • Definiowanie własnych klas wyjątków
  • Sekcja finally
  • Bezpieczna obsługa zasobów
  • Zagadnienia uzupełniające
  • Klasyfikacja sposobów dzielenia projektu
  • Definiowanie modułu
  • Sposoby importowania modułów
  • Moduły jako skrypty
  • Zasady wyszukiwania modułów
  • Kompilowanie modułów
  • Przegląd modułów standardowych
  • Funkcja dir
  • Definiowanie paczek i podpaczek
  • Plik __init__.py
  • Importowanie modułów z paczek
  • Zagadnienia uzupełniające
  • Tworzenie klas oraz obiektów
  • Słowo kluczowe self
  • Konstruktor
  • Implementacja innych metod specjalnych w klasie
  • Atrybuty klasy oraz atrybuty instancji
  • Różne sposoby odwoływania się do składników klasy
  • Uzyskiwanie informacji na temat właściwości klasu oraz obiektu
  • Porównywanie obiektów
  • Metody instancji, klasy oraz statyczne
  • Dynamiczne tworzenie klas
  • Wstęp do metaprogramowania
  • Dziedziczenie
  • Polimorfizm
  • Rozszerzanie typów wbudowanych
  • Implementacja klasy final oraz metody final
  • Abstrakcyjność
  • Dziedziczenie wielokrotne
  • Duck typing
  • Iteratory
  • Generatory oraz Generator Expressions
  • Przegląd dodatkowych dekoratorów rozszerzających możliwości klasy
  • Zagadnienia uzupełniające
  • Algorytmy badające właściwości geometryczne
  • Algorytm badające właściwości matematyczne
  • Konwersje pomiędzy systemami liczbowymi
  • Badanie ciągów danych pod kątem wybranych właściwości
  • Sortowanie ciągów danych
  • Zastosowanie metody dziel i zwyciężaj
  • Wybrane metody numeryczne
  • Programowanie zachłanne
  • Algorytmy na tekstach
  • Wybrane algorytmy kryptograficzne
  • Rekurencja
  • Przegląd wybranych struktur danych
  • Zagadnienia uzupełniające
  • Klasyfikacja wzorców projektowych
  • Implementacja wzorców kreacyjnych
  • Implementacja wzorców strukturalnych
  • Implementacja wzorców czynnościowych
  • Zagadnienia uzupełniające
  • Funkcje wbudowane str() oraz repr()
  • Implementacja różnych sposobów formatowania danych
  • Odczyt i zapis do plików
  • Praca z plikami w trybie tekstowym oraz binarnym
  • Zarządzanie danymi w formacie JSON
  • Zagadnienia uzupełniające
  • Instalacja i konfiguracja wybranego środowiska bazodanowego
  • Język SQL
  • Nawiązanie połączenia z bazą danych
  • Konfiguracja connection pool
  • Implementacja kursora do zarządzania połączeniem
  • Implementacja operacji CRUD
  • Zapytania parametryzowane
  • Zarządzanie wynikami otrzymanymi w ramach zapytań
  • Konfiguracja i zarządzanie relacjami
  • Transakcyjność
  • Pozyskiwanie informacji o właściwościach bazy danych i tabel
  • Wykonywanie kopii zapasowej bazy danych
  • Zagadnienia uzupełniające
  • Omówienie zagadnień związanych z mechanizmami ORM
  • Instalacja i konfiguracja aplikacji do pracy z SQLAlchemy
  • Różne sposoby tworzenia modelu tabeli
  • Zarządzanie modelem tabeli bazy danych z poziomu SQLAlchemy
  • Zarządzanie migracjami z wykorzystaniem narzędzia Alembic
  • Różne sposoby tworzenia i zarządzania sesją – transakcyjność
  • Implementacja operacji CRUD
  • Omówienie sposobów pozyskiwania danych z tabel
  • Zarządzanie wynikami otrzymanymi w ramach zapytań
  • Konfiguracja i zarządzanie relacjami bazodanowymi
  • Sposoby implementowania mechanizmu eager loading
  • Implementowanie mechanizmów optimistic / pessimistic locking
  • Implementacja cache
  • Implementacja abstrakcyjnego repozytorium bazodanowego
  • Zagadnienia uzupełniające
  • Wyjaśnienie różnic pomiędzy bazami SQL oraz NoSQL
  • Nawiązanie połączenia z bazą danych
  • Tworzenie kolekcji oraz dokumentów
  • Zarządzanie właściwościami pól dokumentów
  • Implementacja relacji
  • Indeksowanie oraz ustalanie porządku danych
  • Dziedziczenie dokumentów
  • Tworzenie i zarządzanie instancjami dokumentów
  • Wstawianie, modyfikowanie i usuwanie dokumentów
  • Pobieranie i zarządzanie danymi
  • Sposoby optymalizacji zapytań
  • Zagadnienia uzupełniające
  • Praca z archiwum ZIP
  • Praca z plikami CSV
  • Zarządzanie ścieżkami, plikami oraz katalogami
  • Wysyłanie wiadomości email
  • Zagadnienia uzupełniające
  • Omówienie zagadnień związanych z architekturą testowania
  • Implementacja podstawowej struktury testującej
  • Uruchamianie testów
  • Generowanie testów na podstawie istniejących metod
  • Prezentacja sposobów pomijania testów
  • Wykonywanie testów zagnieżdżonych i parametryzowanych
  • Praktyczne przykłady wykorzystania różnych rodzajów asercji
  • Grupowanie testów
  • Implementacja test loaderów
  • Omówienie zagadnień związanych z mockowaniem
  • Patch oraz decorator @patch
  • Prezentacja różnych przykładów mockowania
  • Analiza struktury i kolejności wywołań mockowanych bytów
  • Omówienie architektury aplikacji webowej
  • Omówienie formatu JSON
  • Omówienie standardu REST
  • Prezentacja możliwości frameworka Django oraz Django REST
  • Przygotowanie wirtualnego środowiska do pracy z Django REST
  • Konfiguracja projektu aplikacji webowej Django REST
  • Dodawanie i zarządzanie modułem webowym Django REST
  • Routing
  • Prezentacja mechanizmów Django do zarządzania warstwą bazodanową
  • Konfiguracja i zarządzanie mechanizmem migracji
  • Tworzenie modelu bazy danych
  • Zarządzanie zmianami w modelu bazy danych
  • Implementacja relacji bazodanowych
  • Zarządzanie zapytaniami do bazy danych
  • Pobieranie i przetwarzanie danych z warstwy bazodanowej
  • Wprowadzenie mechanizmów optymalizujących komunikację z bazą danych
  • Serializacja i deserializacja JSON
  • Implementacja serializerów oraz deserializerów
  • Dobre praktyki serializacji danych
  • Przygotowanie warstwy serwisowej aplikacji webowej
  • Różne sposoby implementacji REST API
  • Zarządzanie parametrami żądania
  • Zarządzanie nagłówkami
  • Zarządzanie cookies
  • Analiza kodów odpowiedzi HTTP
  • Przygotowanie prawidłowego formatu zwracanych danych
  • Testowanie REST API z wykorzystaniem zewnętrznych klientów REST
  • Implementacja klienta REST na przykładzie coreapi
  • Implementacja aplikacji RESTful Web Services
  • Autentykacja oraz autoryzacja
  • Omówienie standardu JWT
  • JWT Debugger
  • Zarządzanie danymi przesyłanymi w tokenie JWT
  • Omówienie zasady działania i przygotowanie access token
  • Omówienie zasady działania i przygotowanie refresh token
  • Dobre praktyki szyfrowania danych w tokenach JWT
  • Biblioteka Django REST JWT
  • Przygotowanie mechanizmu rejestracji użytkowników przechowywanych w bazie danych
  • Szyfrowanie hasła użytkownika
  • Implementacja mechanizmu security w aplikacji webowej Python z wykorzystaniem tokenów JWT
  • Zagadnienia uzupełniające
  • Omówienie architektury aplikacji webowej
  • Omówienie formatu JSON
  • Omówienie standardu REST
  • Prezentacja możliwości frameworka Flask oraz Flask-RESTful
  • Konfiguracja projektu aplikacji webowej Flask
  • Zarządzanie modułem webowym Flask
  • Routing
  • Prezentacja mechanizmów Flask do zarządzania warstwą bazodanową z wykorzystaniem
  • SQLAlchemy
  • Konfiguracja i zarządzanie mechanizmem migracji
  • Tworzenie modelu bazy danych
  • Zarządzanie zmianami w modelu bazy danych
  • Implementacja relacji bazodanowych
  • Zarządzanie zapytaniami do bazy danych
  • Pobieranie i przetwarzanie danych z warstwy bazodanowej
  • Wprowadzenie mechanizmów optymalizujących komunikację z bazą danych
  • Serializacja i deserializacja JSON
  • Implementacja serializerów oraz deserializerów
  • Dobre praktyki serializacji danych
  • Przygotowanie warstwy serwisowej aplikacji webowej
  • Różne sposoby implementacji REST API
  • Zarządzanie parametrami żądania
  • Zarządzanie nagłówkami
  • Zarządzanie cookies
  • Analiza kodów odpowiedzi HTTP
  • Przygotowanie prawidłowego formatu zwracanych danych
  • Testowanie REST API z wykorzystaniem zewnętrznych klientów REST
  • Implementacja aplikacji RESTful Web Services
  • Autentykacja oraz autoryzacja
  • Omówienie standardu JWT
  • JWT Debugger
  • Zarządzanie danymi przesyłanymi w tokenie JWT
  • Omówienie zasady działania i przygotowanie access token
  • Omówienie zasady działania i przygotowanie refresh token
  • Dobre praktyki szyfrowania danych w tokenach JWT
  • Biblioteka Flask-JWT
  • Przygotowanie mechanizmu rejestracji użytkowników przechowywanych w bazie danych
  • Szyfrowanie hasła użytkownika
  • Implementacja mechanizmu security w aplikacji webowej Python z wykorzystaniem tokenów JWT
  • Zagadnienia uzupełniające
  • Omówienie architektury aplikacji webowej
  • Omówienie formatu JSON
  • Omówienie formatu REST
  • Konfiguracja projektu aplikacji webowej Fast API
  • Routing
  • Zarządzanie parametrami i ciałem żądania HTTP
  • Zarządzanie postacią odpowiedzi HTTP
  • Przetwarzanie nagłówków żądania HTTP
  • Prezentacja i wykorzystanie mechanizmu dependency injection
  • Prezentacja i wykorzystanie mechanizmu middleware
  • Integracja z mechanizmem ORM – SQLAlchemy
  • Przygotowanie warstwy serwisowej aplikacji webowej
  • Implementacja warstwy security
  • Konfiguracja CORS
  • Generowanie dokumentacji aplikacji webowej
  • Zarządzanie zasobami statycznymi
  • Asynchroniczne zarządzanie warstwą bazodanową
  • Implementacja asynchronicznego REST API
  • Testowanie aplikacji webowej
  • Zagadnienia uzupełniające
  • Omówienie architektury platformy Docker
  • Instalacja platformy Docker
  • Przegląd poleceń platformy Docker
  • Tworzenie i zarządzanie obrazami platformy Docker
  • Tworzenie i zarządzanie kontenerami platformy Docker
  • Tworzenie i zarządzanie volumes platformy Docker
  • Tworzenie i zarządzanie networks platformy Docker
  • Przegląd instrukcji Docker CLI
  • Instalacja i uruchamianie przykładowych narzędzi z wykorzystaniem platformy Docker
  • Omówienie struktury pliku konfiguracyjnego Dockerfile
  • Konteneryzacja aplikacji webowej Python
  • Omówienie zasady działania narzędzia Docker Compose
  • Instalacja narzędzia Docker Compose
  • Struktura pliku konfiguracyjnego narzędzia Docker Compose
  • Przygotowanie kontenera bazy danych
  • Konteneryzacja aplikacji webowych Python z wykorzystaniem narzędzia Docker Compose
  • Konteneryzacja aplikacji webowych fullstack z wykorzystaniem Django i frameworków Angular oraz React
  • Zagadnienia uzupełniające
  • Teoretyczne wprowadzenie do zagadnień z obszaru Data Science
  • Przygotowanie projektu do pracy z narzędziami
  • Data Science
  • Wprowadzenie do biblioteki NumPy
  • Sposoby tworzenia struktury NumPy Array
  • Indeksowanie struktury Array
  • Przegląd operacji na strukturze Array
  • Zarządzanie wymiarami struktury Array
  • Wektoryzacja Array
  • Tablice wielowymiarowe w NumPy
  • Wprowadzenie do biblioteki Pandas
  • Różne sposoby pozyskiwania danych ze źródeł zewnętrznych
  • Sposoby tworzenia struktury DataFrame
  • Omówienie funkcji do zarządzania strukturą DataFrame
  • Sposoby zarządzania wartościami liczbowymi oraz napisami
  • Zarządzanie danymi reprezentującymi datę oraz czas
  • Zarządzanie kolumnami struktury DataFrame
  • Indeksowanie struktury DataFrame
  • Filtrowanie danych struktury DataFrame
  • Sortowanie danych struktury DataFrame
  • Generowanie statystyk i podsumowań
  • Zarządzanie wartościami NA
  • Implementacja operacji merge, join oraz concat
  • Grupowanie danych
  • Sposoby tworzenia struktury Series
  • Omówienie funkcji do zarządzania strukturą Series
  • Indeksowanie struktury Series
  • Sposoby tworzenia struktury Index
  • Omówienie funkcji do zarządzania strukturą Index
  • Mechanizm chained indexing
  • Wprowadzenie do biblioteki Matplotlib
  • Line plot
  • Bar chart
  • Pie chart
  • Histogram
  • Scatter plot
  • Subplot
  • Inne przykłady wykresów
  • Animacje
  • Zarządzanie opisem, wyglądem oraz danymi wykresów
  • Przegląd innych możliwości biblioteki Matplotlib
  • Tworzenie zaawansowanych wykresów z użyciem biblioteki Seaborn
  • Przetwarzanie danych pozyskiwanych w dziedzinie finansów
  • Końcowe przygotowanie danych na potrzeby przyszłego przetwarzania
  • Wykorzystanie przetworzonych danych na potrzeby Machine Learning
  • Zagadnienia uzupełniające
  • Omówienie architektury GIT
  • Konfiguracja i personalizacja ustawień GIT
  • Klasyfikacja repozytoriów
  • Tworzenie repozytorium lokalnego
  • Zarządzanie plikami w ramach obszarów repozytorium
  • Rozgałęzianie i scalanie
  • Przegląd wszystkich operacji GIT
  • Aplikacje i wtyczki do pracy z GIT
  • Praca ze zdalnym repozytorium
  • Dobre praktyki tworzenia repozytoriów GIT
  • GitHub Pages
  • Zagadnienia uzupełniające

Materiały video

Wstecz 1 z 3 Dalej
Wstecz 1 z 3 Dalej

Newsletter

Scroll Up