Menu Zamknij

Kurs Python

Cena szkolenia

Cena spotkania grupowego wynosi 100 zł netto za 60 min. Cena spotkania indywidualnego wynosi 120 zł netto za 60 min. Ilość godzin szkolenia zależy od Twoich postępów w nauce oraz ilości czasu, którą poświęcisz na realizację zadań i projektów zleconych w ramach szkolenia.

Opis kursu

Kurs przygotuje Cię do pracy na stanowisku programisty Python, Python Web Developer, Python Data Scientist lub każdym innym, gdzie wymagana jest znajomość języka Python. Po zakończeniu szkolenia będziesz w stanie tworzyć lub rozwijać nowoczesne aplikacje w języku Python oraz frameworkach, które z nim współpracują.

Naukę zaczniesz od zrozumienia podstaw języka Python i struktur programistycznych, które w nim występują. Nauczysz się zagadnień związanych z algorytmiką oraz zasad optymalizacji kodu i szybkości działania aplikacji. Wykorzystasz komunikację z bazami danych SQL, NoSQL oraz mechanizmy ORM. Zbudujesz nowoczesne aplikacje webowe, które następnie skonteneryzujesz z wykorzystaniem platformy Docker i osadzisz w chmurze. W aplikacjach będziesz przetwarzał dane z wykorzystaniem mechanizmów data science. Wdrożysz rozwiązania związane ze sztuczną inteligencją. Programy przetestujesz z wykorzystaniem bibliotek dedykowanych do testów. To oczywiście nie wszystko. Poznasz wiele innych narzędzi wspomagających pracę z opisanymi wyżej technologiami (np. Git). Twoja wiedza będzie systematycznie poszerzana o dodatkowe materiały dydaktyczne, które znajdziesz na moich kanałach YouTube, TikTok lub otrzymasz w formie cotygodniowych newsletterów.

W ramach szkolenia rozwiążesz ogromną ilość zadań teoretycznych i praktycznych, które skutecznie przygotują Cię do rozmowy kwalifikacyjnej. Twoja wiedza będzie systematycznie sprawdzana w trakcie naszych spotkań i organizowanych co pewien czas indywidualnych próbnych rozmów kwalifikacyjnych w języku polskim lub angielskim.

Po zakończeniu szkolenia Twoje portfolio powiększy się o kilka lub kilkanaście rozbudowanych projektów, które potwierdzą Twoje praktyczne umiejętności posługiwania się zagadnieniami, pojawiającymi się w kursie. Na każdym etapie szkolenia możesz liczyć na nieograniczoną pomoc mentora. Zagwarantuje to zgodność projektów z przyjętymi założeniami oraz dobrymi praktykami programistycznymi, jak również zmusi Cię do systematycznej pracy nad projektami. Dodatkowo zmierzysz się z zadaniami rozwijania lub modyfikowania istniejących już projektów oraz ich analizy pod kątem wyszukiwania błędów.

Potrzebne aplikacje i narzędzia

Do odbycia szkolenia potrzebujesz komputer lub laptop z zestawem narzędzi do budowania aplikacji pojawiających się w trakcie kursu. Spotkania możemy odbywać również na moim komputerze. Po spotkaniu zawsze otrzymasz wszystkie materiały, które pojawiły się w trakcie spotkania. Potrzebne oprogramowanie szczegółowo opiszę oraz pomogę Ci zainstalować na pierwszym darmowym spotkaniu testowym.

Informacje na temat aplikacji potrzebnych do nawiązania połączenia przekażę w odpowiednim momencie przed rozpoczęciem szkolenia. Dostaniesz wtedy szczegółowy wykaz kolejnych kroków, które należy wykonać w celu przygotowania się do rozpoczęcia kursu.

Umiejętności potrzebne przed
rozpoczęciem kursu

Kurs przeznaczony jest dla osób o różnym stopniu zaawansowania. Możesz do niego przystąpić nawet jeżeli do tej pory nie miałeś nic wspólnego z programowaniem. Jeżeli już pracujesz na podobnym stanowisku, szkolenie również jest dla Ciebie. Celem kursu jest przygotowanie do pierwszej pracy programisty, ale również podnoszenie kwalifikacji osób już pracujących w branży IT. Szkolenie możesz rozpocząć od dowolnego punktu w planie szkolenia. Na początek odbędziemy szczegółową rozmowę kwalifikacyjną w języku polskim lub angielskim. Dzięki niej ocenimy Twój poziom z zakresu wiedzy przed wybranym punktem w planie szkolenia.

