A bootcamp for Rust developers

  • Home
  • A bootcamp for Rust developers
Shape Image One

A bootcamp for Rust developers

About Course

Who is this bootcamp for? Experienced developers looking to transition to Rust.Learn the language of the future. Your time is valuable (literally, $148,688/year). Learn Rust FAST with the bootcamp instead of digging through low quality resources. Students/Graduates looking for jobs. Learning Rust is a great addition to your resume. Stand out among other candidates. Become a competent programmer. Gain access to a community that can help you land your first job. И… You! Rust enthusiast. Rust is an innovative language that will expand your thinking! Cutting-edge technologies are created in Rust.

You’ll learn how to customize your development environment, configure your development environment (IDE), and install the necessary plugins. Then you will create your first project in Rust!

You will learn:

How to customize your development environment
Configuring your IDE and plugins
Creating Rust packages with Cargo
Variables and data types in Rust
Constant and static variables
Functions and runtime management

Understanding memory management is critical when learning Rust! In this section, you’ll learn about memory management from the very beginning!

You will learn:

A Rust-based computer science masterclass
How the ownership mechanism works
How the borrowing mechanism works
What slices are
String types (str, &str and String)

Rust does not use classes or objects! Instead, Rust uses structures (Structs) and enums (Enums) to create custom data types. In this section, you’ll learn how to create your own custom types!

You will learn:

How to create structures and enums
How to use implementation blocks
Pattern matching
Option and Result enumerations
Vectors

How to Structure Your Rust Projects

In this section, I’ll explain how modules work in an understandable way. I’ll also cover structuring larger projects and publishing your work on Crates.io.

You will learn:

An overview of project structure
The module system
External dependencies
Conditional compilation
How to structure large projects
Publishing your projects in Rust

How to Test and Document Your Code

Tests are a critical part of writing reliable code. In this section, you’ll learn how to write and structure unit and integration tests in Rust. We’ll also cover documentation issues.

You will learn:

How to write unit tests
How to write integration tests
How to structure your tests
Comments on documentation

Polymorphism with Generics and Traits

Rust does not support classical inheritance! Instead, polymorphism is achieved through generics (generalizations) and traits (traits). In this section, you will learn how both of these mechanisms work.

You will learn:

How to define generics
The Trait System
Trait boundaries and trait objects
Supertraits
Static dispatching vs. dynamic dispatching
How to display traits
Traits in the standard library

Advanced Memory Management

Memory management doesn’t end with possession and borrowing mechanisms! In this section, you’ll learn about lifetimes! We’ll also take a look at various smart pointers in Rust.

You will learn about:

Concrete Lifetimes (Concrete Lifetimes)
Generic Lifetimes Annotations (Generic Lifetimes Annotations)
Lifetimes in functions and structures
Smart pointers and why they are useful
Implicit Deref Coercion (Implicit Deref Coercion)

 

Understanding Error Handling in Rust

Understanding error handling is critical when designing your Rust applications. In this section, we’ll take a look at how error handling works in Rust.

You will learn:

How to generate uncorrectable errors
How to return correctable errors
How to propagate errors
Result and Option enumerations
How to handle multiple error types
How to use anyhow and thiserror

Functional Features in Rust

One of the most powerful features of Rust is its functional features. In this section, we’ll cover closures, function pointers, iterators, and more!

You will learn:

Closures and function pointers
Iterator pattern in Rust
Implementing the iterator pattern
How to iterate over collections
Combinators and how to use them

Parallelism and async/.await

This is probably the MOST IMPORTANT section. Understanding parallelism is critical, especially when using Rust for web projects.

You will learn:

The basic concepts of parallelism
Creating threads
Messaging using channels
Sharing state using Mutex
The async/.await model
How Futures work (future results)
What is asynchronous execution
What is Tokio and how it is used
What are Tokio tasks
Executing CPU-blocking code
Data Streams

The Powerful Macro System in Rust

Macros are an extremely powerful way to extend the syntax of a language. In this section, you’ll learn about the macro system in Rust from the very beginning!

The compilation process
What are macros
How to create declarative macros
How to create procedural macros
Function-like procedural macros
Attribute-like procedural macros
Custom Derive-based procedural macros (Custom Derive)

Unsafe Rust and FFI (Foreign Function Interface)

One of the great advantages of Rust is its ability to interact with other languages through the Foreign Function Interface. In this section, you will learn about insecure Rust and FFI!

You will learn about:

Unsafe Rust and when to use it
How to dereference raw pointers
What are unsafe functions
What unsafe traits are
How to modify static variables
How to write built-in assembly commands in Rust
How to call C code from Rust
How to call Rust code from C

Show More

What Will You Learn?

  • How to generate uncorrectable errors
  • How to return correctable errors
  • How to propagate errors
  • Implementing the iterator pattern
  • How to iterate over collections
  • Combinators and how to use them
  • The basic concepts of parallelism
  • Creating threads
  • Messaging using channels
  • Sharing state using Mutex
  • The async/.await model

Course Content

