Day 1: Understand Rust, set up toolchain, and write first programs
5 topics, Tap to openTap to close
10:00–11:00Why Rust? Origins, Design Goals, and Use Cases
Rust was publicly announced by Mozilla in 2010; memory safety without a garbage collector is a design goal, and in safe Rust the compiler checks ownership and borrowing rules at compile time. You examine the design principles of safety, speed, and concurrency and assess when Rust fits a task. In the lab environment, you write a small Rust program.
11:00–12:00Toolchain, Cargo, and Your First Program
Cargo serves as the build system and package manager; rustup manages toolchain versions; rustc compiles source code. The DevNinjas Dojo, our cloud learning environment, provides the exercises. You create, build and run a project there; the formatter and linter complement the basic development cycle from source changes to execution.
13:00–14:00Variables, Types, and Control Flow
Rust is a statically typed language, supports type inference, and uses immutable bindings by default. In the lab environment, you work practically with fundamental data types and compound values in small code examples and examine different control-flow paths to observe how control flow can return values directly as an expression.
14:00–15:00Functions, Modules, and Crates
Functions use parameters and return values; visibility limits access to module items, which are private by default. A package bundles one or more crates; crates are binary crates or library crates. In the lab environment, you structure a small package into modules and use Cargo to add an external crate.
15:00–16:00Strings, Slices, and Collections
Rust distinguishes owned strings from borrowed string slices. In the lab environment, you work with Vec as a dynamic array and HashMap for key-value pairs; slices directly reference parts of data structures without copying them. This prepares you for ownership and borrowing on the second day.

