Course Outline
Introduction
* What is Rust?
* Comparing Rust with other programming languages
* Overview of Rust features and architecture
Understanding Rust
* The lifecycle of a Rust program
* How Rust operates at a systems level
* Memory safety and ownership in Rust
Getting Started
* Setting up the development environment
* Installing Rust as a programming toolchain
* Configuring the Rust environment
* Exploring the Cargo package manager
Basic Syntax and Concepts
* Variables and data types in Rust
* Control flow and loops
* Functions and modules
* Ownership and borrowing in Rust
Error Handling and Panics
* Handling errors using Result and Option types
* Distinguishing between unwinding and aborting with panic!
* Custom error types and error handling strategies
Memory Management in Rust
* Stack vs. heap memory allocation
* Pointers and references in Rust
* Managing memory with Box and unsafe blocks
Structs and Enums in Systems Programming
* Defining and working with structs
* Creating and utilizing enums
* Pattern matching in Rust
Asynchronous Programming with Async/Await
* Introduction to asynchronous programming in Rust
* Utilizing async/await syntax
* Composing futures and working with async libraries
* Exploring the async ecosystem and libraries
Traits and Generics
* Advanced trait usage and associated types
* Implementing generic functions, structs, and enums
* Bounds and trait objects
* Exploring trait coherence and orphan rules
Advanced Error Handling
* Creating custom error types
* Advanced error handling techniques: try!, ? operator, custom error chains
* Error handling strategies and patterns
Macros
* Procedural macros: attribute and function-like macros
* Declarative macros: macro_rules! and match-like syntax
* Advanced macro usage and metaprogramming
Performance Optimization
* Profiling and benchmarking Rust code
* Identifying performance bottlenecks
* Optimization techniques: data structures, algorithms, and compiler flags
* Writing high-performance Rust code
Unsafe Rust
* Understanding unsafe blocks and unsafe functions
* Working with raw pointers and mutable aliasing
* Creating safe abstractions around unsafe code
Web Development with Rust
* Overview of web development in Rust
* Exploring Rust web frameworks: Rocket, Actix, Warp, etc.
* Interacting with databases
* Deployment options and considerations
Testimonials (2)
Very good topic structure, perfect presentation, very high level of trainer's knowlwdge. Flawless infrastructure.
Tibor Pozsgai
Course - Rust Advanced
Solid introduction to rust with advanced elements like macros. Practical code exercises, a lot of side comments, free discussion and consultations.