Rust Essential Training
6h 48mBeginner2021-12-02
Authors

Barron Stone
Electrical Engineer
Course details
If you know even a little bit about programming languages, you know there are a plethora of options to choose from. If your priority is a language focused on reliability, speed, memory, safety, and parallelism, then Rust may be the one for you. In this course, instructor Barron Stone covers the key components of Rust, starting with basic programming concepts including variables, data types, functions, and control loops. He then moves on to some of the core concepts that are unique to Rust, including ownership, borrowing references, and crates. While Rust is great for low-level systems programming, it’s also being used for web apps, network services, and embedded programs. As Barron shows, the features of Rust, along with great tools, documentation, and a welcoming community, have made Rust a language that developers love.
Skills covered
RustEssential TrainingProgramming LanguagesOpen SourceSoftware Development
Concepts
0. Introduction
- 01 - Learn Rust programming
- 02 - What you should know
- 03 - What is Rust
- 04 - Rust versions
1. Write Your First Program
- 05 - Installing Rust on Windows
- 06 - Installing Rust on Linux and macOS
- 07 - Anatomy of a Rust program
- 08 - Adding comments
- 09 - Building programs using Cargo
2. Primitive Data Types
- 10 - Declaring variables
- 11 - Integer data types
- 12 - Floating-point data types
- 13 - Arithmetic operations
- 14 - Formatting print statements
- 15 - Bitwise operations
- 16 - Boolean data type and operations
- 17 - Comparison operations
- 18 - Char data types
- 19 - Challenge - Find the average
- 20 - Solution - Find the average
3. Compound Data Types
- 21 - Arrays
- 22 - Multidimensional arrays
- 23 - Tuples
4. Functions
- 24 - Function parameters
- 25 - Statements vs. expressions
- 26 - Function return values
- 27 - Challenge - Convert temperature
- 28 - Solution - Convert temperature
5. Program Flow Control
- 29 - Conditional execution
- 30 - Multiple conditions
- 31 - Conditional assignment
- 32 - Loops
- 33 - While loops
- 34 - For loops
- 35 - Nested loops
- 36 - Challenge - Max, min, mean
- 37 - Solution - Max, min, mean
6. Ownership
- 38 - Variable scope
- 39 - Shadowing variables
- 40 - Stack and heap memory
- 41 - String data type
- 42 - Ownership
- 43 - Moving, cloning, and copying data
- 44 - Transferring ownership
7. References
- 45 - Borrowing references
- 46 - Mutable references
- 47 - Dangling references
- 48 - Slices
- 49 - Slices as function parameters
- 50 - Challenge - Trim spaces
- 51 - Solution - Trim spaces
8. Modules
- 52 - Rust Standard Library and prelude
- 53 - Standard input
- 54 - Parse strings
- 55 - Crates
- 56 - Challenge - Higher or lower
- 57 - Solution - Higher or lower
9. Input and Output
- 58 - Command-line arguments
- 59 - Reading from files
- 60 - Writing to files
- 61 - Challenge - Check the roster
- 62 - Solution - Check the roster
10. Structs
- 63 - Defining structs
- 64 - Struct update syntax
- 65 - Struct methods
- 66 - Associated functions
- 67 - Tuple structs
- 68 - Challenge - Represent shapes
- 69 - Solution - Represent shapes
11. Generic Types
- 70 - Generic struct definitions
- 71 - Generic method definitions
- 72 - Generic function definitions
- 73 - Box data type
- 74 - Challenge - Sum boxes
- 75 - Solution - Sum boxes
12. Traits
- 76 - Implement traits
- 77 - Default trait implementation
- 78 - Derive traits
- 79 - Trait bounds
- 80 - Multiple trait bounds
- 81 - Return types with implemented traits
- 82 - Challenge - Implement the display trait
- 83 - Solution - Implement the display trait
13. Lifetimes
- 84 - The borrow checker
- 85 - Lifetime annotation syntax
- 86 - Multiple lifetime annotations
- 87 - Lifetime elision rules
- 88 - Struct lifetime annotations
- 89 - Static lifetime
14. Enums
- 90 - Define enums
- 91 - Match operator
- 92 - Match with default placeholder
- 93 - Enum methods
- 94 - Option T enum
- 95 - Matching Option T
- 96 - If-let syntax
- 97 - Challenge - Represent a location
- 98 - Solution - Represent a location
15. Error Handling
- 99 - Unrecoverable errors
- 100 - Result T, E enum
- 101 - Matching Result T, E to recover from errors
- 102 - Propagating errors
- 103 - Challenge - Handle errors
- 104 - Solution - Handle errors
16. Collections
- 105 - Vectors
- 106 - HashMaps
- 107 - Challenge - Count words
- 108 - Solution - Count words
Conclusion
- 109 - Where to go next