All lessons

  • 001. Don’t skip this video!
    07:20
  • 002. How to use this Bootcamp effectively
    05:43
  • 003. Hello World
    03:13
  • 004. Variables
    03:55
  • 005. Data Types
    03:34
  • 006. Constants & Statics
    02:44
  • 007. Functions
    03:26
  • 008. Control Flow
    03:21
  • 009. Comments
    00:50
  • 010. Stack, Heap, and Static Memory
    07:17
  • 011. Memory Management Strategies
    03:47
  • 012. C++ RAII vs Rust OBRM – Part 1
    10:52
  • 013. C++ RAII vs Rust OBRM – Part 2
    05:18
  • 014. Ownership
    06:32
  • 015. Ownership Continued
    07:18
  • 016. Borrowing
    10:29
  • 017. Slices
    09:02
  • 018. BONUS Masterclass Strings in Rust. PART 1
    10:09
  • 019. BONUS Masterclass Strings in Rust. PART 2
    10:39
  • 020. Structs
    03:30
  • 021. Implementation Blocks
    07:56
  • 022. Tuple Structs
    02:06
  • 023. Enums
    06:18
  • 024. Matching
    08:42
  • 025. Option
    05:53
  • 026. Result
    04:47
  • 027. Vectors
    07:21
  • 028. Project Structure Overview
    05:19
  • 029. Modules
    14:00
  • 030. Modules Continued
    08:18
  • 031. External Dependencies
    03:15
  • 032. Publishing Your Package
    06:10
  • 033. Cargo Features
    07:04
  • 034. Cargo Workspaces
    05:39
  • 035. Unit Tests
    12:24
  • 036. Integration Tests
    03:49
  • 037. Documentation
    02:26
  • 038. BONUS Benchmark Testing
    04:32
  • 039. Generics
    11:42
  • 040. Traits
    05:47
  • 041. Trait Bounds
    05:18
  • 042. Supertraits
    01:39
  • 043. Trait Objects
    06:47
  • 044. Deriving Traits
    02:45
  • 045. The Orphan Rule
    02:58
  • 046. Concrete Lifetimes
    05:55
  • 047. Generic Lifetimes
    09:35
  • 048. Structs Lifetime Elision
    08:05
  • 049. Box Smart Pointer
    05:28
  • 050. Rc Smart Pointer
    03:39
  • 051. RefCell Smart Pointer
    04:57
  • 052. Deref Coercion
    06:14
  • 053. Unrecoverable Errors
    02:02
  • 054. Recoverable Errors
    04:08
  • 055. Propagating Errors
    04:08
  • 056. Result and Option
    04:49
  • 057. Multiple Error Types
    05:41
  • 058. Overview of Error Handling
    04:46
  • 059. Basic Error Handling
    11:49
  • 060. Custom Errors 1
    06:22
  • 061. Custom Errors 2
    08:42
  • 062. Custom Errors 3
    06:59
  • 063. thiserror & anyhow
    05:13
  • 064._BONUS_error-stack
    23:20
  • 065. Closures
    12:21
  • 066. Closures Continued
    05:56
  • 067. Function Pointers
    04:42
  • 068. Iterator Pattern
    06:50
  • 069. Iterator Pattern Continued
    05:19
  • 070. Iterating Over Collections
    02:09
  • 071. Combinators
    11:06
  • 072. Intro to Concurrency
    08:18
  • 073. Creating Threads
    03:28
  • 074. Moving Values Into Threads
    01:01
  • 075. Message Passing Between Threads
    04:49
  • 076. Sharing State Between Threads
    02:48
  • 077. Sharing State Between Threads Continued
    03:33
  • 078. Send & Sync Traits
    02:07
  • 079. async.await Basics
    08:37
  • 080. Tokio Tasks
    04:46
  • 081. CPU Intensive Code
    02:11
  • 082. Streams
    02:09
  • 083. Intro to Macros
    05:08
  • 084. Declarative Macros
    03:00
  • 085. Declarative Macros Continued
    06:38
  • 086. Procedural Macros
    01:49
  • 087. Procedural Macros – Function Like
    04:51
  • 088. Procedural Macros – Custom Derive
    07:18
  • 089. Procedural Macros – Attribute Like
    07:09
  • 090. Procedural Macros – Attribute Continued
    07:10
  • 091. Unsafe Basics
    01:46
  • 092. Dereferencing a Raw Pointer
    02:48
  • 093. Calling an Unsafe Function
    01:37
  • 094. Implementing an Unsafe Trait
    01:09
  • 095. Mutable Static Variables
    01:29
  • 096. Inline Assembly
    01:09
  • 097. FFI C from Rust
    03:30
  • 098. FFI Rust from C
    01:45
  • 099. BONUS FFI Rust from Python
    07:35
  • 100. What are microservices
    06:19
  • 101. Why Rust is great for microservices
    02:40
  • 102. Communication with gRPC
    05:01
  • 103. Containerization with Docker
    08:02
  • 104. CICD with GitHub Actions
    02:18
  • 105. Cloud Providers
    03:21

Student Ratings & Reviews

No Review Yet
No Review Yet