Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Rust: Develop Programming Skills with Rust
Rating: 3.2 out of 5(34 ratings)
175 students

Rust: Develop Programming Skills with Rust

Build your programming foundation in a safe and fast Systems Programming Language Rust
Last updated 3/2019
English

What you'll learn

  • Write effective and memory-safe code using Rust
  • Learn how to organize your application in crates and modules
  • Understand object-oriented programming, immutability, and traits in Rust
  • Write highly scalable network programming
  • Build dependency management with Cargo
  • Test HTTP and Web sockets in Rust
  • Write a non-asynchronous echo server over TCP
  • Modify an existing Rust HTTP server and add SSL to it
  • Master asynchronous programming support in Rust
  • Learn how to use external packages in a Rust project

Course content

3 sections79 lectures5h 52m total length
  • The Course Overview1:55

    This video will give you an overview about the course.

  • Introduction to the Rust Language1:27

    In this video, we will talk about what Rust is and what its significance is.

    • Learn about Rusts history

    • Understand what is Rust

  • Setting Up Rust on Your PC0:50

    This video will guide you through the installation of Rust on your computer.

    • Open the official download page for Rust

    • Run the “rustup” installation tool in your terminal

    • Check if Rust is installed successfully

  • Managing Dependencies with Cargo2:21

    This video introduces Rusts package manager Cargo.

    • Create a new project with Cargo

    • Inspect the Cargo.toml file in the project folder

    • Find external crates from crates.io website

  • Writing Your First Rust Program: Hello, Rust!2:41

    In this video, we will write our first program in Rust.

    • Use Cargo to create a new project

    • Open the main.rs file in your text editor

    • Change the first line of code to print out "Hello, Rust"

  • Immutability and Variables2:25

    This video explains what is immutability and variables in Rust.

    • Create a new project with Cargo

    • Make a new variable that is immutable

    • Make another variable that will be mutable

  • Data Types and Operators2:55

    In this video, we will see which data types and operators we have in Rust.

    • Create a new project with Cargo

    • Create a couple of variables of different types

    • Test logical and mathematical operators

  • Conditionals and Loops7:07

    In this video, we will learn about the “if else” expression, and also what kinds of loops are there in Rust.

    • Create a new project with Cargo

    • Create a test program that will test if a variable meets a condition or not

    • Create samples to test the for loop and while loop

  • The Match Operator2:29

    This video explains Rusts match operator.

    • Create a new project with Cargo

    • Write a simple program that tests the use case of the match operator

    • Run the example in the terminal with different parameters

  • Strings, Arrays, and Vectors8:12

    In this video, we will learn about strings, vectors and arrays in Rust.

    • Basic operations and syntax for arrays

    • Declare a new string and the difference between strings and string literals

    • Create vectors with the new() method and with the vec macro

  • Using Ownership and Scopes4:13

    This video aims at explaining the basic principles of Rusts ownership system.

    • Create a new project with Cargo

    • Isolate a part of the code into a separate scope

    • Understand the importance of borrowing and references

  • Writing Functions and Modules5:52

    In this video, we will learn how to write functions and how to separate them into modules.

    • Create a new project with Cargo

    • Write a multiplication function and multiplication_print_result function that will call the first one inside it

    • Separate a function into a module called some_module that is placed inside the some_module.rs Rust file in the source folder

  • Structures and Enums in Rust7:28

    This video will teach you about structured data and enumeration types.

    • Create a new project with Cargo

    • Create a new structure called User with a method called print_user()

    • Make an enum called user type that will be used inside the previous structure

  • Creating Your Own Crates4:14

    This video aims at making a new crate and downloading external crates in your app.

    • Create a new project and a new crate inside that project with Cargo

    • Use the structure from the previous video inside the crate and include it in the main file

    • Download the regex crate from crates.io

  • Testing Your Application with Cargo3:06

    In this video, we will use Cargo to test our functions.

    • Open the previous project

    • Write a test that will create a new User

    • Run the tests in the terminal with Cargo

  • Understanding Generic Data Types6:16

    In this video, we will explore the idea behind generic data types.

    • Use the crate from the previous section

    • Make a new structure called UserCollection

    • Add a generic type T for the size field in the structure

  • Introducing Lifetimes5:59

    This video aims at explaining the concept of lifetimes in Rust.

    • Create a function with the lifetime of 'a'

    • Create a structure and its method with a specified lifetime

    • Understand the static lifetime

  • Using Traits in Your Rust Program5:32

    In this video, we will learn about creating and using traits in our application.

    • Create a trait called StrikeTrait

    • Implement the traits for two different structure methods

    • Test the methods in the main program

  • Concurrency 1015:29

    This video will teach you some basic concurrency principles such as multithreading.

    • Understand what data races, race conditions and threads are

    • Create two new threads and join them back to the main thread

    • Use thread::sleep() to tell the main thread to wait on the child threads

  • Minesweeper – Program Workflow2:23

    In this video, we will overview what we’ll need to make in this application.

    • Describe the program workflow

    • Define which modules and crates will we need in our application

    • Create a new project with Cargo

  • Implementing the Controls and Interactions13:33

    In this video, we will start implementing all the structures and methods in our app.

    • Create a separate module called structs that will contain all the structures

    • Implement the logic for the structures

    • Build and compile the project to check whether there’s any error

  • Testing the Application10:16

    In this video, we will write our main logic inside a loop and we will test if our app works.

    • Write all the remaining methods and functions for our structs

    • Write the main logic of the app inside the main function

    • Test and run it with Cargo

  • Troubleshooting Errors2:12

    This video will recap what we’ve made and explore further improvements to our program.

    • Explore different approaches to solve the same problem more efficiently

    • Understand the difference between a console application and a GUI application

    • Suggest game engines like Piston for making the application look better

  • Test Your Knowledge

