Skip to content

Latest commit

 

History

History
 
 

0_basics

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

Step 0: Become familiar with Rust basics

Estimated time: 3 days

Read through Rust Book, Rust FAQ, and become familiar with basic Rust concepts, syntax, memory model, type and module systems.

Polish your familiarity by completing Rust By Example.

Read through Cargo Book and become familiar with Cargo and its workspaces.

After completing these steps, you should be able to answer (and understand why) the following questions:

  • What memory model Rust has? Is it single-threaded or multiple-threaded? Is it synchronous or asynchronous?
  • What runtime Rust has? Does it use a GC (garbage collector)?
  • What statically typing means? What is a benefit of using it?
  • What are generics and parametric polymorphism? Which problems do they solve?
  • What are traits? How are they used? How do they compare to interfaces? What are an auto trait and a blanket impl? What is a marker trait?
  • What are static and dynamic dispatches? Which should I use, and when?
  • What is a crate and what is a module in Rust? How do they differ? How are the used?
  • What are move semantics? What are borrowing rules? What is the benefit of using them?
  • What is immutability? What is the benefit of using it?
  • What is cloning? What is copying? How do they compare?
  • What is RAII? How is it implemented in Rust? What is the benefit of using it?
  • What is an iterator? What is a collection? How do they differ? How are they used?
  • What are macros? Which problems do they solve? What is the difference between declarative and procedural macro?
  • How code is tested in Rust? Where should you put tests and why?
  • Why Rust has &str and String types? How do they differ? When should you use them?
  • What are lifetimes? Which problems do they solve? Which benefits do they give?
  • Is Rust OOP language? Is it possible to use SOLID/GRASP? Does it have an inheritance?

After you're done notify your lead in an appropriate PR (pull request), and he will exam what you have learned.

Additional articles, which may help to understand the above topic better: