Highlights
- Use Cargo to create and run a Rust project
- Explore the Rust features
- Use Rust's built-in Standard Library
- Explore Concurrency and threads
- Installing Rust and tools (Cargo, Format, clippy and rustdoc)
- Understand Rust safety features
- Create Reusable Objects
- Learn to develop efficient, safe application
- Calling out to Python Pandas
Course Details
Rust Introduction
- What is Rust?
- Why use Rust?
- Program safety using Rust
Getting Started
- Development options
- Installation and rustup
- First Console Application Use of tools for project creation, formatting and documentation (including Cargo,
- rustfmt, clippy and rustdoc)
- Use of Modules
Types and Variables
- Primitive types
- Variables, constants and Immutability
- Strings
- Arrays
Functions
- Defining functions
Ownership
- Introduction to Ownership
- Memory (stack and heap)
- References and borrowing
- Slices Memory
- Safety Lifetime
User define types
- Structs
- Enums and matching
- Defining Methods
- Use of Option and Result
Flow of Control
- Introduction to flow of control
- If and match
- Loops
- For
- While
Standard IO
- Standard library IO
- Stdin/stdout
- Reading writing to File
Overview of Standard Library including
- Collections (Tuples, Vec, HashSet, HashMap)
Error Handling - Panics
- Introduction to Error Handling
- Panics
- Recoverable and non-recoverable errors
Packages Crates and Modules
- Creating Crates and Modules
- Partitioning Applications
- Controlling Access
- Private and Public
Types revisited (Generics and Traits)
- Types system
- Use of Generics
- Generic functions
- Generic Types
- Traits
- Implementing Traits
Iterators and Closures
- Iterators and Closures
- Using Closures
Introduction to Concurrency
- Creating Threads
- Message passing between threads
- Shared state
- Thread-safety
Miscellaneous
- Smart pointers and Box
Rust Performance and Security
Taking advantage of Rust in-built features
Libraries
Overview of available libraries
Integration with Python
- Calling Python from Rust
- Using DataFrames
- Using Python Pandas Library
Testing
- Overview of creating Tests
- Mocking
Who should attend
This course is for developers making the transition from another imperative programming language to this new language with built in safety features.
Feedback
4.8 out of 5 average
"The instructor was fantastic. Super knowledgable, a real rust expert. He was also good at explaining things - really enjoyed his diagrams / e-ink display creations." John S, Senior Developer, Rust Fundamentals, May 2022
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022