Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Master The Rust Programming Language : Beginner To Advanced

Làm Chủ Ngôn Ngữ Lập Trình Rust: Từ Cơ Bản Đến Nâng Cao

Làm Chủ Ngôn Ngữ Lập Trình Rust: Từ Cơ Bản Đến Nâng Cao

Học lập trình Rust (Phiên bản mới nhất) từng bước với bài tập thực hành, từ cơ bản đến nâng cao.

4.4
(264 đánh giá)
3,579 học viên
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
28.5 giờ video
201 bài giảng
1 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Các khái niệm cơ bản của ngôn ngữ lập trình Rust
Quy tắc sở hữu (Ownership) và mượn (Borrowing)
Tham chiếu (References)
String và String slice
Trình quản lý gói và hệ thống build của Rust (Cargo)
Cấu trúc (Structures) và Kiểu liệt kê (Enums)
Kiểm thử đơn vị (Unit testing) trong Rust
Thời gian sống (Lifetimes)
Xử lý lỗi (Error Handling)
Khớp mẫu (Pattern matching)
Vòng lặp và câu lệnh quyết định
Nội dung tiếp theo sẽ có (Generics, traits, trait objects, smart pointers, closures, iterators và hơn thế nữa)

Yêu cầu

Không yêu cầu kiến thức lập trình trước đó.
Đã cài đặt Microsoft Visual Studio Code

Đối tượng phù hợp

Dành cho bất kỳ ai quan tâm đến việc học một ngôn ngữ lập trình hệ thống mới
Sinh viên và chuyên gia muốn nâng cao kỹ năng của mình

Nội dung khóa học

