From b88d5d172fdc0e2a7953e106a27a1f186e821501 Mon Sep 17 00:00:00 2001 From: Jonathan Pallant Date: Thu, 26 Sep 2024 11:50:58 +0100 Subject: [PATCH] Try to clarify the names of lessons and modules. --- training-slides/src/SUMMARY.md | 9 ++++-- training-slides/src/introduction.md | 48 +++++++++++++++++++++++++++++ training-slides/src/start_here.md | 32 ------------------- training-slides/src/wasm.md | 2 +- 4 files changed, 55 insertions(+), 36 deletions(-) create mode 100644 training-slides/src/introduction.md delete mode 100644 training-slides/src/start_here.md diff --git a/training-slides/src/SUMMARY.md b/training-slides/src/SUMMARY.md index 68e8b4dc..489e6091 100644 --- a/training-slides/src/SUMMARY.md +++ b/training-slides/src/SUMMARY.md @@ -1,6 +1,6 @@ -# Summary +# Front Matter -[Start Here](./start_here.md) +[Introduction](./introduction.md) [Glossary](./glossary.md) @@ -55,6 +55,9 @@ Topics that go beyond [Applied Rust](#applied-rust). * [The stdlib](./std-lib-tour.md) * [Using Cargo](./using-cargo.md) * [Using Types to encode State](./type-state.md) + +# Rust and Web Assembly + * [WASM](./wasm.md) # No-Std Rust @@ -96,7 +99,7 @@ Topics around [Ferrocene](https://ferrous-systems.com/ferrocene/), the qualified * [What is Ferrocene](./ferrocene-what-it-is.md) * [Installing and Using Ferrocene](./ferrocene-installing.md) -# Rust for Decision Makers +# Why Rust? * [What is Rust?](./what-is-rust.md) * [Safety, Performance, and Productivity](./safety-performance-productivity.md) diff --git a/training-slides/src/introduction.md b/training-slides/src/introduction.md new file mode 100644 index 00000000..55489faa --- /dev/null +++ b/training-slides/src/introduction.md @@ -0,0 +1,48 @@ +![Our cute logo!](images/logo_ferrous-systems_rgb.png) + +# Introduction + +This book contains our training material, divided up into individual slide decks. Each deck is a *lesson*. Those *lessons* combine to form a *module*, which is taught during a series of *sessions* within a *training*. See [the glossary](./glossary.md) for more details. + +This is the book version of our material. You can also see the lessons in slide form at . + +We have a standard grouping of *lessons* into *modules*, but this can be customised according to customer needs. The modules have dependencies - that is, pre-requisite knowledge required to get the most out of a particular module. The dependencies are shown in the following graphic. + +Most of our modules are available now (shown in blue), but some are still in development and will be available in the future (shown in grey). + +```mermaid +--- +title: Ferrous Systems' Rust Training Modules +config: + theme: base + themeVariables: + primaryColor: "#cdf" +--- +graph TD; + Fundamentals(Rust Fundamentals)-->Applied(Applied Rust); + Applied-->Advanced(Advanced Rust); + Applied-->NoStd(No-Std Rust); + NoStd-->Ferrocene(Using Ferrocene); + Applied-->BareMetal(Bare-Metal Rust); + Applied-->Async(Async Rust); + Applied-->Wasm(Rust and WebAssembly); + BareMetal-->Embassy(Using Embassy); + Async-->Embassy; + WhyRust(Why Rust?); + WhyFerrocene(Why Ferrocene?); + + classDef grey fill:#eee,stroke:#ccc; + class Async,Embassy grey +``` + +* **Why Rust?**: A (stand-alone) half-day tour of Rust for decision-makers, technical leads and managers. +* **Why Ferrocene?**: A (stand-alone) 60 minute introduction to Ferrocene. +* **Rust Fundamentals**: Covers the basics - types, writing functions, using iterators. +* **Applied Rust**: Using Rust with Windows, macOS or Linux. +* **Advanced Rust**: Deep-dives into specific topics. +* **No-Std Rust**: Rust without the Standard Library. +* **Bare-Metal Rust**: Rust on a microcontroller. +* **Async Rust**: Futures, Polling, Tokio, and all that jazz. +* **Rust and WebAssembly**: Using Rust to build WASM binaries, run in a sandbox or in an HTML page +* **Ferrocene**: Working with our qualified toolchain. +* **Using Embassy**: Async-Rust on a microcontroller. diff --git a/training-slides/src/start_here.md b/training-slides/src/start_here.md deleted file mode 100644 index 166a381f..00000000 --- a/training-slides/src/start_here.md +++ /dev/null @@ -1,32 +0,0 @@ -![Our cute logo!](images/logo_ferrous-systems_rgb.png) - -# Start Here - -Make sure to have `rustup`, `VSCode` and the `rust-analyzer` VSCode extension installed. - -Our various Rust training courses are planned to fit together as follows. Some of these courses are available now, and some are in development and will be available in the future. - -```mermaid -graph TD; - Fundamentals(Rust Fundamentals)-->Applied(Applied Rust); - Applied-->Advanced(Advanced Rust); - Applied-->NoStd(No-Std Rust); - NoStd-->Ferrocene(Using Ferrocene); - Applied-->BareMetal(Bare-Metal Rust); - Applied-->Async(Async Rust); - BareMetal-->Embassy(Using Embassy); - Async-->Embassy; - WhyRust(Why Rust?); - WhyFerrocene(Why Ferrocene?); -``` - -* **Rust Fundamentals**: Covers the basics - types, writing functions, using iterators. -* **Applied Rust**: Using Rust with Windows, macOS or Linux. -* **Advanced Rust**: Deep-dives into specific topics. -* **Async Rust**: Futures, Polling, Tokio, and all that jazz. -* **Ferrocene**: Working with our qualified toolchain -* **No-Std Rust**: Rust without the Standard Library. -* **Bare-Metal Rust**: Rust on a micro-controller. -* **Using Embassy**: Async-Rust on a micro-controller. -* **Why Rust?**: A (stand-alone) half-day tour of Rust for decision-makers, technical leads and managers. -* **Why Ferrocene?**: A (stand-alone) 90 minute tour of Ferrocene. diff --git a/training-slides/src/wasm.md b/training-slides/src/wasm.md index 5d5cb0dd..8602aa16 100644 --- a/training-slides/src/wasm.md +++ b/training-slides/src/wasm.md @@ -2,7 +2,7 @@ ## What? -WebAssembly(WASM) enables running Rust (among others) in a sandbox environment, including the browser. +WebAssembly (WASM) enables running Rust (among others) in a sandbox environment, including the browser. WebAssembly is supported as a _compile target_.