Do you write code for free and open source projects? Would you like to learn the basics of the Rust programming language? I’m offering to teach the basics of Rust to free and open source software programmers, for free. The free course is based on my commercial Basics of Rust training.

After the free course, you will be able to:

  • understand what kind of language Rust is
  • make an informed decision about using Rust in a project
  • read code written in Rust
  • write command line programs in Rust
  • understand the fundamentals of memory management in Rust
  • learn more Rust on your own

This is not a lecture. The course requires active participation from you, in discussions and hands-on practice. To be clear: this course will not make you an expert in Rust. The goal is to get you started. To become an expert takes a long time and much effort.

The course will be split into three two-hour sessions on consecutive weekends.

  • first session:
    • quick introduction to Rust
    • the cargo tool
    • anatomy of the Rust “hello, world” program
    • using Rust libraries
    • command line argument parsing
    • handling errors
  • second session:
    • memory management and the borrow checker
    • concurrency using threads
    • hands-on practice: compute checksums of files
  • third session:
    • hands-on practice: fetch a file over HTTP

The course is in English using the Big Blue Button video conferencing system (accessed with a web browser). You should install the Rust toolchain before the course starts: either using packages for your operating system or using rustup. Your installation works if you can run the following commands and get the expected output.

$ cargo init hello
     Created binary (application) package
$ cd hello
$ cargo run
   Compiling hello v0.1.0 (/home/liw/tmp/x/hello)
    Finished dev [unoptimized + debuginfo] target(s) in 1.07s
     Running `/home/liw/tmp/cargo/debug/hello`
Hello, world!
$

For this training, any version Rust from the past couple of years should work equally well.

For whom?

This offer is limited to people who already contribute to FOSS projects via code: to meaningfully learn Rust you need to already know how to program, and I’m biased towards FOSS, sorry.

When?

The times for the first three sessions are listed below, in a selection of time zones. Each session is two hours.

  • Session 1: October 1st.
America/Los_Angeles  Sat  1 Oct 10:00:00 PDT 2022
America/New_York     Sat  1 Oct 13:00:00 EDT 2022
UTC                  Sat  1 Oct 17:00:00 UTC 2022
Europe/Paris         Sat  1 Oct 19:00:00 CEST 2022
Europe/Helsinki      Sat  1 Oct 20:00:00 EEST 2022
  • Session 2: October 8.
America/Los_Angeles  Sat  8 Oct 10:00:00 PDT 2022
America/New_York     Sat  8 Oct 13:00:00 EDT 2022
UTC                  Sat  8 Oct 17:00:00 UTC 2022
Europe/Paris         Sat  8 Oct 19:00:00 CEST 2022
Europe/Helsinki      Sat  8 Oct 20:00:00 EEST 2022
  • Session 3: October 15.
America/Los_Angeles  Sat 15 Oct 10:00:00 PDT 2022
America/New_York     Sat 15 Oct 13:00:00 EDT 2022
UTC                  Sat 15 Oct 17:00:00 UTC 2022
Europe/Paris         Sat 15 Oct 19:00:00 CEST 2022
Europe/Helsinki      Sat 15 Oct 20:00:00 EEST 2022

To sign up, send email to rust.fossdev@liw.fi and include a link to a free and open source project you’ve published. I will send updates about the course to the email address you use, such as the URL to the place for the training.

If the first set of sessions goes well, I’ll likely run a second set, aimed more at Asian time zones (i.e. European evenings). If you’d be interested in that, send email to the address above.

Due to limitations in the video conferencing system I use, there is room for 8 people per session. If there’s a lot of interest, I’ll consider running the course more times.

Why am I doing this?

I have a passion for software freedom. I really like the Rust programming language. I have a side business in training Rust, aimed at corporate customers.

You get: a quick introduction to Rust.

I get: the satisfaction of helping FOSS develops, feedback on my training course so I can improve it, and a bit of advertising.

(The advertising bit: if you’d like your employer to pay me to run the course for their staff, point them at my training courses page.)