Skip to content

Commit

Permalink
apply Grammarly corrections
Browse files Browse the repository at this point in the history
  • Loading branch information
vladislav-tkach committed Dec 26, 2023
1 parent 1d8776c commit dcf29d2
Showing 1 changed file with 12 additions and 12 deletions.
24 changes: 12 additions & 12 deletions 0_basics/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,27 +12,27 @@ Polish your familiarity by completing [Rust By Example] and [rustlings].
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 is the memory layout of the box and vector? What are heap and stack? Where, but on heap and stack data could live in RAM?
- What memory model [Rust] has? Is it single-threaded or multi-threaded? Is it synchronous or asynchronous? What are the memory layouts of `Box` and `Vector`? What are a heap and a stack? Where, but on heap and stack data could live in RAM?
- What runtime [Rust] has? Does it use a GC (garbage collector)?
- What statically typing means? What is a benefit of using it? Weak typing vs strong typing? Implicit / explicit?
- What static typing means? What are the benefits of using it? Weak vs strong typing? Implicit vs explicit typing?
- What are generics and parametric polymorphism? Which problems do they solve?
- What is nominative typing and structural typing? What is difference?
- What are traits? How are they used? How do they compare to interfaces? What are an auto trait and a blanket impl? Uncovered type? What is a marker trait?
- What are static and dynamic dispatches? Which should I use, and when? What is monomorphisation?
- What is a crate, module and package in Rust? How do they differ? How are the used? What is workspace?
- What is cloning? What is copying? How do they compare? What is for trait drop? What is special about the trait?
- What are nominative typing and structural typing? What is the difference?
- What are traits? How are they used? How do they compare to interfaces? What are auto trait and blanket impl? Uncovered type? What are marker traits?
- What are static and dynamic dispatches? Which should you use, and when? What is monomorphization?
- What are a crate, a module, and a package in Rust? How do they differ? How are they used? What is a workspace?
- What is cloning? What is copying? How do they compare? What is trait Drop for? What is special about this trait?
- What is immutability? What is the benefit of using it? What is the difference between immutability and const?
- What are move semantics? What are borrowing rules? What is the benefit of using them?
- What is RAII? How is it implemented in [Rust]? What is the benefit of using it?
- What are lifetimes? Which problems do they solve? Which benefits do they give?
- What are lifetimes? Which problems do they solve? Which benefits do they provide?
- 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?
- What is special about slice? What is layout of Rust standard data types? Difference between fat and thin pointers?
- Why [Rust] has `&str` and `String` types? How do they differ? When should you use them? Why str slice coexist with slice? What is differnece between `String` and `Vec`?
- Is [Rust] OOP language? Is it possible to use SOLID/GRASP? Does it have an inheritance? Is Rust functional language? What variance rules does Rust have?
- What is special about slice? What is the layout of Rust standard data types? Difference between fat and thin pointers?
- Why does [Rust] have `&str` and `String` types? How do they differ? When should you use them? Why str slice coexists with slice? What is the difference between `String` and `Vec`?
- Is [Rust] an OOP language? Is it possible to use SOLID/GRASP? Does it have inheritance? Is Rust a functional language? What variance rules does Rust have?

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

_Additional_ articles, which may help to understand the above topic better:
- [Chris Morgan: Rust ownership, the hard way][1]
Expand Down

0 comments on commit dcf29d2

Please sign in to comment.