Requirements

  • No prior knowledge of Rust is required.

Description

Rust is an empowering language that provides a rare combination of safety, speed, and zero-cost abstractions. It is applicable to areas such as embedded programming, network programming, system programming, and web development. If you're a developer who wishes to build a strong programming foundation with this simple yet powerful programming language Rust, then this learning path is for you.

This course is designed to teach you the fundamentals of Rust and use them to build powerful Rust applications and networking software. You will start by learning concepts such as enums, functions, loops, arrays, data types, basic data structures, and working with strings. You will then learn how to write object-oriented code, work with generics, conduct pattern matching, and build macros. Next, to enhance your programming skills, you will build some concurrent, fast, and robust applications in Rust. Finally, you will learn high-performance networking concepts in Rust to build effective networking software.

Contents and Overview

This training program includes 3 complete courses, carefully chosen to give you the most comprehensive training possible.

The first course, RUST: The Easy Way, covers the fundamentals of the Rust programming language, its core concepts, and best coding practices. It starts with the basics and goes on to explain how to get started by developing a simple Rust program. You will also learn immutability, conditionals, loops, arrays, and strings to enhance your programming skills. Moving ahead, you will get a deeper understanding of Rust, by acquiring knowledge of structures, enums, and functions. Furthermore, you will learn to test your programs using Cargo. Additionally, you will get an experience of generic data types, the idea behind lifetimes, and concurrency in Rust.

In the second course, Introduction to Rust Programming, you will learn to build concurrent, fast, and robust applications. You will begin by learning the essentials of the language, including high-performance networking. You will then get a detailed explanation of the fundamentals of Rust programming. You will also learn how to write object-oriented code, work with generics, conduct pattern matching, and build macros.

The third course, Network Programming with Rust, will get you started with building networking software in Rust by taking you through all the essential concepts.

By the end of this course, you will be able to build your own robust applications and effective networking software with Rust.

Meet Your Expert(s):

We have the best work of the following esteemed author(s) to ensure that your learning journey is smooth:

  • Adnan Kičin is a software developer based in Sarajevo, Bosnia and Herzegovina. He is an active member of the programming community in Bosnia, and he has been organizing and hosting the Open Web Sarajevo Meetup for over a year now. He also co-hosted Sarajevo's first Hacktoberfest last year and organized the first Quora Meetup in Bosnia. Adnan has also been programming in C and C++, and to prevent himself from getting rusty, he started using Rust.

  • Syed Omar Faruk Towaha has degrees in Physics and Computer Science and Engineering from Shahjalal University of Science and Technology. He is currently working as the Chief Technology Officer at an IT company in his city while working remotely with a Chinese company as a hardware designer. He has a number of publications from different publications. His recent publications include Learning C for Arduino, JavaScript Projects for Kids, Fundamentals of Ruby, Easy Circuits for Kids, How you Should Design Algorithms, and so on. Previously Syed worked a number of companies as either software engineer or technical advisor. He volunteers Mozilla as a Reps. Syed has proved his experience in various fields such as Mobile Application Developments with Java, Kotlin, Objective C, Swift, AngularJS, Ionic, and so on. He has excelled in Software Development with C#, .NET, Java, C++, and Python. He designed a number of ICs’ and EDA’s layouts over last 4 years.

  • Abhishek Chanda studied computer science at IIEST Shibpur in India and electrical engineering at Rutgers University. He has been working on networking and distributed systems since 2008. Over his career, he has worked with large companies (like Microsoft and Dell) and small startups (Cloudscaling, DataSine) in India, US, and the UK. He is enthusiastic about open source software and has contributed to a number of projects like OpenStack, Nomad etc. He contributes to a number of open source projects. He came across Rust in 2015 and found it to be a perfect fit for writing highly performant systems.

Who this course is for:

  • This course is for developers who wish to write their applications in Rust.