Plan szkolenia

  • Przegląd dostępnych wersji Python
  • Instalacja Python na dowolnym systemie operacyjnym
  • Instalacja managera pakietów pip
  • Omówienie zasady działania 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
  • Instalacja managera pakietów poetry
  • Zarządzanie wirtualnymi środowiskami z wykorzystaniem poetry
  • Zagadnienia uzupełniające
  • Cechy języka dynamicznie typowanego
  • Dwa rodzaje obiektów: immutable oraz mutable
  • Funkcja globalna id
  • Typy liczbowe (całkowite i zmiennoprzecinkowe)
  • Typy logiczne
  • Liczby zespolone
  • Ułamki
  • Precyzyjne przechowywanie danych zmiennoprzecinkowych
  • Namespaces
  • Zasięg zmiennych
  • Zasada LEGB
  • Rzutowanie
  • Sposoby pobierania i prezentacji danych
  • Losowanie danych
  • Operatory
  • Walrus operator
  • Priorytet operatorów
  • Zagadnienia uzupełniające
  • Różne postaci instrukcji warunkowej if
  • Ternary operator
  • Wprowadzenie do list, tuple oraz dict
  • Bloki warunkowe z wykorzystaniem list, tuple oraz dict
  • Blok match case
  • Pętla for
  • Pętla while
  • Petle for else oraz while else
  • Sposoby implementowania pętli do while
  • Instrukcje break oraz continue
  • Słowo kluczowe pass
  • Debuggowanie
  • Analiza mechanizmu podpowiadania błędów
  • Zagadnienia uzupełniające
  • Organizacja kodu z wykorzystaniem funkcji
  • Sposoby definiowania i wywoływania funkcji
  • Parametry i argumenty funkcji
  • Zwracanie wyniku działania funkcji
  • Argumenty domyślne funkcji
  • Positional arguments
  • Keyword arguments
  • Arbitrary argument list
  • Zasady kolejności przekazywania argumentów do funkcji
  • Podpowiadanie typów
  • Wyrażenia lambda
  • Funkcje zagnieżdżone
  • Closures
  • Dekoratory
  • Dokumentowanie funkcji
  • Zagadnienia uzupełniające
  • Napis jako obiekt niemutowalny
  • Sposoby tworzenia i prezentacji napisów
  • Napisy wielowierszowe
  • Raw strings
  • Formatowanie napisów
  • Przegląd i praktyczne przykłady metod zarządzających napisami
  • Optymalne przetwarzanie napisów
  • Wyrażenia regularne
  • Flagi do pracy z wyrażeniami regularnymi
  • Konwersja i parsowanie napisów
  • Zagadnienia uzupełniające
  • Iteratory oraz struktury iterable
  • Wzorzec lazy evaluation
  • Sekwencje jako szczególny przypadek iterable
  • List
  • Tuple
  • Namedtuple
  • Range
  • Bytes oraz bytearray
  • Set
  • Frozenset
  • Dict
  • Counter
  • Deque
  • Defaultdict
  • OrderedDict
  • ChainedMap
  • Przegląd innych struktur z modułu collections
  • Operacje i metody do zarządzania strukturami iterable
  • Zasady porównywania elementów struktur iterable
  • Zasady sortowania elementów struktur iterable
  • List comprehension
  • Przegląd funkcji realizujących programowanie funkcyjne
  • Higher Order Functions
  • Generatory
  • Generator expressions
  • Moduł itertools
  • Struktury wielowymiarowe
  • Tworzenie kodu o strukturze jednowierszowej
  • Praktyczne przykłady wykorzystania bytów iterable
  • Zagadnienia uzupełniające
  • Przechowywanie daty i czasu za pomocą obiektów naive
  • Przechowywanie daty i czasu za pomocą obiektów aware
  • Omówienie struktury modułu datetime
  • Reprezentowanie różnicy czasu za pomocą datetime.timedelta 
  • Reprezentowanie daty za pomocą datetime.date
  • Reprezentowanie czasu za pomocą time.time oraz datetime.time
  • Przechowywanie daty i czasu za pomocą obiektu datetime.datetime
  • Strefy czasowe – moduł pytz
  • Konwersja daty i czasu pomiędzy różnymi strefami czasowymi
  • Porównywanie daty i czasu
  • Dobre praktyki programistyczne przetwarzania daty i czasu
  • Zagadnienia uzupełniające
  • Klasyfikacja błędów
  • Syntax errors
  • Wyjątki
  • Zachowanie aplikacji podczas wystąpienia wyjątku
  • Rzucanie wyjątków
  • Przechwytywanie wyjątków za pomocą bloku try except
  • Sekcja else w bloku try except
  • Sekcja finally w bloku try except
  • Przechwycenie rodzaju wyjątku w sekcji except
  • Przegląd wbudowanych klas wyjątków
  • Definiowanie własnych klas wyjątków
  • Bezpieczna obsługa zasobów
  • Zagadnienia uzupełniające
  • Definicja modułu oraz paczki
  • Sposoby tworzenia modułu
  • Importowanie modułów
  • Pozyskiwanie informacji na temat modułu
  • Skrypt szczególnym przypadkiem modułu
  • Zasady wyszukiwania modułów
  • Kompilowanie modułów
  • Moduł sys
  • Przegląd innych standardowych modułów Python
  • Funkcja dir
  • Definiowanie paczek
  • Plik __init__.py
  • Różne sposoby importowania elementów paczki
  • Dobre praktyki tworzenia struktury projektu
  • Tworzenie przykładowego projektu z podziałem na paczki i moduły
  • Umieszczenie paczek w zdalnym repozytorium PyPI
  • Importowanie utworzonej paczki z repozytorium PyPI
  • Zagadnienia uzupełniające
  • Omówienie zasad programowania obiektowego
  • Tworzenie klas i obiektów
  • Klasyfikacja składników klasy
  • Słowo kluczowe self
  • Metoda __init__
  • Inne ważne dunder methods
  • Atrybuty klasy oraz atrybuty obiektu klasy
  • Różne sposoby odwoływania się do składników instancji klasy
  • Pozyskiwanie informacji na temat obiektu
  • Przygotowanie obiektów klasy do pracy ze strukturami iterable
  • Metody instancji klasy
  • Dekoratory @classmethod oraz @staticmethod
  • Dekorator @property
  • Klasy jako obiekty callable
  • Składniki prywatne w klasie
  • Klasy POJO
  • Dynamiczne tworzenie klas
  • Podstawy metaprogramowania
  • Dziedziczenie
  • Polimorfizm
  • Dekoratory @classmethod oraz @staticmethod w dziedziczeniu
  • Rozszerzanie typów wbudowanych
  • Abstrakcyjność
  • Dziedziczenie wielokrotne
  • Duck typing
  • Implementacja własnego iteratora
  • Moduł pythonlangutil
  • Dekorator dataclass
  • Przegląd innych dekoratorów rozszerzających możliwości klasy
  • Metoda __init_subclass__
  • Dokumentowanie kodu 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
  • Porównanie funkcji str() oraz repr()
  • Implementacja różnych sposobów formatowania danych
  • Operacje odczytu i zapisu do plików
  • Praca z plikami w trybie tekstowym oraz binarnym
  • Zarządzanie danymi w formacie JSON
  • Operacje odczytu i zapisu do plików w formacie JSON
  • Bezpieczny sposób zarządzania komunikacją z plikiem
  • Zagadnienia uzupełniające
  • Konfiguracja wybranego środowiska bazodanowego
  • Omówienie zasad języka 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 zapytań SQL
  • Konfiguracja i zarządzanie relacjami
  • Transakcyjność
  • Pozyskiwanie informacji o właściwościach bazy danych i tabel
  • Wykonywanie kopii zapasowej bazy danych
  • Praktyczny przykład uogólnionego repozytorium bazodanowego
  • Zagadnienia uzupełniające
  • Omówienie zagadnień ORM
  • Instalacja i konfiguracja aplikacji do pracy z SQLAlchemy
  • Różne sposoby tworzenia modelu tabeli
  • Zarządzanie modelem tabeli bazy danych z poziomu SQLAlchemy
  • Pozyskiwanie informacji na temat modelu tabeli z bazy danych
  • 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
  • Praktyczny przykład uogólnionego repozytorium bazodanowego
  • Zagadnienia uzupełniające
  • Konfiguracja wybranego środowiska bazodanowego NoSQL
  • Omówienie zasad języka 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
  • Zarządzanie archiwami ZIP
  • Zarządzanie plikami CSV
  • Zarządzanie plikami oraz katalogami
  • Wysyłanie wiadomości email
  • Lazy Streams
  • Generowanie tokenów JWT
  • Komunikacja ze zdalnym REST API
  • Geolokalizacja
  • Zagadnienia uzupełniające
  • Omówienie zagadnień związanych z architekturą testowania
  • Klasyfikacja testów
  • Podejście TDD (Test-Driven Development)
  • Implementacja podstawowej struktury testującej
  • Uruchamianie testów
  • Omówienie zasady działania asercji
  • Praktyczne przykłady wykorzystania różnych rodzajów asercji
  • Generowanie testów opartych na istniejących metodach
  • Sposoby pomijania testów
  • Wykonywanie testów zagnieżdżonych i parametryzowanych
  • Grupowanie testów
  • Wykonywanie operacji przed testami i po testach
  • Implementacja test loaderów
  • Omówienie zagadnień związanych z mockowaniem
  • Patch oraz dekorator @patch
  • Prezentacja różnych przykładów mockowania
  • Analiza struktury i kolejności wywołania bytów mockowanych
  • Rzucanie wyjątków z mockowanych obiektów
  • Side effect functions
  • Generowanie mocków na podstawie istniejących obiektów
  • Partial mocking
  • Zagadnienia uzupełniające
  • Wprowadzenie pojęć związanych z programowaniem wielowątkowym
  • Moduł threading
  • Tworzenie wątku za pomocą funkcji
  • Tworzenie wątku za pomocą klasy
  • Zarządzanie pracą wielu wątków – ThreadPoolExecutor
  • Problemy związane z wielowątkowością
  • Lock
  • RLock
  • Kolejki
  • Implementacja wzorca producent-konsument
  • Semafor
  • Timer
  • Barrier
  • Wprowadzenie pojęć związanych z programowaniem asynchronicznym
  • Porównanie wielowątkowości i asynchroniczności
  • Moduł asyncio
  • Słowa kluczowe async oraz await
  • Omówienie zasady działania coroutine
  • Omówienie zasady działania event loop
  • Wykorzystanie funkcji asyncio.gather
  • Wykorzystanie funkcji asyncio.create_task
  • Chaining coroutines
  • Kolejki asynchroniczne asyncio.Queue
  • Iterator asynchroniczny
  • Moduł aiohttp jako przykład wykorzystania asynchroniczności
  • Asynchroniczna komunikacja z REST API
  • Implementowanie asynchronicznego web servera
  • Zagadnienia uzupełniające
  • Omówienie architektury aplikacji webowej
  • Omówienie standardów HTTP, REST, JSON oraz innych powiązanych
  • Klasyfikacja pojęć związanych z frameworkiem Django
  • Różnica pomiędzy projektem oraz aplikacją
  • Wzorzec projektowy Active Record
  • Wprowadzenie do frameworka Django REST
  • Przygotowanie środowiska do pracy z Django REST
  • Dokeryzacja aplikacji webowej (patrz punkt 23)
  • Praca ze zmiennymi środowiskowymi
  • Implementacja REST API w oparciu o klasę APIView
  • Implementacja REST API w oparciu o dekorator @api_view
  • Routing
  • Przekazywanie request params oraz query strings
  • Praca z nagłówkami
  • Przechwytywanie i walidacja ciała żądania
  • Zarządzanie sesją oraz cookies
  • Przygotowanie odpowiedzi dla żądania
  • Analiza kodów HTTP
  • Globalne przechwytywanie wyjątków
  • Serializacja i deserializacja JSON
  • Dobre praktyki serializacji danych
  • Przygotowanie prawidłowego formatu zwracanych danych
  • Implementacja serializerów i deserializerów
  • Django ORM jako mechanizm do zarządzania warstwą bazodanową
  • Migracje
  • 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
  • Optymalizacja komunikacji z bazą danych
  • Konfiguracja panelu administratora
  • Warstwa serwisowa aplikacji webowej
  • Wykorzystanie modułu django.test do testowania aplikacji
  • Testowanie modelu aplikacji
  • Mockowanie obiektów i testowanie warstwy serwisowej
  • Testowanie REST API z wykorzystaniem zewnętrznych klientów REST
  • Konfiguracja CORS
  • Pobieranie zasobów statycznych z aplikacji frontend
  • Zarządzanie zasobami statycznymi z wykorzystaniem AWS S3
  • 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 Simple JWT
  • Przygotowanie modułu rejestracji użytkowników
  • Przygotowanie modułu aktywacji konta użytkownika
  • Szyfrowanie hasła użytkownika
  • Implementacja modułu autentykacji użytkownika
  • Implementacja modułu autoryzacji użytkownika
  • Omówienie zastosowania serwera nginx
  • Przygotowanie wersji produkcyjnej aplikacji (WSGI oraz ASGI)
  • Osadzenie aplikacji webowej w chmurze (patrz punkt 24)
  • Generowanie dokumentacji aplikacji webowej
  • Internacjonalizacja
  • Zagadnienia uzupełniające
  • Omówienie architektury aplikacji webowej
  • Omówienie standardów HTTP, REST, JSON oraz innych powiązanych
  • Klasyfikacja pojęć związanych z frameworkiem Flask
  • Wprowadzenie do frameworka Flask-RESTful
  • Przygotowanie środowiska do pracy z Flask-RESTful
  • Dokeryzacja aplikacji webowej (patrz punkt 23)
  • Praca ze zmiennymi środowiskowymi
  • Implementacja REST API w oparciu o klasę Resource
  • Implementacja REST API w oparciu o dedykowane dekoratory
  • Routing
  • Przekazywanie request params oraz query strings
  • Praca z nagłówkami
  • Przechwytywanie i walidacja ciała żądania
  • Zarządzanie sesją oraz cookies
  • Przygotowanie odpowiedzi dla żądania
  • Analiza kodów HTTP
  • Globalne przechwytywanie wyjątków
  • Serializacja i deserializacja JSON
  • Dobre praktyki serializacji danych
  • Przygotowanie prawidłowego formatu zwracanych danych
  • Flask-SQLAlchemy jako mechanizm do zarządzania warstwą bazodanową
  • Migracje
  • 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
  • Optymalizacja komunikacji z bazą danych
  • Warstwa serwisowa aplikacji webowej
  • Testowanie modelu aplikacji
  • Mockowanie obiektów i testowanie warstwy serwisowej
  • Testowanie REST API z wykorzystaniem zewnętrznych klientów REST
  • Konfiguracja CORS
  • Pobieranie zasobów statycznych z aplikacji frontend
  • Zarządzanie zasobami statycznymi z wykorzystaniem AWS S3
  • 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-PyJWT
  • Przygotowanie modułu rejestracji użytkowników
  • Przygotowanie modułu aktywacji konta użytkownika
  • Szyfrowanie hasła użytkownika
  • Implementacja modułu autentykacji użytkownika
  • Implementacja modułu autoryzacji użytkownika
  • Omówienie zastosowania serwera nginx
  • Przygotowanie wersji produkcyjnej aplikacji (WSGI oraz ASGI)
  • Osadzenie aplikacji webowej w chmurze (patrz punkt 24)
  • Generowanie dokumentacji aplikacji webowej
  • Internacjonalizacja
  • Zagadnienia uzupełniające
  • Omówienie architektury aplikacji webowej
  • Omówienie standardów HTTP, REST, JSON oraz innych powiązanych
  • Klasyfikacja pojęć związanych z frameworkiem FastAPI
  • Prezentacja i wykorzystanie mechanizmu dependency injection
  • Prezentacja i wykorzystanie mechanizmu middleware
  • Wykorzystanie mechanizmów asynchroniczności do implementowania aplikacji webowej 
  • Przygotowanie środowiska do pracy z FastAPI
  • Dokeryzacja aplikacji webowej (patrz punkt 23)
  • Praca ze zmiennymi środowiskowymi
  • Implementacja REST API
  • Routing
  • Przekazywanie request params oraz query strings
  • Praca z nagłówkami
  • Przechwytywanie i walidacja ciała żądania
  • Zarządzanie sesją oraz cookies
  • Przygotowanie odpowiedzi dla żądania
  • Analiza kodów HTTP
  • Globalne przechwytywanie wyjątków
  • Serializacja i deserializacja JSON
  • Dobre praktyki serializacji danych
  • Przygotowanie prawidłowego formatu zwracanych danych
  • SQLAlchemy jako mechanizm do zarządzania warstwą bazodanową
  • Migracje
  • 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
  • Optymalizacja komunikacji z bazą danych
  • Warstwa serwisowa aplikacji webowej
  • Testowanie modelu aplikacji
  • Mockowanie obiektów i testowanie warstwy serwisowej
  • Testowanie REST API z wykorzystaniem zewnętrznych klientów REST
  • Konfiguracja CORS
  • Pobieranie zasobów statycznych z aplikacji frontend
  • Zarządzanie zasobami statycznymi z wykorzystaniem AWS S3
  • 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 Jose do generowania tokenów JWT
  • Przygotowanie modułu rejestracji użytkowników
  • Przygotowanie modułu aktywacji konta użytkownika
  • Szyfrowanie hasła użytkownika
  • Implementacja modułu autentykacji użytkownika
  • Implementacja modułu autoryzacji użytkownika
  • Omówienie zastosowania serwera nginx
  • Przygotowanie wersji produkcyjnej aplikacji
  • Osadzenie aplikacji webowej w chmurze (patrz punkt 24)
  • Generowanie dokumentacji aplikacji webowej
  • Internacjonalizacja
  • Zagadnienia uzupełniające
  • Omówienie architektury platformy Docker
  • Zasada działania obrazu oraz kontenera
  • Różnica pomiędzy kontenerem Docker oraz maszyną wirtualną
  • Instalacja platformy Docker
  • Praca z Docker CLI
  • Tworzenie i zarządzanie obrazami platformy Docker
  • Image Layers
  • Wprowadzenie do pracy z Docker Hub
  • Osadzenie przygotowanego obrazu w repozytorium Docker Hub
  • Tworzenie i zarządzanie kontenerami w platformie Docker
  • Omówienie cyklu życia kontenera
  • Kopiowanie plików z maszyny lokalnej do kontenera
  • Kopiowanie plików z kontenera do maszyny lokalnej
  • Klasyfikacja rodzajów danych przechowywanych w kontenerach
  • Tworzenie i zarządzanie volumes w platformie Docker
  • Różnica pomiędzy anonymous volumes oraz named volumes
  • Tworzenie i zarządzanie bind mounts w platformie Docker
  • Omówienie różnic pomiędzy volumes oraz bind mounts
  • Tworzenie volumes tylko do odczytu
  • Instalacja i uruchamianie przykładowych narzędzi z wykorzystaniem platformy Docker
  • Omówienie struktury pliku konfiguracyjnego Dockerfile
  • Praca z argumentami oraz zmiennymi środowiskowymi
  • Konteneryzacja aplikacji webowej z wykorzystaniem Docker
  • Komunikacja kontenera z zewnętrznym REST API
  • Komunikacja kontenera z narzędziami osadzonymi w localhost
  • Komunikacja container to container z użyciem networks w platformie Docker
  • Przegląd sterowników do konfiguracji zachowania networks
  • 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 
  • Konfiguracja kontenerów do pracy z wieloma bazami danych
  • Konteneryzacja aplikacji webowej
  • Przykład tworzenia utility containers
  • Zagadnienia uzupełniające
  • Omówienie architektury Amazon Web Services
  • Omówienie pojęcia regionu
  • Omówienie pojęcia availability zone (AZ)
  • Praca z Identity and Access Management (IAM)
  • Wprowadzenie pojęć users, roles, groups oraz policies
  • Konfiguracja konta użytkownika
  • Zarządzanie budżetem
  • Omówienie Amazon Machine Images (AMI)
  • Wprowadzenie do serwisu Elastic Compute Cloud (EC2)
  • Przygotowanie i uruchomienie instancji EC2
  • Przegląd parametrów instancji EC2
  • Konfiguracja Security Groups do ustawienia możliwości komunikacyjnych instancji EC2
  • Komunikacja z instancją EC2 z wykorzystaniem SSH
  • Komunikacja z instancją EC2 z wykorzystaniem AWS Console
  • Konfiguracja Elastic IP
  • Konfiguracja User Data do uruchamia operacji początkowych dla instancji EC2
  • Przygotowanie instancji EC2 do pracy z kontenerami Docker
  • Osadzenie skonteneryzowanej aplikacji webowej w instancji EC2
  • Klasyfikacja sposobów uruchamiania instancji EC2
  • EC2 Elastic Network Instances (ENI)
  • Omówienie pojęć scalability oraz high availability
  • Skalowanie wertykalne oraz horyzontalne
  • Omówienie pojęcia load balancing
  • Klasyfikacja load balancerów
  • Uruchomienie serwisu Elastic Load Balancer (ELB)
  • Load Balancer Stickiness
  • Cross-Zone Load Balancing
  • Omówienie pojęć związanych z auto scaling
  • Konfiguracja Auto Scaling Group (ASG)
  • Sposoby skalowania – Target Tracking Scaling
  • Sposoby skalowania – Simple / Step Scaling
  • Konfiguracja Elastic Block Store (EBS)
  • Klasyfikacja EBS Volumes
  • Konfiguracja EC2 Instance Store
  • Konfiguracja Elastic File System (EFS)
  • Porównanie EBS oraz EFS
  • Wprowadzenie do serwisu Relational Database Service (RDS)
  • Zalety i wady stosowania RDS
  • Omówienie mechanizmu RDS Read Replicas
  • Omówienie mechanizmu Single AZ oraz Multi AZ
  • Konfiguracja usługi RDS
  • RDS Encryption
  • Wady i zalety pracy z bazą danych Amazon Aurora
  • Konfiguracja RDS do pracy z Amazon Aurora
  • Omówienie usługi Amazon ElastiCache
  • Wprowadzenie do serwisu Elastic Beanstalk (EB)
  • Przygotowanie środowiska Elastic Beanstalk Environment
  • Klasyfikacja sposobów osadzania aplikacji w EB Environment
  • Praca z Elastic Beanstalk Extensions
  • Klonowanie środowiska Elastic Beanstalk
  • Docker w pracy z Elastic Beanstalk
  • Osadzanie aplikacji webowej w środowisku EB
  • Osadzanie aplikacji webowej w środowisku EB z komunikacją bazodanową z wykorzystaniem RDS
  • Load balancing oraz autoscaling aplikacji osadzonej w środowisku EB
  • Przygotowanie API Gateway dla środowiska EB
  • Wprowadzenie do serwisu Elastic Container Service (ECS)
  • Omówienie pojęcia orkiestryzacji kontenerów
  • Konfiguracja ECS
  • Wprowadzenie do serwisu AWS Fargate
  • Omówienie jednostki uruchomieniowej Task
  • Konfiguracja Task Definition
  • Omówienie i konfiguracja Service
  • Przeznaczenie elementu Cluster
  • Konfiguracja Cluster
  • Osadzenie aplikacji webowej jako service w klastrze AWS Fargate
  • Komunikacja kontenera AWS Fargate z bazą danych osadzoną w RDS
  • Zarządzanie parametrami aplikacji poprzez Systems Manager
  • Komunikacja kontenerów osadzonych w ramach serwisów AWS Fargate (wdrażanie architektury mikroserwisowej)
  • Konfiguracja distributed tracing dla kontenerów AWS Fargate z wykorzystaniem usługi AWS X-Ray
  • Konfiguracja load balancera do pracy z kontenerami AWS Fargate
  • Konfiguracja auto scaling do pracy z kontenerami AWS Fargate
  • Wprowadzenie do serwisu App Mesh
  • Charakterystyka pojęcia proxy
  • Envoy Proxy jako przykład proxy używanego w App Mesh
  • Tworzenie namespace w ramach usługi App Mesh
  • Tworzenie service dla skonfigurowanego namespace
  • Konfiguracja URI utworzonych w usłudze Route53 do pracy ze skonfigurowanymi serwisami
  • Konfiguracja Virtual Node
  • Konfiguracja Virtual Service dla utworzonych serwisów
  • Konfiguracja AWS Fargate do wdrożenia konfiguracji przygotowanej w ramach AWS Mesh
  • Wprowadzenie do serwisu AWS CodePipeline
  • Wyjaśnienie pojęcia continuous integration (CI)
  • Wyjaśnienie pojęcia continuous delivery (CD)
  • Przygotowanie aplikacji webowej do pracy z CI/CD
  • Przygotowanie repozytorium GitHub aplikacji webowej do pracy z AWS CodePipeline
  • Przygotowanie serwisu ECS do pracy z AWS CodePipeline
  • Omówienie kolejnych etapów budowania i uruchamiania projektu w ramach usługi AWS CodePipeline
  • Uruchomienie serwisu z aplikacją webową w ramach CI/CD
  • Testowanie mechanizmu CI/CD w ramach AWS CodePipeline
  • Sprawdzanie logów aplikacji z wykorzystaniem usługi CloudWatch
  • Serwowanie zasobów statycznych z wykorzystaniem usługi AWS S3
  • 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 6 Dalej
Wstecz 1 z 6 Dalej

Newsletter

Zapisz się na KURS i zyskaj - licencja JetBrains na 6 miesięcy za darmo!