Przejdź do treści PWA

Szkolenia

Posiadam potwierdzone doświadczenie w przekazywaniu wiedzy na temat różnych tematów. Najważniejsze podczas szkolenia dla mnie jest to, aby uczestnicy dobrze się podczas niego czuli. Dbam nie tylko o przekazanie wiedzy merytorycznej, ale także o samopoczucie uczestników.

Z jakich tematów realizuję szkolenia?

JavaScript (trzy poziomy)

Naukę języka dzielę na trzy poziomy:

  • Poziom Podstawowy — Zmienne, Typy danych, Operatory, Funkcje, Tablice, Obiekty, Warunki, Pętle, Obsługa błędów, Falsy Values, JSON, BOM, Date, Math, Zegary, Komentarze, Callbacks
  • Poziom Średnio zaawansowany — This, Closures, IIFE, Currying, Chaining, Prototypes, Promise, Fetch API, RegExp, Klasy, Moduły, DOM Elements, DOM Events, Formularze
  • Poziom Zaawansowany — Dziedziczenie, Moduły, Generatory & Iteratory, Kolekcje (Map, Set, WeakMap, WeakSet), Symbole, Proxy, Async / await
TypeScript (dwa poziomy)

W dobie dzisiejszych skomplikowanych aplikacji webowych, TypeScript jest standardowym wyborem.

Podczas kilku dni szkolenia poruszymy takie zagadnienia jak:

  • Analiza języka, np. Generic Functions, Dekoratory
  • Podstawowe Typy Danych
  • Zaawansowane Typy Danych, np. Type Guards
  • Anatomia narzędzi, które przychodzą razem z TypeScript
  • Stworzenie własnych DefinitelyTyped
  • Tweakowanie kompilatora (tsconfig.json)
  • Lintowanie (tsconfig.json, .eslintrc.json)
  • Różnice między type, interface, module, namespace
  • Performance
  • Testy jednostkowe z wykorzystaniem Jest
Security - Bezpieczeństwo aplikacji Webowych

Podczas jednego dnia szkolenia poznajemy ataki i wykonujemy serię ćwiczeń, które pozwolą stworzyć kod podatny na konkretne błędy w aplikacjach webowych. Każde ćwiczenie zakończy się zabezpieczeniem aplikacji.

Ataki:

  • Clickjacking
  • Reverse Tabnabbing
  • Path Traversal
  • Cross-Site Request Forgery (CSRF)
  • Cross-Site Scripting (XSS) — Stored & Reflected
  • Regular expression Denial of Service (ReDoS)
Dodatkowo, poruszamy tematy:
  • Man-In-The-Middle (MITM)
  • QL Injection
Node.js — Budowanie aplikacji serwerowej

Podczas kilku dni szkolenia poruszymy takie zagadnienia jak:

  • npm
  • Frameworki do budowy aplikacji w Node.js
  • Node.js Core
  • Debugowanie
  • Bazy danych (sterowniki)
  • REST
  • GraphQL
  • Serwisy
  • Uwierzytelnianie oraz autoryzacja
  • Security
  • Testowanie kodu
  • JSON Web Tokens
Angular — Budowanie aplikacji webowej (SPA)

Podczas kilku dni szkolenia poruszymy takie zagadnienia jak:

  • CLI
  • Architektura aplikacji
  • Dyrektywy
  • Komponenty
  • Pipe
  • Usługi
  • Wstrzykiwanie zależności
  • Formularze
  • RxJS
  • Klient HTTP
  • Routing
  • Guards
React + Redux — Budowanie aplikacji webowej (SPA)

Podczas kilku dni szkolenia poruszymy takie zagadnienia jak:

  • Szablony JSX: manipulacja stylami, pętle w markupie
  • Komponenty: Cykl życia, stan lokalny, komunikacja, hooki
  • Stan globalny: Redux
  • Routing
  • Formularze
  • Integracja z API
  • Testowanie: komponentów, serwisów, hooków
Testowanie kodu (jednostkowe, integracyjne)

