Živý online kurz Vývoj aplikací v C++ | Nauč se základy programování v C++ | robot_dreams Czech
  • živý online kurz
  • 8 týdnů
  • start 20. 11. 2024
  • 16 lekcí

Vývoj aplikací
v C++

Vstup do světa vysokoúrovňového programování s kurzem C++. Překonej počáteční nejistotu a získej know-how i skills pro vývoj výkonných a efektivních aplikací.

 

Vít Štěpánek

Ex-Senior C++ Developer

EnOcean

  • Kurz C++ spojuje teoretické základy s praktickými cvičeními, což ti pomůže rychle překonat počáteční složitosti programovacího jazyka C++.

  • Čeká tě deep dive do syntaxe, objektově orientovaných konceptů a moderních technik v C++, což ti usnadní pochopení specifických požadavků tohoto jazyka.

  • Získáš skillset, který ti umožní vytvářet efektivní aplikace, pracovat s více vlákny i pokročilými knihovnami.

  • Rezervuj si místo

O kurzu

  • TIMELINE:

    LISTOPAD–LEDEN

  • ČEKÁ TĚ:

    16 LEKCÍ

  • FORMÁT:

    živě online

V kurzu Vývoj aplikací v C++ si osvojíš klíčové principy programování v jazyce C++. Naučíš se, jak správně spravovat paměť, využívat polymorfismus, šablony a pracovat s vlákny. Osvojíš základní i pokročilé skills pro vývoj výkonných a efektivních aplikací.

 

Čeká tě deep dive do manuální správy paměti, optimalizace kódu a použití technik pro výkonné programování. Na kurzu rozvineš své programovací skills a usnadníš si hledání práce.

KURZ JE VHODNÝ PRO

JUNIOR/MEDIOR PROGRAMÁTORY V JINÝCH JAZYCÍCH

Osvoj si potřebné základy programování v C++. Nauč se pracovat s pamětí a pochopíš, proč je manuální správa zdrojů efektivní. Zjisti, jaké výhody má metaprogramování pomocí šablon a jaké typy aplikací se dnes v C++ vyvíjejí.

NÍZKOÚROVŇOVÉ PROGRAMÁTORY PRO EMBEDDED A IOT

Nauč se manuálně spravovat paměť a optimalizovat kód pro maximální výkon. Získej dovednosti pro psaní efektivního a kompaktního kódu v C++. Seznam se s paralelizací vícevláknových aplikací a vytěž maximum z omezených zdrojů.

MANAŽERY C++ TÝMŮ A TECHNICKÉ ROLE

Získej hlubší pochopení procesu tvorby programů v C++. Nauč se lépe odhadovat náročnost
zadaných úkolů, účastnit se odborných debat a odhalovat drobné chyby v kódu. Pochop, jaké možnosti C++ nabízí, a získej přehled o rozdílech mezi programovacími jazyky.

 

LEKTOR

Vít Štěpánek

Ex-Senior C++ Developer, EnOcean

  • Má zkušenosti z několika významných bank a finančních institucí, jako jsou Deutsche Börse, Commerz Systems a CGI, kde se podílel na údržbě a vývoji obchodních a finančních systémů.

  • V minulosti působil jako SW architekt pro jednu z největších evropských bank, kde navrhoval a koordinoval vývoj credit rating systému a vedl redesign IoT produktu pro cloudové řešení.

  • Ve společnosti EnOcean pracoval jako senior C++ developer, kde se zaměřoval na vývoj backendových aplikací pro překlady mezi IoT protokolem a integrační vrstvou.

  • Má více než 20 let zkušeností v programování, posledních 15 let se specializuje na C++.