25 phần • 196 bài giảng
1 Giới thiệu
2 Tính an toàn bộ nhớ của Rust nghĩa là gì? Phần 1
3 Kho lưu trữ mã nguồn khóa học
4 Tạo, Build và Chạy một chương trình Rust
1 Các macro liên quan đến in ấn trong Rust
2 format!() và trình giữ chỗ có tên (named placeholders)
3 Bài tập tự làm - 1
4 Các công cụ hữu ích của Cargo
5 In dữ liệu dạng hex và nhị phân
6 Bài tập tự làm - 2
7 Bài tập tự làm - 3
8 Gắn thẻ r và r# cho chuỗi
1 Giải thích về Biến, tính có thể thay đổi (mutability) và kiểu dữ liệu
2 Từ khóa 'as' và lưu trữ giá trị ASCII
3 Kiểu dữ liệu char
4 Bài tập tự làm - 4
5 Mảng (Array) và duyệt mảng
6 Bài tập tự làm - 5
7 Toán tử số học và ký hiệu viết tắt
8 Viết một Hàm trong Rust
1 Tính an toàn bộ nhớ của Rust nghĩa là gì? Phần 2
2 Tính an toàn bộ nhớ của Rust nghĩa là gì? Phần 3
1 Kiểm thử đơn vị
2 Viết các trường hợp kiểm thử
3 Các macro assert trong thư viện chuẩn
4 Viết các trường hợp kiểm thử (tiếp theo)
5 Bạn có thể giúp chúng tôi không?
1 Tham chiếu
2 Mượn (Borrow), Người mượn (Borrower) và Đối tượng được tham chiếu (Referent)
3 Kiểu dữ liệu slice
4 Các hàm thư viện chuẩn của kiểu dữ liệu slice
1 Sử dụng if..else như câu lệnh và biểu thức
2 Câu lệnh 'match'
3 Bài tập tự làm - 6
4 Sử dụng if..else if..else và if let..else if let…else
5 Toán tử so sánh và logic
6 Toán tử bitwise
7 Bài tập tự làm - 6.2
1 Chuỗi trong Rust
2 Chuỗi và định dạng UTF-8
3 Slice của một String
4 Chuyển đổi String thành Slice và ngược lại
5 Nối chuỗi
6 Truy cập String theo chỉ mục (Indexing)
7 Bài tập tự làm - 7 - Phần 1
8 Bài tập tự làm - 7 - Phần 2
9 Bài tập tự làm - 7 - Phần 3
1 Quyền sở hữu, Ngữ nghĩa Di chuyển (Move) và Sao chép (Copy)
2 Truyền tham trị (Call by value) và Truyền tham chiếu (Call by reference)
1 Các câu lệnh vòng lặp trong Rust
2 Các cách duyệt khác nhau sử dụng vòng lặp for..in
3 Lời giải
4 Vòng lặp while và while let
5 Bài tập tự làm - 8
1 Kiểu dữ liệu Tuple
2 Khớp mẫu với tuples
3 Khớp mẫu tuple và Di chuyển (Move)
4 Từ khóa ref
5 Bài tập tự làm - 9
6 Bài tập tự làm - 10
1 Tạo và Khởi tạo một struct
2 Struct có 'move' hay 'copy' không?
3 Struct và trait Default
4 Tuple struct và Unit struct
5 Viết các phương thức cho Struct
6 Hàm liên kết (Associated function) như một Hàm tạo (Constructor) của Struct
7 Khớp mẫu với Struct
8 Cách sử dụng ref và @ trong khớp mẫu với Struct
1 Định nghĩa một Enum trong Rust
2 Các phương thức và hàm liên kết của một Enum
3 Khớp mẫu sử dụng Enums
4 Kiểu Option
5 Cách sử dụng Option
1 Giới thiệu về Vector
2 Cơ chế hoạt động bên trong của Vector
3 Truy cập Vector theo chỉ mục
4 Slice của một vector
5 Các phương thức Vector: push(), pop(), shrink_to_fit()
6 Bài tập tự làm - 11
7 Các phương thức Vector: drain(), extract_if()
8 Các phương thức Vector: retain(), retain_mut()
9 Các phương thức Vector: split() và các biến thể
10 Các phương thức Vector: splice(), append(), extend()
11 Các phương thức Vector: thêm vào đầu (prepend) sử dụng index() và splice()
12 VecDeque
1 HashMap và các phương thức của nó phần-1
2 HashMap và các phương thức của nó phần-2
1 Enum Result
2 Xử lý lỗi sử dụng enum Result
3 Bài tập về Result
4 Toán tử lan truyền lỗi ( ? )
5 Chuyển đổi Option sang kiểu Result
6 Các phương thức unwrap() và expect()
7 unwrap_err()
8 Các kiểu lỗi trong Thư viện chuẩn
9 Xử lý lỗi std::io::Error
10 Lỗi số học: Bài tập
11 Lỗi số học: Bài tập (tiếp theo)
12 Bài tập về chuyển đổi lỗi
13 Bài tập về chuyển đổi lỗi (tiếp theo)
14 Cách sử dụng map_err()
15 Tự động chuyển đổi lỗi
16 Bài tập tự làm - 12
17 Bạn có thể giúp chúng tôi không?
1 Cú pháp Generics và Viết các hàm generic
2 Hàm với nhiều tham số kiểu generic
3 Struct và Enum generic
4 Bài tập tự làm - 13
1 Thời gian sống và phạm vi (scope)
2 Ví dụ về chú thích thời gian sống (Lifetime annotations)
3 Quy tắc bỏ qua thời gian sống (Lifetime elision rules)
4 Chú thích thời gian sống với structs
5 Chú thích thời gian sống với structs (tiếp theo)
6 Chú thích thời gian sống với các phương thức của struct
1 Biến Const và Static
1 Giới thiệu về Trait và các phương thức Trait
2 Các kiểu liên kết (Associated types) của một Trait
3 Bài tập: Triển khai trait Display cho cấu trúc tự định nghĩa phần-1
4 Bài tập: Triển khai trait Display cho cấu trúc tự định nghĩa phần-2
5 Bài tập: Triển khai trait Display cho cấu trúc tự định nghĩa phần-3
6 Ràng buộc Trait (Trait bounds)
7 Đối tượng Trait (Trait objects) và Bảng ảo (Virtual table)
8 Đóng gói DST (Boxing the DST)
9 Bố cục bộ nhớ của Box
1 Giới thiệu về Closure và Cú pháp
2 Closure nắm bắt môi trường (capturing environment)
3 Các trait liên quan đến closure
4 Hành vi của các biến trong closure
5 Truyền closure làm đối số cho một hàm phần-1
6 Truyền closure làm đối số cho một hàm phần-2
7 Closure như các thành viên của Struct [Sử dụng Trait Object]
8 Bố cục bộ nhớ của chương trình
9 Các loại Closure
10 Bài tập về Closure
11 Closure như các thành viên của Struct [Sử dụng Generics]
12 Closure và xử lý sự kiện
1 Giới thiệu về Iterators
2 Trait 'Iterator' và Trait 'IntoIterator'
3 Về Trait 'Iterator'
4 Tạo một bộ lặp tùy chỉnh (custom iterator)
5 Duyệt qua bộ lặp tùy chỉnh theo giá trị, mượn có thể thay đổi và mượn không thể thay đổi
6 Tạo một bộ lặp tùy chỉnh: Tái cấu trúc phương thức 'next'
7 Bài tập: Triển khai một bộ lặp tùy chỉnh
8 Lời giải: Triển khai một bộ lặp tùy chỉnh
9 Triển khai Trait 'IntoIterator' cho một kiểu tùy chỉnh Phần-1
10 Triển khai Trait 'IntoIterator' cho một kiểu tùy chỉnh Phần-2
11 Triển khai Trait 'IntoIterator' cho một kiểu tùy chỉnh Phần-3
12 Triển khai Trait 'IntoIterator' cho một kiểu tùy chỉnh Phần-4-Lời giải
13 Các phương thức Iterator
14 for_each() như một cách thay thế cho vòng lặp for
15 Giải thích iter(), iter_mut() và into_iter()
16 Các bộ điều hợp iterator thường dùng
17 Giải thích phương thức map() với ví dụ
18 collect()
19 Sử dụng collect() với collection tùy chỉnh
20 Triển khai Trait 'FromIterator' trên một kiểu
21 filter()
1 package, crate, cargo.toml, cargo.lock
2 Phần [package] của cargo.toml, Quy tắc đánh số phiên bản ngữ nghĩa (Semantic Versioning)
3 Quy tắc cấu trúc gói
4 Phần [dependencies] trong cargo.toml
5 Các phiên bản Rust
6 Modules
7 Tổng kết quy tắc về phạm vi truy cập
8 Đóng gói Struct
9 Tổ chức modules vào các file riêng biệt
10 Tái xuất (Re-exporting)
1 Con trỏ thô (*mut T và *const T)
2 Con trỏ thông minh Box
3 Box
4 Sử dụng Kiểu dữ liệu có kích thước động (DST)
5 Box
6 Box
7 Lưu trữ dữ liệu không đồng nhất trong Vector bằng Box
8 Chuyển đổi Box thành con trỏ thô và ngược lại
9 Mượn giá trị của Box
10 Hỗ trợ kiểu dữ liệu đệ quy bằng Box
11 Rc
12 Rc: Đếm tham chiếu yếu và mạnh
13 Thay đổi giá trị trong Rc
14 Khả năng thay đổi nội bộ (Interior mutability)
1 Giới thiệu
2 Viết declarative macros
3 Tiếp tục viết declarative macros
4 Tokens và Token Trees
5 Viết một quy tắc cho declarative macro
6 Tiếp tục viết một quy tắc cho declarative macro
7 Viết mẫu lặp
8 Tiếp tục viết mẫu lặp
9 Về fragment specifiers
10 Sử dụng các fragment specifiers khác nhau
11 Tạo mã lặp (boilerplate code)
12 Tạo getters và setters cho một cấu trúc
13 Về tính vệ sinh của macro (macro hygiene)
14 Các video tiếp theo sẽ sớm ra mắt
15 BÀI GIẢNG BỔ SUNG

