Skip to content

xoriors/course-rust

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

89 Commits
 
 
 
 
 
 

Repository files navigation

course-rust

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)

Prerequesites

  • 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

Advantages of taking the course

  • 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

What this course gives you and what is NOT

What it gives you:

  • 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

What it's NOT:

  • Exhaustive learning course with everyday sessions with teachers
  • Paid course
  • Learn at your own pace
  • It doesn't offer you a job

Structure

  • 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

What you will be able to build from scratch after you take the course

  • 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

Chapters

Foreword Introduction

  1. Getting Started
  2. Programming a Guessing Game
  3. Common Programming Concepts
  4. Understanding Ownership
  5. Using Structs to Structure Related Data
  6. Enums and Pattern Matching
  7. Managing Growing Projects with Packages, Crates, and Modules
  8. Common Collections
  9. Error Handling
  10. Generic Types, Traits, and Lifetimes
  11. Writing Automated Tests
  12. An I/O Project: Building a Command Line Program
  13. Functional Language Features: Iterators and Closures
  14. More about Cargo and Crates.io
  15. Smart Pointers
  16. Fearless Concurrency
  17. Object Oriented Programming Features of Rust
  18. Patterns and Matching
  19. Advanced Features
  20. Final Project: Building a Multithreaded Web Server
  21. Appendix

Additional material

Please see Wiki.

Into the course

Get in touch

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.

Releases

No releases published

Packages

No packages published