Course Outline
Introduction
- Defining the Rust language
- Comparing Rust with other programming languages
- Overview of key Rust capabilities and structure
Grasping Rust Concepts
- The execution lifecycle of a Rust application
- The role of Rust alongside other languages
- Rust’s strategies for ensuring memory safety and managing concurrency
Initial Setup
- Preparing the Development Environment
- Installing the Rust toolchain
- Adjusting Rust environment settings
- Utilizing the Cargo package manager
Core Syntax and Principles
- Variables and primitive data types
- Control structures and loop mechanisms
- Defining functions and organizing modules
- The concepts of ownership and borrowing in Rust
Structs, Enums, and Pattern Matching
- Creating and applying structs
- Defining and matching enums
- Implementing pattern matching logic in Rust
Managing Errors
- Handling errors via Result and Option types
- Managing panics using panic! and unwrap()
- Designing custom error structures
Module and Package Structure
- Structuring code within Rust projects
- Developing and utilizing modules
- Compiling and releasing Rust packages via Cargo
Testing and Documentation
- Composing test cases in Rust
- Leveraging the integrated testing framework
- Annotating Rust code with comments and documentation strings
Concurrency Fundamentals
- Overview of concurrent programming in Rust
- Thread creation and management
- Techniques for synchronization and message transmission
Combining Rust with Legacy Code
- Establishing interfaces between Rust and other languages
- Invoking Rust functions from C or C++ environments
- Making Rust APIs accessible to external languages
Standard Patterns and Best Practices
- Examining prevalent Rust coding styles
- Adhering to Rust community standards
- Employing widely adopted libraries and frameworks
Problem Solving
- Detecting and fixing typical issues in Rust applications
Recap and Future Directions
Requirements
- Foundational knowledge of core programming principles
- Practical experience with at least one programming language (ideally C or C++)
Target Participants
- Software Engineers
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.