NOTE: I’ll update this page when a new course is planned.

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 structure of the course varies, as I experiment with approaches and tailor the course for varying needs, but the outline is roughly:

  • Overview of Rust.
    • hello, world
    • workflow
    • strengths and weaknesses of the language
    • in general, what kind of language is it
  • A whirlwind tour of some basic aspects of Rust
    • functions
    • control structures
    • variables
    • command line parsing
    • reading files
  • Generic types
  • Iterators
  • Memory management
    • ownership
    • borrowing
    • lifetimes
    • mutating data
  • Threads

The course is in English using a 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 fine, but using a very recent Rust release will work better with some dependencies.

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.

(If you’re not a FOSS developer, you could ask your employer to pay for a course for their staff, possibly even in person.)

When?

I will add dates and times here when a new course is planned.

To sign up for a course, send email to rust.fossdev@liw.fi and include a link to a free and open source project you’ve published or helped with. If you’d prefer a week day rather than weekend, or a specific time zone, let me know. I will send updates about the course to the email address you use, such as the URL to the place for the training.

You will need a web browser to attend. Ideally also a microphone and a webcam, for interacting with me and the rest of the class, but those are not strictly necessary.

If you attend, please be warned that I will ask you to tell others what you thought of the course (directly to friends, or on your blog, or on social media, wherever you’re comfortable doing it).

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.)

Useful sites for learning Rust

The official home page and main documentation:

Tutorials:

Day-to-day lookup sites:

From participants

Gunnar Wolf posted about his experience from my course.

Julien Jerphanion on Mastodon.

Clayton Craft on Mastodon.

Sumana Harihareswara on her blog.

Gaétan Lepage posted on their web page.