Online kurz Rust developer | Nauč se programovací jazyk Rust pomocí praktických úkolů | robot_dreams
  • < online kurz >
  • < start 23. 4. 2024 >
  • < 20 lekcí >
  • < 10 týdnů >
Lukáš Hozda

Lukáš Hozda

IT metodolog
Braiins Systems

Rust developer

Online kurz v angličtině,
který rozšíří tvé
programátorské obzory!

O kurzu:

Během kurzu Rust Developer získáš hands-on zkušenosti s vývojem vlastní chatovací aplikace.

Ovládni softwarový vývoj s Rustem a rozvíjej své programovací dovednosti pod vedením Lukáše Hozdy. Kurz je právě pro tebe, pokud už máš zkušenosti s programováním a hledáš možnost rozšířit své obzory. Rust je technicky sofistikovaný jazyk, se kterým najdeš mnoho pracovních příležitostí, ale začít může být náročné. Jsme zde, abychom ti pomohli zvládnout začátky a naučili tě potřebné dovednosti pro práci.

Nejlepší absolventi kurzu dostanou příležitost pracovat ve společnosti Braiins jako Rust developeři.

  • Personalizovaný feedback
    od špičkových lektorů
  • Real use cases
    Praktická cvičení
  • Certifikát
    Doživotní záznamy
  • Discord komunita

Kurz je vhodný pro:

SW developery – back-end, embedded a systémové inženýry
  • Chceš umět programovat v jazyce Rust, protože proniká do tvé práce.
  • Potřebuješ pochopit koncepty a možnosti programovacího jazyka.
  • Naučíš se používat nástroje pro tvorbu a údržbu produkčního kódu.
Absolventy IT, programování nebo příbuzných oborů a samouky
  • Naučíš se přenášet své nápady do datových typů v Rustu.
  • Osvojíš si způsoby, jak uvažovat nad problémy v kódu.
  • Hands-on zkušenosti s vývojem vlastní aplikace.
Full stack developery
  • Naučíš se nízkoúrovňové koncepty a jak s nimi efektivně pracovat.
  • Zjistíš, jak použít Rust v rámci back-endového vývoje.
  • Osvojíš si unikátní vlastnosti a koncepty tohoto programovacího jazyka.

Start kurzu

23. 4. 2024

Chci se přihlásit

Lektor

Lukáš Hozda

Senior Software Engineer

  • Pracuje jako IT metodolog, pedagog a vedoucí interního vzdělávacího oddělení v Braiins Systems, kde se podílí i na hiring procesu jako technický garant pro Python a Rust, který používá už od roku 2015.
  • Pracoval na vývoji firmwaru pro bitcoin minery v Rustu.
  • Spolupracuje na výzkumu a rozhodování ohledně výběru knihoven a přístupů k řešení úkolů pomocí dané technologie.
  • Má certifikáty v oblasti Linuxu, Gitu, Pythonu, Nimu, bezpečného programování, TCP/IP a algoritmů a datových struktur.
  • Je členem finské programátorské společnosti Testausserveri a byl členem technického spolku Microlab na Pedagogické fakultě Univerzity Karlovy.

