Course Outline
Introduction
- What is Rust?
- Rust vs other programming languages
- Overview of Rust features and architecture
Understanding Rust
- The lifecycle of a Rust program
- How Rust works 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 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 Panic
- Handling errors with Result and Option types
- Unwinding vs 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 using enums
- Pattern matching in Rust
Interfacing with C and Low-Level Code
- Interfacing Rust with C and C++ code
- Using FFI (Foreign Function Interface)
- Working with raw pointers and unsafe code
Concurrency and Synchronization
- Concurrency models in systems programming
- Mutex, RwLock, and Condvar for synchronization
- Channels and message passing for communication
Debugging and Troubleshooting Rust Programs
- Tools and techniques for debugging Rust programs
- Profiling and performance analysis
- Troubleshooting common issues in systems programming
Summary and Next Steps
Requirements
- Basic understanding of programming concepts
- Familiarity with at least one programming language (such as C or C++)
Audience
- Developers
Testimonials (5)
Pushing changes on an ongoing basis, when on the 3rd day I started to get more lost than before and it was harder to spot the error quickly, I was quickly able to check out the latest changes and stay up to date with the material
Paulina
Course - Advanced Java Security
Machine Translated
The trainer's knowledge is very extensive, his commitment to conversation and transfer of knowledge is enormous. Good contact with participants. Very well prepared materials, many slides, descriptions of exercises, great preparation for the training was visible. Despite my comments, I still rate the training very well. My comments are only an addition to the training, which was of a very good standard. In my opinion, with participants from area C# and the corrections introduced, the training may be at an ideal level ;-)
Sławek - Sonova Warsaw Service Center Sp z o o
Machine Translated
I liked the interactive examples we worked on, the trainer was extremely knowledgeable in almost every subject we had questions about, and gave excellent advise for our real-world use-cases relating to some of the material in the training.
Tracy - GenesysGo
Course - Rust Advanced
A large amount of practical knowledge shown in real-life examples.
Kamil - Streamsoft Kraków
Course - Java Advanced
Machine Translated
The teacher addressed many relevant topics for clean coding with practical examples.