Rust Course Progress Update – February 2023

Feelin’ mighty Rusty this time of year…

Feb 2023 Overview

February 2023 has been a whirlwind of progress on the Rust language course!

In total, in February 22 new tutorials were added and 13 existing ones updated/improved.

New topics include: vectors, structs, enums, ownership, and memory management (the stack and the heap). Within each of these topics are several important sub-topics.

Continue reading below for an overview of the topics that were covered this month, as well as some exciting news about a new upcoming course!

Rust Course Progress – Update for February 2023

Vectors

In Rust, vectors are a non-primitive, compound data type whose elements are all of the same type. In February we added several articles covering vectors:

Vector basics: What are vectors, how are they different from arrays, and common vector topics.
Vector methods: Vector method usage and syntax and common vector methods with examples.
Vector slicing: A common task is slicing a vector. Become a vector chef and learn the most common ways of slicing vectors.
Iterating over vectors: There are so many uses for iterating over a vector, which is a super common data type. Learn how to iterate over a vector and simplify your code.

Structs

In the category of structs, we added tutorials on:

Struct basics: What are structs and how are they used?
Structs and functions: How can structs be used with functions including using structs as arguments and returning structs from functions.
Struct methods: What are struct methods, struct method syntax and common examples of struct methods.
Tuple structs: An interesting hybrid between a tuple and a struct that can be useful in many cases.

Enums

Enums are such an important topic in Rust, and are one its’ most powerful and beloved features. Many developers love enums and we’ve even heard that some developers favor Rust for the enums specifically. This is topic that we will definitely look to expand on in the future.

Enum basics: What are enums, enum syntax, and how are enums used?
Enum methods: What are enum methods, enum method syntax and common examples of enum methods.
Using enums with match: Enums and match expressions are the perfect pairing.
The ‘option’ enum: What is the option enum and how is it used?
The ‘result’ enum: What is the result enum and how can it make our lives easier?

Ownership

Finally, in February we started tackling the difficult subject of ownership. Ownership is essential to Rust. It provides memory safety but can be daunting to new programmers.

Our mission is to make ownership digestible – to start with basic examples but quickly grow our reader’s knowledge to the point where they feel comfortable in working with the ownership system.

This can be challenging because understanding ownership is a bit of a sliding scale; it isn’t something that can be easily grasped just by reading a definition or seeing an example or two. Ownership is baked into Rust so the more you code, the greater your understanding will be. At the same time, we really need to learn some basic concepts to have enough of a working knowledge of the ownership system that we can start building with it.

The stack and the heap: We cover the stack and the heap before the main introduction to ownership because they are easy to learn and essential for understanding ownership basics.
Introduction to ownership: What is ownership, why is it so important, and how does Rust use it to achieve memory safety?
Copy types and move types: Primitive types get copied while non-primitives get moved. Enough said? No way! The relatively gentle topic of copy and move types is a great way to get acquainted with ownership and the stack and heap.
Functions and ownership: How do the rules of ownership apply to functions?
Borrowing and references: One of the most important topics in Rust, borrowing could be regarded as its’ own category of knowledge. Borrowing allows us to use the value assigned to a variable binding without transferring ownership.

Looking Ahead and Other Stuff

We’ve covered a lot of ground already, but we’re just getting started. The plan is to cover all of the essential topics on Rust – akin to perhaps a 20 hour video course – before moving on to advanced topics and projects.

The next few topics covered will be: lifetimes, generics, traits, closures, crates, and macros – among many others. We anticipate that the core course will take another two months to develop fully, and may spend another month after that editing the existing content to improve its’ overall quality, readability, accessibility, and comprehensiveness.

After this course main course is complete, the current plan is to develop a comprehensive, beginner friendly course on Data Structures and Algorithms in Rust.

In case you haven’t noticed, we’ve also been working on our overall site design and flow, starting with some big changes to the home page.