Learning RUST in 2019
Rust is system programming language that was first released on May 15, 2015 and new major upgrade “Rust 2018” was released on Dec 06, 2018. Rust was the “most loved programming language” in the Stack Overflow Developer Survey for 2016, 2017, and 2018. Rust provides comparable performance to other system programming languages like C, C++. Rust claims to provide memory safety without run-time or garbage collector. Rust is conceptually unlike any other language you may have known yet Rust has made sure that most of the syntax of language is unoriginal. Wonder how Rust accomplish these goals?
If you have made up your mind to learn this modern programming language in 2019, this is a small attempt for new learners to have an unofficial learning path for getting to know and mastering Rust. I am still learning Rust and I will update post as and when required. This is iteration 1.
Learning Circle
Learning any new language is an iterative process and programming language is no exception. For learning new programming language, I find below process to be efficient. It takes repetition and practice to fully understand and master language!
Note to Beginners: Don’t be demotivated if-
- You find that you are getting too many compiler errors and warnings. Rust’s compiler is pretty smart!
- You find that concepts you already knew do not work the same way in Rust. This difference is intentional and is part of Rust’s language design.
- You find that you are not able to use data structures with circular dependency as easily as in other languages.
- You are stopped repeatedly by borrower check rules! Part of learning Rust is to learn how to think mentally like borrow check rules.
- You are not able to understand fully ownership, borrowing, moves, references, traits, lifetimes, closures etc. in first run. This is OK. These concepts take time and practice!
- You find that learning Rust takes time because it does! Even if you know other programming languages.
Learning path — Iteration 1
Read/Watch — you can start with any/all of the options below
- Read chapter 1–11 of The Rust Programming Language — (Free)
- Watch Rust Fundamentals on Pluralsight — (Paid)
- Watch Learning Rust — (Paid)
- Watch Introduction to Rust Programming — (Paid)
Code — Example Codes
- Read and practice chapter 1–10 of Rust By Example — (Free)
- Read and practice chapter 1–4 of Rust cookbook — (Paid)
- Read and practice chapter 1–3 of Rust Programming by Example — (Paid)
Measure — Code challenges and source codes
- Complete first 10 code challenges on Exercism — (Free)
- Try to understand source codes for rust projects of your interest, you can find Rust related projects/resources on curated list.
Build — Project of your interest
- Simple Command line tool
- Web-Assembly
- Networking
- Embedded
- Port simple existing C, C++, Python, JavaScript or any other code snippet to Rust!
Contribute!
Do share your projects, learning, ideas, suggestions with community and help others who might be starting! Rust has one of the most awesome community. Connect with community on Reddit
Until next iteration!