Program

  • 1 Lekce
    Středa 20. 11. 2024 17:30–19:00

    Úvod do C++

    • Představení kurzu a cílů jednotlivých lekcí
    • Seznámení s kódem
    • Kick off – „Hello world
    • Kompilace – koncepce kompilace, object filů, headerů, flagy
    • Linkování s *.a, *.so knihovnami
    • Kompilace knihovny (vs. kompilace executable)
    • Další nejběžnější compiler flagy (optimalizace, warnings)

    Výstupy z lekce: Seznámíš se s ukázkovým kódem obsahujícím důležité prvky a porozumíš jejich významu. Pochopíš princip kompilace, tvorbu object filů a headerů. Naučíš se používat základní kompilátorové flagy a budeš umět linkovat kód s knihovnami typu *.a a *.so, přičemž poznáš rozdíl mezi kompilací knihovny a kompilací spustitelného souboru.

  • 2 Lekce
    Pondělí 25. 11. 2024 17:30–19:00

    Proměnné, datové typy, flow control

    • Hello world – rozpracování do korektní formy
    • Datové typy (základní)
    • Typy proměnných (value, pointer, reference, pole)
    • Const qualifier (u proměnných)
    • Řízení toku kódu – if, while, for
    • Operátory a jejich priorita
    • Keyword „auto“ – dedukce typu, structure binding
    • stdout, stdin

    Výstupy z lekce: Porozumíš základním datovým typům (int, float a char), včetně jejich rozsahu, velikosti a použití. Naučíš se rozlišovat mezi různými typy proměnných, jak je správně je deklarovat a používat. Zvládneš použít kvalifikátor const u proměnných pro zajištění neměnnosti dat a pochopíš jeho význam pro bezpečnost kódu. Ovládneš základní řídicí struktury, jako jsou if, while a for, k ovládání toku programu a porozumíš jejich syntaxi a použití. Také se naučíš pracovat se standardními vstupy a výstupy, včetně čtení a zápisu dat do konzole a z konzole.

  • 3 Lekce
    Středa 27. 11. 2024 17:30–19:00

    Funkce a volání

    • Deklarace funkce bez parametrů, s parametry
    • Volání funkcí
    • Overloading („přetěžování“)
    • Rekurze
    • Příklad rekurze – výpočet fibonacci sekvence (past rekurze!)
    • Přetypování explicitní (kromě „dynamic_cast“)
    • Přetypování implicitní (a jeho pravidla)
    • void*, kde ho vidět, kdy ho použít a proč ho nepoužívat
    • nullptr vs. NULL

    Výstupy z lekce: Budeš schopen*á správně deklarovat a definovat funkce, a to jak bez parametrů, tak s parametry, a porozumíš jejich roli v programu. Naučíš se volat funkce v různých částech programu a pochopíš, jak funguje předávání argumentů do funkcí. Dokážeš implementovat rekurzivní funkci pro výpočet Fibonacciho sekvence a porozumíš problémům spojeným s neefektivní rekurzí. Budeš také umět používat implicitní i explicitní přetypování.

  • 4 Lekce
    Pondělí 2. 12. 2024 17:30–19:00

    Třídy, dědičnost, polymorfismus I

    • Třída v CPP (koncepce, možnosti dědičnosti, virtuálních metod, ctor a dtor)
    • Přístup k objektu podle veřejnosti (public, protected, private)
    • Metody třídy (nevirtuální)
    • Speciální metody (ctor, copy ctor, move ctor, copy assignment, move assignment, dtor)
    • „default“, „delete“ keywords na speciálních metodách
    • Operator overloading na třídách (operátor not, []...)
    • Output operator <<

    Výstupy z lekce: Porozumíš základnímu konceptu třídy v C++, včetně možností dědičnosti, použití virtuálních metod a role konstruktorů a destruktorů. Naučíš se používat přístupové specifikátory public, protected a private. Budeš schopen deklarovat a implementovat nevirtuální metody třídy a pochopíš jejich roli a použití v programech. Také zvládneš přetěžovat operátory, jako jsou !, [], a operátor výstupu <<.

  • 5 Lekce
    Středa 4. 12. 2024 17:30–19:00

    Třídy, dědičnost, polymorfismus II

    • Dědičnost
    • class vs. struct
    • Praxe vs. teorie: efektivní dědičnost (příklad „formatter“ – elements to be printed in >2 formats)

    Výstupy z lekce: Porozumíš dědičnosti a různým přístupovým úrovním, které s ní souvisí. Naučíš se pracovat s virtuálními a abstraktními metodami a pochopíš jejich použití v objektově orientovaném programování.

  • 6 Lekce
    Pondělí 9. 12. 2024 17:30–19:00

    Proces, paměť, dynamická alokace

    • Stack, heap, static and global
    • RAII koncept
    • Object pool koncept

    Výstupy z lekce: Chápeš rozdíl mezi stackem a heapem a budeš umět používat operátory new, delete, new[], a delete[]. Také rozumíš rozdílu mezi new a malloc a osvojíš si postupy, jak zamezit heap pollution.

  • 7 Lekce
    Středa 11. 12. 2024 17:30–19:00

    Výjimky, exception safety, const correctness

    • Výjimky jako signalizace porušení kontraktu
    • Definice výjimek v CPP
    • Blok „try“ a odchytávání výjimek
    • Dědičnost výjimek a hierarchie „catch“ bloků
    • Význam const correctness
    • Vyladění přístupu k datovým členům třídy pomocí const a mutable

    Praktické cvičení: Porozumíš vlivu výjimek na výkon programu a naučíš se je správně odchytávat, přičemž se vyhneš problémům, jako je „object slicing“. Budeš také umět používat const pro správu datových členů, parametrů a výjimek, aby byl kód efektivní a bezpečný.

  • 8 Lekce
    Pondělí 16. 12. 2024 17:30–19:00

    Šablony – funkce a třídy (metaprogramming)

    • Princip šablonových funkcí
    • Instantiation
    • Šablonové třídy
    • Specializace
    • Částečná specializace
    • Template aliases
    • SFINAE
    • Auto v šablonách

    Výstupy z lekce: Naučíš se definovat a používat šablonové třídy, porozumíš specializaci a částečné specializaci šablon, a také zvládneš používat template aliases pro zjednodušení práce s šablonami v kódu.

  • 9 Lekce
    Středa 18. 12. 2024 17:30–19:00

    RAII v praxi: smart pointers, move concept; lambdy

    • Správa paměti
    • Princip přesunu resourců
    • std::move – konverzní funkce a její použití
    • move ctor a move assignment operator – implementace
    • lambda, capture list
    • Použití anonymních funkcí
    • Template lambda

    Výstupy z lekce: Naučíš se, jak funguje správa paměti pomocí shared_ptr a unique_ptr, a porozumíš principu přesunu zdrojů pomocí move a r-value referencí. Zvládneš také používat lambda výrazy, včetně capture listu a anonymních funkcí, pro efektivní a moderní C++ programování.

  • 10 Lekce
    Pondělí 23. 12. 2024 17:30–19:00

    Live coding – implementace fronty

    • Komentovaná implementace třídy queue s metodami push a pop
  • 11 Lekce
    Pondělí 8. 1. 2025 17:30–19:00

    STD kontejnery a algoritmy I.

    • Kontejnery

    Výstupy z lekce: Porozumíš, proč většinou není potřeba vytvářet vlastní kontejnery, a naučíš se efektivně používat standardní kontejnery jako vector, list, set a map v praxi.

  • 12 Lekce
    Středa 13. 1. 2025 17:30–19:00

    STD kontejnery a algoritmy II.

    • Kontejnery
      • multiset, multimap
      • deque, stack, queue
      • unordered_map, underered_set
      • std algoritmy
      • cppreference.com a jak ji číst a používat

      Výstupy z lekce: Naučíš se používat pokročilé kontejnery jako multiset, multimap, deque, stack, queue, unordered_map a unordered_set. Zároveň porozumíš běžným standardním algoritmům v C++ a jejich využití pro efektivní manipulaci s těmito kontejnery.

      Praktické cvičení: Vyhledávání anagramů (reálný příklad úkolu z výběrového řízení na juniorní pozici).

  • 13 Lekce
    Pondělí 15. 1. 2025 17:30–19:00

    Základy vícevláknového programování - multithreading

    • Vlákna (std::thread)
    • thread_local proměnné
    • Pasti – race condition, deadlock
    • Typy mutexů a proč většinu nepoužívat
    • Lockable koncept
    • condition_variable
    • Použití std::async, std::future, std::promise
    • Semafory a synchronizační primitiva
    • Atomické operace, synchronizační bariéry

    Výstupy z lekce: Naučíš se používat základní principy vícevláknového programování v C++, včetně práce s std::thread, thread_local proměnnými a synchronizačními mechanismy, jako jsou mutexy a condition_variable. Zároveň se naučíš, jak se vyhnout běžným problémům, jako jsou race conditions a deadlocky, pro bezpečné a efektivní vícevláknové programování.

    Praktické cvičení: Linked list.

  • 14 Lekce
    Středa 20. 1. 2025 17:30–19:00

    Streamy, filesystem, optional a ostatní klíčové utility

    • Čtení a zápis do souborů – fstream
    • Formátování a parsování textu – stringstream
    • Plusy a mínusy používání streamů
    • Kontejnery pro bezpečné a flexibilní zacházení s daty
    • Funkční objekty a přístup k souborovému systému

    Výstupy z lekce: Naučíš se používat fstream pro čtení a zápis do souborů a stringstream pro formátování a parsování textu, přičemž porozumíš výhodám a nevýhodám streamů. Zvládneš efektivně používat moderní C++ kontejnery a typy a osvojíš si využívání funkčních objektů, jako jsou std::function a std::bind, pro flexibilní a výkonné programování.

  • 15 Lekce
    Pondělí 22. 1. 2025 17:30–19:00

    Závěrem: optimalizace, unit testy, frameworky, buildovací nástroje, reference

    • Optimalizační rozhodnutí
    • Výhody používání unit testů v každodenním životě
    • Boost
    • Pokročilý metaprogramming

    Výstupy z lekce: Naučíš se dělat informovaná rozhodnutí ohledně optimalizace kódu a osvojíš si používání unit testů v každodenním vývoji. Zvládneš také řešit problémy s netestovatelností kódu, aby byl tvůj vývojový proces efektivní a spolehlivý.

  • 16 Lekce
    Středa 22. 1. 2025 17:30–19:00

    Q&A

    • Témata, která nebyla pochopena
    • Témata, o která studující projevili*y zájem
    • Diskuze

ZÍSKEJ VÍCE INFORMACÍ O KURZU VÝVOJ APLIKACÍ V C++

Vyplň registrační formulář a připoj se k nám! Náš r_d tým se s tebou spojí co nejdříve, abys získal*a všechny potřebné detaily o obsahu kurzu Vývoj aplikací v C++ a jeho ceně.

 
 
 
 
Získat více informací