Stanford CS110L is a course about Rust Language and Systems Programming. Rust is quite elegant, and covers a lot of concepts in Programming Language. I highly recommand this course. There is a list of "what I learned" for your reference.
- Memory Safety
- Ownership and Borrow
- Error handling with "Option" & "Result"
- Traits & Generics for Abstraction
- Smart Pointers, e.g. Box / Rc / Arc / RefCells
- Macros & Code Generation
- Apply Rust Concepts to C / C++, e.g. RAII, Ownership etc.
- Multiprocessing vs Multithreading
- Examples: Google Chrome vs Firefox Explorer
- Synchronization Methods in Multithreading
- Mutex
- Conditional Variable
- Channel
- Basics of Distributed System
- Scalability
- Availability
- Security
- Asynchronous Programming
- Future
- Async / Await
Most resources of this course are incomplete. I'll mainly focus on the Spring 2020 version, which is relatively aggregated. I also notice the content of this course is gradually decreasing across the years, thus maybe the course in 2022 is mostly refined.
- [Spring 2020] Course Website
- [Spring 2021] Course Website
- [Spring 2022] Course Website
- [Spring 2020] Starter Code
Other unofficial resources:
Relative course:
I have learned the basics of Rust with Too Many Linked List. In this course, I want to achieve two goals.
- Review Rust to gain a deeper understanding.
- Focus on concurrency in the latter part of the course.
To achieve these goals, I hope to complete the course in 1 week(You know, it's always good to have a plan xD.)
Date | Lecture | Excercise | Project | Time |
---|---|---|---|---|
0801 | 01-02 | 1.5h | ||
0802 | 03-04 | 01-02 | 4h | |
0803 | 05-06 | 03.p1 | 4h | |
0804 | 03.p2 | 1h | ||
0805 | 07-08 | 1.5h | ||
0813 | proj1.01-03 | 3h | ||
0814 | proj1.04-07 | 3h | ||
0820 | 09-10 | 2h | ||
0821 | 11-12 | 2h | ||
0822 | 05 | 0.5h | ||
0823 | 13 | 1h | ||
0824 | 14 | 1h | ||
0825 | 15-16 | 06 | proj2.01-02 | 2h |
0826 | proj2.03 | 2h | ||
0827 | proj2.04-05 | 3h | ||
0828 | 17-18 | 1h | ||
Total | 32.5h |