Introduction to programming with Rust
This course is for experienced programmers, covering the fundamentals of the Rust language, its ecosystem (Crates, Cargo), advanced topics like the Type System and Taming the Borrow Checker (ownership, lifetimes), and specialized applications such as Embedded Rust and Rust for Linux kernel development.
Description
This course is designed to provide experienced programmers with a broad, practical foundation in the Rust language, its standard library, and its ecosystem. The curriculum begins by exploring why Rust is a reliable and productive language through concepts like the borrow checker, memory safety, and the built-in ecosystem tools. It then progresses through the fundamentals of Rust programming, covers essential topics like the Rust Project, Crates, Cargo, and idiomatic practices, and delves into the advanced aspects of the language, specifically focusing on the Rust Type System, including functional programming, generics, and traits. A significant portion of the course is dedicated to "Taming the Borrow Checker," which covers ownership, borrowing, lifetimes, threading, and safe use of the "unsafe" keyword, concluding with specialized topics on Embedded Rust and using Rust for Linux kernel development.
Attributes
| Level: | Intermediate |
|---|---|
| Class type: | General |
| Time commitment: | 20h |
Topics Covered
- Rust language fundamentals: Basics like syntax, data types, and control flow.
- Rust's type system: Focus on generics, traits, and functional programming aspects.
- Borrow checker and memory safety: Core concepts of Rust's unique memory management.
- Rust ecosystem and libraries: Introduction to Cargo, crates.io, and common libraries.
- Embedded Rust and Rust for Linux: Application of Rust in embedded and kernel development.
Learning Outcomes
- Write basic Rust programs: Gaining practical skills in Rust coding.
- Understand Rust's memory management: Grasping the borrow checker and preventing common memory errors.
- Use Cargo to manage Rust projects: Learning to build, test, and manage dependencies.
- Apply Rust in systems programming: Developing foundational knowledge for embedded or kernel work.
- Read and navigate Rust documentation and resources: Becoming self-sufficient in learning more about Rust.