This course is based on The Rust Book. We also add practical examples for each chapter, weekly assignments, and final projects.
Important
WORK IN PROGRESS
The main idea of this repo is to give you, at a minimum:
- A complete Rust course based on
The Rust Book
- Additional practical examples and assignments
- Docs, logistics, a project, and GitHub issues to organize the course interactively
- All this Free and Open Source (FOSS)
- Conversational English is mandatory
- You should be familiar with the basics of programming, algorithms and data structures, and another programming language, preferably with any of C/C++, Go, Java, Kotlin, Python, Haskell, JavaScript, TypeSript or similar
- Know how to use GitHub
- Curiosity, able to learn by yourself
- No specific higher education level is needed
- Why should I take this course: - To be initiated in Rust, to understand some advanced programming concepts better
- What does the course offer: - Technical support, Recommended courses, Guided self-learning, Flexibility in organizing your learning schedule, free, no obligations
- What does the course NOT offer - Certification, assisted learning, job opportunities
- Useful materials to help you learn Rust
- Short weekly interactive calls (2h) with teachers to teach you and answer your questions
- Technical support and ability to talk the mentors to them over GitHub issues or chat over the week
- Practical examples and weekly assignments
- It's free, with no obligations
- Exhaustive learning course with everyday sessions with teachers
- Paid course
- Learn at your own pace
- It doesn't offer you a job
- Will last for min 8 weeks + final project
- Each week, students will read a few chapters from
The Rust Book
- Home assignments for read chapters. You're encouraged to also learn by doing using these resources
- Will build a project from scratch for the whole duration of the course (a mini-Redis distributed on replica mode with a load balancer) run from CLI as server and client, and also as libraries
- Every week, we'll have a 2h call where we:
- Discuss last week's assignment
- Discuss the last week's chapter and address any questions (this will also happen over the week via Slack or GitHub issues)
- Briefly present and discuss the next week's course
- Discuss practical examples
- Live coding or present building part of the course main app related to last week's chapters knowledge
- Give a new assignment for last week's chapter
- Over the week, students may ask any questions over the chat
- Weekly calls will be video recorded and made available in this repo for anybody to use
- Relational SQL database
- NoSQL Verisioned key-value/document database
- URL shortener
- Website/service health checker
- Encrypted filesystem
- Distributed filesystem
- File sync service
- Load balancer
- Proxy
Foreword Introduction
- Getting Started
- Programming a Guessing Game
- Common Programming Concepts
- Understanding Ownership
- Using Structs to Structure Related Data
- Enums and Pattern Matching
- Managing Growing Projects with Packages, Crates, and Modules
- Common Collections
- Error Handling
- Generic Types, Traits, and Lifetimes
- Writing Automated Tests
- An I/O Project: Building a Command Line Program
- Functional Language Features: Iterators and Closures
- More about Cargo and Crates.io
- Smart Pointers
- Fearless Concurrency
- Object Oriented Programming Features of Rust
- Patterns and Matching
- Advanced Features
- Final Project: Building a Multithreaded Web Server
- Appendix
Please see Wiki.
If you’re interested, join xorio on Discord and select Rust course
and others you're interested in.
There will be several mentors.
If you’re interested in other courses not found there, in #courses
see the form in the channel's description, vote for which ones you want, and we will organize them based on demand. We are collecting your email so we can notify you when we organize them, and we will post them in the hashtag#courses channel.