Giới thiệu khóa học

println!(r#"### Our new Rust course, designed for beginners, covers ###"#);

println!(r#"### % fundamental to advanced topics % ###"#);

println!(r#"### to build a strong foundation. ###"#);


Update #7 and #8

  1. Modules, Re-export, Encapsulation

  2. Raw and Smart pointers

  3. Boxing DST


Update #5 and #6

  1. Iterators: Trait 'Iterator', Trait 'IntoIterator',

  2. Creating custom iterator

  3. Implementing Trait 'IntoIterator' on a custom type

Update #4

  1. Traits: trait objects, virtual table, boxing DST, memory layout

  2. Closures: as struct member fields, memory layout

Update #3

  1. Closures: introduction, syntax

  2. Closures capturing environment, traits associated with closures(Fn, FnMut, FnOnce)

  3. Passing closures as function arguments

Update #2

  1. Traits: introduction, methods

  2. Associated types of a trait

  3. Implementing custom Display trait

  4. Trait bounds

Update #1

  1. Generics: syntax, functions, structs, enums

  2. Lifetimes: scope, annotations, elision rules

  3. Lifetime annotations: structs, methods

  4. Const. and static variables


Do you want to learn a new programming language?

How about the Rust Programming Language?

Rust is becoming increasingly popular in system-level programming due to its memory safety and performance. It stands as a strong competitor to C++ and is perfect for those looking to elevate their system-level programming skills. Whether you are a beginner or an experienced programmer, Rust offers a modern and powerful toolset for your development needs.

Learning Rust opens doors to high-performance, safe, and reliable system-level programming


Why Rust is making waves in the tech world

Here’s the latest buzz about Rust from the industry:

  1. Rust developers at Google are twice as productive as C++ teams
    Source: The Register

  2. Google’s shift to Rust programming cuts Android memory vulnerabilities by 68%
    Source: Google Security Blog

  3. Microsoft is busy rewriting core Windows code in memory-safe Rust
    Source: The Register

Rust is proving to be a game changer in system level programming, with leading companies adopting it for its unmatched memory safety, performance, and productivity benefits.


2023 Stack Overflow Developer Survey findings indicate that,

"Rust is the most admired language, more than 80% of developers that use it want to use it again next year."

"More respondents want to continue using Cargo(Rust's official package manager) next year than the top competitors."


Can Rust be the future of embedded systems development?

This course provides a strong foundation in Rust programming, which can be valuable for embedded software developers transitioning from C


Why should you consider learning Rust?

There are many answers, but here are the important ones.

* Memory safety without garbage collection

* Better concurrency without data races 

* Safe and unsafe code

* Performance friendly abstractions

* Rust is designed to be as fast as C and C++

* Awesome Tools and Ecosystem (Cargo (the package manager and build system), rustfmt (code formatting), clippy (linting), and a comprehensive standard library.)

* Built-in testing support

* Support for key Object-oriented programming principles


Why should you consider our course?

Our course is designed with beginners in mind. We use text, images, graphics, and animations to concisely demonstrate many intriguing concepts of Rust. This will build a solid foundation for you to understand the key concepts of the language. Also, we cover numerous small to large code snippets to demonstrate the concepts, allowing you to build complex programs.


Important Topics covered so far in the course

1.  Variables  and primitive data types

2.  Ownership and Borrow 

3. Copy and Move semantics

4. Tuples and Pattern matching

5. Decision-making and Loops

6. Structs and  Pattern matching

7. Enums and Pattern matching

8.  Struct/Enum Methods and associated functions

9. Slices

10. String, String slice and UTF encoding

11. Lifetimes

12. Traits

13. Generics

14. Closures

15. Iterators

16. Smart pointers

17. More topics to come(multi-thread ,macros, etc ).

We constantly update this course to ensure you have the latest knowledge and skills


Hardware/Software Requirements

1. Windows/MAC/Ubuntu machine with Microsoft VS Code IDE installed


Note:

This course focuses on general Rust programming and does not specifically discuss no_std scenarios commonly used for embedded systems.

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Programming Languages
Hiển thị tất cả khoá học Rust
Clean Code

Clean Code

Academind by Maximilian Schwarzmüller

4.6 (26435)
118,068
50.000đ -88%
Hiển thị tất cả khoá học Software Engineering
Hiển thị tất cả khoá học Systems Programming
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