Po kilku latach pracy w zawodzie programisty kolejnym naturalnym krokiem rozwoju jest tworzenie testów jednostkowych lub integracyjnych dzięki którym sprawdzamy jak zachowują się nasze moduły w izolacji oraz we współpracy z innymi modułami.

Istnieje ogromna baza pomocnych narzędzie, bez których pisanie testów nie byłoby tak przyjemne jakim może się stać! Przykładowe z nich:

  • AVA
  • Jasmine
  • Jest
  • tape
  • Karma
  • Mocha
  • Chai

Dodatkowym plusem szkoleń ze mną jest możliwość nauczenia się wytwarzania oprogramowania w oparciu o technikę TDD tj. Test-Driven Development z wykorzystaniem strategi Test First.

Testy end-to-end

Swego czasu poprowadziłem cykl szkoleń w temacie testowania kodu. Bardzo lubię rozmawiać na temat jak kod powinien być testowany.

Podczas szkolenia z tego tematu wykorzystamy takie narzędzia jak:

  • Cypress
  • Nightwatch.js
  • Playwright
  • TestCafe
  • Selenium

TIP: W sekcji Webinary można znaleźć ponad 10 godzinnych filmów traktujących o testowaniu kodu (testy jednostkowe i integracyjne) oraz testowaniu aplikacji (testy end-to-end).

Programowanie reaktywne z użyciem RxJS (JavaScript, TypeScript)

Podczas kilku dni szkolenia poruszymy takie zagadnienia jak:

  • Programowanie funkcyjne
  • Architektura
  • Operatory RxJs
  • Przetwarzanie danych z biblioteką RxJS
  • Budowa Rich UI, wzorzec MVVM z biblioteką RxJS
  • Refaktoryzacja kodu i włączenie biblioteki RxJS do istniejącego projektu
  • Testowanie kodu opartego o RxJS
Wzorce projektowe (JavaScript, TypeScript, frameworki)

Tworzenie kodu to trudna sztuka. Rozwiązywanie problemów często spędza nam sen z powiek. A co jeśli znaliśmy wzorce rozwiązać? Kiedy kolejny raz przyjdzie nam zrealizować jakąś funkcjonalność, warto poświęcić kilka chwil, aby wykorzystać wzorzec rozwiązania. Czy jest sens wyważać otwarte drzwi?

Moje ulubione wzorce, które poruszam na szkoleniach:

  • Kreacyjne: Singleton, Factory, Builder, Prototype
  • Strukturalne: Facade, Proxy, Adapter, Bridge, Decorator, Composite
  • Zachowań: Command, Observer, Iterator, State, Strategy
Programowanie obiektowe OOP oraz zasady SOLID
  • SRP - Single Responsibility Principle
  • OCP - Open Closed Principle
  • LSP - Liskov Substitution Principle
  • ISP - Interface Segregation Principle
  • DIP - Dependency Inversion Principle
Zasady "Clean Code". Praca z "Legacy Code"

Jako programista z wieloletnim doświadczeniem widziałem już dość dużo kodu, aby móc śmiało powiedzieć, że niektóry kod jest "lepszy" a niektórzy "gorszy".

Podczas tego szkolenia zamienimy śmierdzący kod w taki, który będzie mógł być łatwo modyfikowalny.

Szkolenie oparte jest na książkę "Clean Code" autorstwa Robert C. Martina, znanego tu i ówdzie jako Uncle Bob.

Wydajność aplikacji webowych

Podczas tego szkolenia skupimy się na poprawieniu wydajności. Przyspieszymy bootstrap aplikacji oraz podstawowe elementy nawigacyjne.

Na szkoleniu wykorzystamy sporo aplikacji, którą pomogą znaleźć nam miejsce nad którymi warto się pochylić, aby przyspieszyć działanie całej aplikacji.

Front-end (HTML5, CSS3)