Program

    • Lekce 1
    • Úterý 23.4. 2024, 17:30 – 19:00

    Proč si vybrat Rust?

    —> Přehled Rustu a jeho klíčových funkcí
    —> Filozofie Rustu – proč zvolit Rust
    —> Konfigurace vývojového prostředí

    Praktické cvičení: Instalace a konfigurace Rustu a jeho nástrojů, zprovoznění Rustu v preferovaném IDE/editoru kódu.

    • Lekce 2
    • Čtvrtek 25. 4. 2024, 17:30 – 19:00

    Základy Rust: syntaxe a variables, kompilování programů pomocí Cargo

    —> Základní syntaxe a struktura kódu v jazyce Rust
    —> Datové typy a deklarace proměnných
    —> Standardní dokumentace knihovny
    —> Základy systému sestavování a správce balíčků Cargo
    —> Variable bindings a úvod do konceptů „ownershipu“, „borrowing“ a „lifetimes“

    Praktické cvičení: Napiš program, který čte ze standardního vstupu, upravuje text podle zadání a vypisuje jej zpět uživateli.

    • Lekce 3
    • Úterý 30. 4. 2024, 17:30 – 19:00

    Control flow & functions, modules

    —> Podmínky (if, else if a match)
    —> Smyčky (loop, while, for a iterátory)
    —> Funkce a předávání parametrů
    —> Ownership vs. funkce
    —> Moduly, modifikátory přístupu a organizace kódu v rámci projektu

 
    • Lekce 4
    • Čtvrtek 2. 5. 2024, 17:30 – 19:00

    Structs, enums & pattern matching

    —> Definování a používání struktur a n-tic (tuples)
    —> Enumerations (výčty) a pattern matching
    —> Přidružené funkce a metody
    —> Pokročilé řídící struktury: if-let, while-let, let-else

    • Lekce 5
    • Úterý 7. 5. 2024, 17:30 – 19:00

    Zpracování chyb a výsledků

    —> Pochopení přístupu Rustu k ošetřování chyb
    —> Ošetřování chyb pomocí typu Result
    —> Použití operátoru ? a typu Option
    —> Propagování chyb nahoru po call stacku
    —> Chyby vs. paniky

    Praktické cvičení: Přepiš aplikaci tak, aby chyby správně probublávaly nahoru call stackem, nahraď unwraps() a expects() operátorem try a správně reprezentuj chybovost v programu pomocí typů Option a Result.

