• This repository has been archived on 23/Mar/2020
  • Stars
    star
    389
  • Rank 110,500 (Top 3 %)
  • Language
    CSS
  • Created almost 8 years ago
  • Updated over 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Course material for Rust, taking roughly three days. English, German, Spanish available.

Deprecated, the up-to-date version of the content is at:
https://github.com/ferrous-systems/teaching-material/

Teach Rust

"Teach Rust" is free workshop material to use to give a course introducing the Rust programming language. The time for the full course is around three to four days.

The material is created with people with zero Rust experience but with a programming background in mind.

Commercial availability

This course is sponsored and trained by Ferrous Systems in German and English. Get in touch for a custom quote.

The Spanish translation is community-maintained, we gladly refer to trainers.

Overview

The course consists of two parts:

The course presentations is used as an introduction into all basic aspects of Rust. It comes in small parts and ships with integration into the Rust playground for examples as well with a translation structure.

The work examples. The course constructs a small TCP server from ground up.

Along with that, all communication material we used is supplied here.

The presentations

The presentation material is split into many small to medium presentations for every aspect of Rust. Not all are meant to fully cover a topic, but as an introduction of the important points. Chapters covering basic things such as ownership and borrowing should be exhaustive

The presentations are Reveal presentations with plugins for internationalisation and integration into the Rust Playground.

The path through the presentations is not fixed, to allow leeway during holding the course. Examples of the pathes we used can be found in the courses directory. We recommend to create your own while preparing for giving the workshop.

The examples

Currently, the course ships with three examples:

  • A simple TCP server that provides a very simple PUT and GET interface to store and remove messages
  • The same built with Tokio and Futures
  • A Rust library that can be used as a dynamic language

The TCP server is meant to be built from ground up, starting with a fresh crate.

The examples given here are an example of the final state. Before giving this course, you should develop this example by yourself.

The Tasks

There are various tasks which can be found in src/bin/ and can be run with cargo run --bin $TASK".

The tasks are as follows:

  • add-chapter $CHAPTER - Creates a chapter by the name of $CHAPTER for each locale.
  • add-code-example $CHAPTER $INDEX - Appropriately renames all existing code examples (<=$INDEX are incremented by 1) for $CHAPTER to make room for a new code example. Also updates the slides to reflect this.
  • build-indices - Builds the indices in presentation/toc/ from .md to html for use in a web browser.
  • extract-code - Extracts code samples from the slides in all chapters and creates appropriate copies in the presentation/chapters/shared/code/*/*, then updates the slides with new elements reflecting the new location, should not need to be regularly used.
  • rename-chapter $OLD $NEW - Renames chapter $OLD to $NEW for all locales.
  • rename-chapters - Renames chapters with an md extension to chapter. Should not need to be regularly used.

Open issues

Currently, the largest issues are:

  • the examples and the presentation lack READMEs

Credits

The development of this course was financed by Asquera for the courses given at Linuxhotel.

They are open sourced as a contribution to the growth of the Rust language.

If you want to fund further development of the course, book a training!

Commercial use

This course is expressively intended for commercial and free use.

Trainers

Want to be on this list: open an issue and we will add you.

License

https://creativecommons.org/licenses/by-sa/4.0/

More Repositories

1

elements-of-rust

rust style and philosophy
1,073
star
2

teaching-material

Rust
564
star
3

embedded-trainings-2020

Rust
237
star
4

sealed-rust

Bringing Rust to the Safety Critical Domain
222
star
5

embedded-trainings

Ferrous Systems Embedded Trainings
Rust
110
star
6

rust-training

Learning materials for the Rust Training courses by Ferrous Systems
HTML
108
star
7

rust-exercises

Exercises for learning Rust, by Ferrous Systems
Rust
106
star
8

async-on-embedded

Rust
92
star
9

zero-to-main

Bootstrapping Embedded Development in Rust
Rust
50
star
10

cargo-review-deps

A tool for auditing Cargo dependencies during updates
Rust
50
star
11

why-rust

A half-day introduction to the Rust Programming Language, for Managers, Technical Leads and Decision Makers.
HTML
35
star
12

wasm-training-2022

Rust & WebAssembly Workshop
HTML
24
star
13

testing-proc-macros

Example of structuring a proc macro crate for testability
Rust
17
star
14

CO2-Device

Rust
16
star
15

nrfdfu-rs

An implementation of the nRF bootloader protocol
Rust
14
star
16

threadx-experiments

Demo code for Rust on ThreadX
Rust
11
star
17

unsize-experiments

Rust
9
star
18

training-bookshelf

7
star
19

teaching-material2

teaching-material v2.0
Rust
7
star
20

rustconf-katharina-2018

Embedding Rust in C/C++
CSS
7
star
21

embedded-rust-and-serde

MeetingEmbedded Talk, 2019-11-13
JavaScript
7
star
22

mdslides

A tool for turning mdbooks into slide shows
Rust
6
star
23

adafruit-seesaw

Rust driver for the Adafruit SeeSaw
Rust
5
star
24

rustconf-james-2018

Getting Something For Nothing
5
star
25

rustrush-2018-keynote

The RustRush 2018 "An async story" closing keynote
CSS
5
star
26

ram-loader

Rust
4
star
27

Squares

Rust
4
star
28

why-ferrocene

Slides and material for our Why Ferrocene? training webinar
HTML
4
star
29

qt-training-2023

Training material for the KDAB training day 2023: https://www.kdab.com/kdab-training-day-2023/#rust
Rust
4
star
30

dnssec-tests

Rust
3
star
31

shared-github-actions

GitHub Actions workflows and actions used by Ferrous Systems
3
star
32

rust-in-fifteen-mins

Lightning Talk at emBO++ 2019
JavaScript
3
star
33

life-before-main

Talk at Rust and Tell, February 26th 2019
JavaScript
3
star
34

psoc-experiments

Test code for the Infineon PSoC 62
Rust
2
star
35

ldn-sealed-rust

Slides from Sealed Rust talk by James Munns at Rust LDN meetup
JavaScript
2
star
36

squares-api

Library containing the Squares API for receiving JSON objects via POST requests.
Rust
2
star
37

2019.oxidizeconf.com

The 2019 version of the Oxidize website
CSS
2
star
38

adafruit-neotrellis

Rust driver for the Adafruit Neotrellis
Rust
2
star
39

training-binary-contents

train the trainers session on "what ends up in the binary?"
C#
2
star
40

sparc-experiments

Rust on the Gaisler LEON3
Rust
2
star
41

stm32-rustls

Rust
2
star
42

linker-script-exercises

Rust
1
star
43

training-2021-06-09

Working repository for training
Rust
1
star
44

calc-ffi-around-the-world

A WIP FFI exercise for Ferrous' Teaching Material
Rust
1
star
45

rust-training-may-2021

Working repository for a Ferrous Rust Training
Rust
1
star
46

serialport-rs-hotfix

hotfix while waiting on upstream merge
Rust
1
star