Podczas kilku dni szkolenia poruszymy takie zagadnienia jak:

  • Narzędzia: Kompilatory, Frameworki CSS
  • Responsive Web Design (RWD)
  • Budowa selektorów CSS
  • Technika CSS Sprites
  • Pseudo-elementy vs. pseudo-klasy
  • Semantyka znaczników HTML
  • Tworzenie tabel, formularzy w oparciu o XHTML 5
  • Przeznaczenie atrybutów HTML
  • Protokół Open Graph
  • Wykorzystanie Schema do ułatwienia robotom analizującym treść strony
Git - System kontroli wersji

Git jest najpopularniejszym systemem kontroli wersji. Jeśli nie wiesz dlaczego, to to szkolenie jest dla Ciebie!

Podczas tego szkolenia omówimy takie tematy jak:

  • Instalacja
  • Architektura narzędzia Git
  • Konfiguracja: aliasy, skróty
  • Operacja na plikach: repozytorium, katalog .git, ignorowania
  • Commit
  • Branch
  • Tag
  • Praca w zespole
  • GitHub: Pull Request
  • Cherry picking, reflog
WebSockets - Aplikacje czasu rzeczywistego

Jeśli chcesz zbudować aplikację czasu rzeczywistego to musisz opakować WebSockets. Na szkoleniu zbudujemy aplikację z małym poziomem opóźnień.

Podczas szkolenia wykorzystamy narzędzie Socket.io, dzięki któremu budowania aplikacji będzie bardzo przyjemne i zrozumiałe.

Na szkoleniu nie zabranie podsłuchiwania ruchu sieciowego, aby doskonale wiedzieć jak wygląda komunikacja między klientami.

SEO - Optymalizacja strony internetowej pod kątem wyszukiwarek

Podczas kilku dni szkolenia poruszymy takie zagadnienia jak:

  • Googlebot
  • Plik robots.txt
  • Server-side rendering
  • Site mapy
  • Przekierowania HTTP
  • HTML m.in. Open Graph
  • Obniżanie rankingu pozycji w Google
  • Zarządzanie treścią, np. subdomeny, przekierowania
  • Mobilna wersja
  • Budowa adresów URL
  • Osadzenie skryptu do analizy
  • Narzędzia, np. Google Search Console, SEO Quake

Referencje uczestników moich szkoleń

Super wykładowca. Szkolenie było profesjonalnie zorganizowane. Podstawy framework Angular zostały w sposób przejrzysty wytłumaczone. Podczas 3-dniowego kursu rozwijaliśmy przykładową aplikację, ćwicząc na niej poszczególne elementy/technologie Angular. Taki sposób nauki był dużo ciekawszy niż wykonywanie osobnych ćwiczeń do poszczególnych zagadnień. Adam Gąsior • Dyrektor Działu Informatyki at Prolan Sp. z o.o.

Uczestniczyłem kilkukrotnie w szkoleniach prowadzonych przez Piotra. Jest bardzo dobrym trenerem i mentorem - posiada usposobienie które pcha grupę do przodu i motywuje do pracy. Piotr ma bardzo wysokie kompetencje w temacie Frontend ogólnie, a szczególnie w frameworku Angular. W tych tematach chętnie widziałbym się jako członek zespołu prowadzonego przez Piotra lub uczestnik szkolenia, co oczywiste :) Osobiście wiele zawdzięczam mu jako współtwórcy społeczności WarsawJS. Dziękuję Piotrze! Polecam na 100%! Artur Kozubek • Software Engineer

Brałam udział w szkoleniu z Angulara prowadzone przez Piotra. Posiada umiejętność sprawnego przekazywania wiedzy osobom na różnych poziomach. Dbał o doskonałą atmosferę w całej grupie. Również odpowiadał na wszelkie pytania poza zakresu szkolenia. Profesjonalny człowiek godny polecenia. Natalia Kostiuk • Full Stack Developer w AEGON TUnŻ S.A.

Referencje dostępne pod adresem https://www.linkedin.com/in/piecioshka/details/recommendations/

Potrzebujesz szkolenia?

Napisz do mnie.