Zobrazit celý program Skrýt program
    • Lekce 6
    • Čtvrtek 9. 5. 2024, 17:30 – 19:00

    Collections: Vectors, strings & hash maps

    —> Pole, slices
    —> Práce s vektory (dynamická pole)
    —> Manipulace s řetězci a jejich ownership, přehled mnoha typů řetězců v Rustu
    —> Použití hash map pro key-value storage

    • Lekce 7
    • Úterý 14. 5. 2024, 17:30 – 19:00

    Concurrency a multithreading

    —> Úvod do multithreadingu souběžnosti v jazyce Rust
    —> Vytváření a správa vláken
    —> Synchronizace a komunikace mezi vlákny
    —> Send a Sync traity

    Praktické cvičení: Spouštění threads pro čtení vstupů a přijímání zpráv a jejich zobrazování.

    • Lekce 8
    • Čtvrtek 16. 5. 2024, 17:30 – 19:00

    Standard I/O, File I/O a error handling

    —> Čtení ze souborů a stdio a zápis do nich
    —> Zpracování chyb a výjimek souvisejících se soubory
    —> Práce s cestami k souborům a adresářům

    • Lekce 9
    • Úterý 21. 5. 2024, 17:30 – 19:00

    Network I/O

    —> Sockety, TCP, UDP v Rustu
    —> Serializace a deserializace dat
    —> Úvod do frameworku

    Praktické cvičení: Rozděl aplikaci na samostatnou klientskou a serverovou část. Klienti posílají zprávy serveru po síti, zatímco server je přijímá a rozesílá připojeným klientům.

    • Lekce 10
    • Čtvrtek 23. 5. 2024, 17:30 – 19:00

    Generics and traits

    —> Porozumění generikům v jazyce Rust
    —> Definice generických funkcí a struktur, klauzule where
    —> Implementace traits pro opakovaně použitelný kód
    —> Supertraity a generic bounds (higher ranked trait bounds)
    —> Běžné traity v Rustu

    • Lekce 11
    • Úterý 28. 5. 2024, 17:30 – 19:00

    Rust ecosystem, community resources & tooling

    —> Zkoumání ekosystému Rust a dostupných knihoven
    —> Správa závislostí pomocí Cargo
    —> Komunitní zdroje
    —> Nástroje pro lintování a správu kódu Rustu (clippy, rustfmt)

    Praktické cvičení: Přeměn obě části aplikace pro chatování na plnohodnotné Cargo crates. Použij knihovny vhodné do produkce, které se postarají o takové aspekty, jako je protokolování. Prozkoumej další užitečné crates pro zjednodušení nebo vylepšení aplikace, jako jsou itertools, rayon, crates pro logování (tracing).

    • Lekce 12
    • Čtvrtek 30. 5. 2024, 17:30 – 19:00

    Lifetimes a references

    —> Porozumění lifetimes a jejich úloze v systému Rust
    —> Anotace lifetime a scope – stanovení rozsahu
    —> Borrowing a reference v jazyce Rust
    —> Chytré ukazatele

    • Lekce 13
    • Úterý 4. 6. 2024, 17:30 – 19:00

    Error handling: custom error types

    —> Vytváření vlastních chybových typů v jazyce Rust
    —> Implementace traitu Error
    —> Osvědčené postupy pro zpracování chyb
    —> Knihovny pro práci s chybami – anyhow, thiserror

    Praktické cvičení: Zaveď do aplikace správného zpracování chyb a hlášení chyb. Server by měl přesně a silně typovaným způsobem hlásit klientovi, proč přesně něco nefunguje (chyby jako neplatné pověření, neplatný příjemce apod.).

    • Lekce 14
    • Čtvrtek 6. 6. 2024, 17:30 – 19:00

    Async programming s futures a async/await

    —> Úvod do asynchronního programování v jazyce Rust
    —> Futures a syntaxe async/await, streamy
    —> Práce s asynchronními knihovnami – futures, async_trait

    • Lekce 15
    • Úterý 11. 6. 2024, 17:30 – 19:00

    Async programming: Tokio

    —> Základní součásti Tokio: tasks, reactors. executors
    —> Knihovna IO
    —> Tokio select! makro
    —> Asynchronní databázové knihovny

    Praktické cvičení: Přepiš chatovacího klienta i chatovací server do asynchronního paradigmatu s použitím frameworku Tokio. Začni ukládat data o chatu a uživatelích do databáze.

    • Lekce 16
    • Čtvrtek 13. 6. 2024, 17:30 – 19:00

    Testing a documentation

    —> Typy databází
    —> Psaní testů v jazyce Rust
    —> Použití built-in testing frameworku
    —> Dokumentace kódu pomocí Rustdoc
    —> Doc-tests
    —> Existující řešení pro code-coverage

    Praktické cvičení: Přidej testy (podle specifikace) pro kód sdílené knihovny a použij komentáře k dokumentaci knihovny.

    • Lekce 17
    • Úterý 18. 6. 2024, 17:30 – 19:00

    Rust a web development

    —> Přehled ekosystému pro vývoj webových aplikací Rust
    —> Práce s webovými frameworky (např. Rocket, Actix, Axum, Warp)
    —> Rust pro vývoj back-endu

    Praktické cvičení: Implementuj webový front-end pro správu serverové komponenty chatovací aplikace z prohlížeče.

    • Lekce 18
    • Čtvrtek 20. 6. 2024, 17:30 – 19:00

    Metriky v Rustu

    —> Použití metrik Prometheus v Rustu
    —> Instrumentace a měření dat
    —> Zobrazování metrik pomocí nástroje Grafana

    Praktické cvičení: Implementuj metriky do serverové části aplikace, nastav Grafanu a ověř funkčnost metrik vykreslením grafů v Grafaně.

    • Lekce 19
    • Úterý 25. 6. 2024, 17:30 – 19:00

    Miscellaneous

    —> Makra a metaprogramování v Rustu
    —> Propojení Rustu s jazykem C a dalšími jazyky
    —> Využití Rustu pro vývoj front-endů
    —> Práce s Nightly Rustem
    —> Debugging

    Praktické cvičení: Studenti dostanou závěrečnou specifickou zpětnou vazbu pro každého studenta o tom, jak zlepšit svůj projekt, aby mohl postoupit do finální podoby v rámci kurzu.

    • Lekce 20
    • Čtvrtek 27. 6. 2024, 17:30 – 19:00

    Project review & Rust v Braiins

    —> Obecná zpětná vazba a revize projektů
    —> Co dělá Braiins a jakou roli zde hraje Rust

Získat více informací

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

Kötelezően kitöltendő mező
ZÍSKAT VÍCE INFORMACÍ