The Summer of Rust (2025)

The summer of Rust is now over. I'm sorry that you missed it! However, this page has an overview of the courses that were offered along with some suggestions for learning on your own.

Overview

For several years, I had been meaning to do a deeper dive into Rust programming. In 2024, I launched the Crusty Interpreter course wherein the goal is to implement the first part of the Crafting Interpreters book in Rust. That course remains part of my regular course rotation. However, to push my Rust skills further, I felt like I needed to apply it to a greater variety of projects. Thus, I offered special Rust-only versions of my regular project courses as well as some two-day Rust-based short courses.

Why Rust?

I've always been a rather pragmatic programmer--most of my work has been in Python, but I've also done a significant amount of C/C++ programming as well as some teaching in Racket. That said, I am most interested in courses that challenge conventional thinking. Alan Perlis said it better when he remarked "a language that doesn't affect the way you think about programming, is not worth knowing."

In my experience, Rust has proven to be that kind of programming language. Most people generally agree that it can be quite difficult to learn and I would concur. However, I think much of the apparent complexity arises not from Rust per se, but from a incomplete understanding of the problem being solved. If anything, Rust has an uncanny knack for punishing muddled design. Thus, the goal of these courses was to give Rust a fair shake on a wide variety of practical projects to to learn how to better "think" in the language.

Short Courses

The following courses were offered in a two-day format.
Rusty Elevator.
A broken elevator may have inspired the creation of Rust, but could you actually code an elevator in it?
May 19-20, 2025.
June 17-18, 2025.
June 28-29, 2025 (weekend).
ONLINE
Ruckus.
No, not a racket--something even louder. Write a small interpreter in Rust!
May 22-23, 2025.
July 12-13, 2025 (weekend).
July 22-23, 2025.
ONLINE
Ray Tracer.
Write a ray tracer in Rust. Ooh, pretty!
May 28-29, 2025.
June 21-22, 2025 (weekend).
June 25-26, 2025.
ONLINE


Project Courses

The following week-long project courses were offered.

Crusty Interpreter.
Implement the Lox programming language from Crafting Interpreters in Rust and learn a lot about programming language design and implementation in the process.
July 28-August 1, 2025.
ONLINE
Write a Compiler in Rust.
Create a compiler for a new programming language.
August 11-15, 2025
ONLINE
Rusty Boat.
Fight for survival as you attempt to implement the Raft distributed consensus algorithm in Rust.
August 25-29, 2025
ONLINE

Advice on Learning Rust

I firmly believe that the most effective way to learn something is to use it. Rust is not like more conventional programming languages. Thus, you have to immerse yourself in it and struggle through its concepts--much like a child learning to walk. If you give yourself time, keep an open mind, and give Rust a fair shake, I think you'll be rewarded.

Although the summer has passed, I currently offer two Rust-based courses for the Rust-curious:

Both of these courses involve writing an interpreter, but they each have a slightly different focus. The Crusty Interpreter course is more focused on the "nuts and bolts" of programming. For example, working with strings, files, modules, data structures, error handling, and so forth. This can definitely serve as an introduction to the language if you've never done much Rust programming before.

The Ruckus course is a much more intense and challenging dive into Rust semantics. It's based on projects that might be given to computer science students taking a programmimg languages class at a university.

I don't offer the Ray Tracer or Rusty Elevator courses on a regular basis. However, you can find some Github projects (linked from the course pages) with some details on completing the project on your own.

My regular project courses such as Write a Compiler and Rafting Trip are designed to be language neutral and can be completed in Rust. Each offers different challenges. The Compilers course is very focused on data modeling and data manipulation. The Raft course is focused on concurrency, networking, and other related topics.


Copyright (C) 2005-2026, David Beazley