Plan Szkolenia
Wprowadzenie
- Czym jest programowanie i dlaczego warto poświęcić mu uwagę
- Historia programowania
- Możliwości automatyzacji zadań za pomocą oprogramowania
- Rola programisty i komputera w przedsiębiorstwie
- Programowanie dziś, trendy rozwoju obecnego rynku
- Programowanie deklaratywne i imperatywne. Jak czy Co?
- Maszyna Turinga
- Konsolidacja, kompilacja i interpretowanie "w locie"
Przypomnienie zagadnień logiki i algebry Boole'a
- Predykaty
- Zdania logiczne
- Tautologie
- Algebra Boole'a
Pierwszy program
- Strukturalnie
- Funkcyjnie
- Obiektowo
- I jak jeszcze?
Typy proste
- Reprezentacja ciągów znakowych
- Liczby całkowite
- Liczby zmiennoprzecinkowe
- Typy logiczne
- Typ Null
- Wartość pusta czy niezainicjalizowana
- Silne i słabe typowanie
Struktury danych
- Pojęcia FIFO i FILO
- Stosy
- Kolejki
- Deklaracja tablic i list
- Indeksowanie
- Mapy
- Rekordy
- Drzewa
Operatory
- Operatory przypisania
- Operatory arytmetyczne
- Operatory porównania
- Porównanie typu i wartości w różnych językach
- Operatory bitowe
- Konkatenacja
- Operatory inkrementacji i dekrementacji
- Najczęściej popełniane błędy
Sterowanie przebiegiem programu
- Instrukcje if, if else
- Instrukcja goto, omówienie problemów zastosowania
- Instrukcja switch
- Pętla for, for-in
- Pętla while, do-while
- Pętla foreach
- Przerywanie pętli
Tworzenie kodu wielokrotnego użycia
- Programowanie funkcyjne
- Programowanie obiektowe
Paradygmaty programowania funkcyjnego
- Czym jest funkcja
- Funkcja a procedura
- Podstawy rachunku lambda
- Argumenty funkcji
- Zwracanie wartości
- Funkcje jako argumenty
- Funkcje anonimowe
- Domknięcia
- Rekurencja
Paradygmaty programowania obiektowego
- Reprezentacja bytów z realnego świata, byty w filozofii, ontologie i idee, potrzeba objektowości
- Podejmowanie decyzji co ma być objektem, czyli własne typy
- Deklaracja klas
- Tworzenie instancji klas
- Pola, jako stan obiektu
- Metody, jako zachowanie obiektu
- Abstrakcja
- Hermetyzacja
- Dziedziczenie
- Polimorfizm
- Asocjacja i agregacja
- Delegacja i rozdzielenie zależności pomiędzy obiektami
- Moduły, pakiety, biblioteki
- Udostępnianie API
- Modelowanie systemu jako klas i obiektów
- Opisywanie i programowanie relacji pomiędzy klasami
- Program z perspektywy biznesowej
Dobre praktyki programowania
- Pułapki i najczęściej popełniane błędy
- Kod wysokopoziomowy w interpretacji niskopoziomowej
- Optymalizacja kodu
- Zasada KISS
- Zasada DRY
- Zasada Worse is Better
- Separacja abstrakcji od implementacji
- Sposoby detekcji błędów logicznych programów
- Konwencje godowania
- Komentowanie kodu
- Metryki oprogramowania
Przegląd technologii i omawianych języków
- Obszar zastosowań omawianych języków
- Główne cechy języków
- Perspektywy rozwoju
- Dalszy kierunek rozwoju: algorytmika, optymalizacja kodu, wzorce implementacyjne, wzorce projektowe, wzorce architektoniczne, wzorce analityczne
- Redukcja konstrukcji sterujących - zastosowanie algorytmów sztucznej inteligencji i automatyczne podejmowanie decyzji
- Którą platformę wybrać? Indywidualne konsultacje
Opinie uczestników (7)
Duża wiedza z zagadnień objętych szkoleniem. Otwartość prowadzącego i dostosowanie treści i przebiegu szkolenia do uczestników.
Andrzej Kowalewski - ZETO Software SP. z o.o.
Szkolenie - Building Interactive Applications with React, Redux and GraphQL
otwartość, dobra atmosfera, współpraca z prowadzącym
PAA
Szkolenie - Mathematica - wprowadzenie, wizualizacja i prezentacja danych
The breadth of the topis covered was quite a bit and the trainer tried to do justice to that.
Lakshmipriya Sivakumar - Deque Systems Inc
Szkolenie - Spring Boot, React, and Redux
I like the professionality of the trainer, he really knows what he is talking about and able to explain almost even the simple subjects on the topic which is great.
Marlon - National Confederation of Cooperatives
Szkolenie - React with Next.js
trainer very knowledgeable clear classes explains the importance of learn the topic gives enough background on topic
Li Fang Bren Ong - DBS Bank Limited
Szkolenie - Ant Design
Learned a whole lot about the topic
Zsolt Langviser - Accenture Industrial SS
Szkolenie - NestJS: Beginner to Advanced
The labs were interesting and probably the most useful learning tool to me. Anything I missed or forgot about was relearned or reinforced in the labs.