For several years, I've been meaning to do a deeper dive into Rust programming. In 2024, I launched the Crusty Interpreter course wherein we attempt to implement the first part of the Crafting Interpreters book in Rust. That has proven to be a lot of hard fun, but I've wanted to do so much more. So, I got to thinking and stumbled upon a hare-brained idea--what if I spent the whole summer teaching literally everything in Rust! Yes. That would be wild. Maybe even diabolical!
So, welcome to my summer project. Let's learn some Rust programming!
--Dave
If you must know, I'm 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 projects and 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. Nevertheless, I think it's different enough in an interesting way to warrant further study. Thus, my goal is to give it a fair shake on a wide variety of practical projects. Even if you take a course and then decide that Rust is not your thing, I definitely think you'll walk away with some new ideas.
For the first half of summer, I'm offering three different two-day courses. These are short projects designed to get your feet wet and to have some fun while doing it. Each of these courses are offered on multiple dates including on some weekends (a first for me).
In the second half of summer, I'm offering all of my major week-long project courses (Write a Compiler, Rafting Trip, and Crusty Interpreter) in an intense Rust-only 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 11-12, 2025. June 28-29, 2025 (weekend). | ONLINE |
Ruckus. No, not Racket--something even louder. Code a Lisp interpreter in Rust. |
May 22-23, 2025. June 16-17, 2025. July 12-13, 2025 (weekend). | 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 |
These are difficult and intense project courses. Completion of at least one of the above short courses should be considered as a prerequisite.
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 |
Courses are usually taught in an intense immersion format to a small group (limited to about 15 participants). The immersion format works to provide structure and to focus your engagement with the material. The small class size allows for meaningful questions and group discussion.
Courses run from 9:30-5:30pm in US Central Time/Chicago with an hour lunch break. Course time is divided between group discussion and working on hands-on projects with a strong emphasis on the latter. Most courses are taught loosely in the style of "mob programming" where we work together to try and figure out a problem solving strategy before moving on individual coding. Come ready to code, to question, and to discuss.
My classes are usually attended by professionals with a wide variety of backgrounds and interests. Are you ready to tackle Rust programming? It's hard for me say. However, I would definitely recommend that you have prior programming experience and that you work through a basic Rust tutorial before attempting any of these courses.
Courses are open to everyone and there is no screening process. I trust you to be the best judge of your abilities. However, feel free to contact me if you're not sure.
All courses are taught by David Beazley. David is probably best known in the Python world as the author of Python Distilled (Addison Wesley) and the Python Cookbook, 3rd Edition (O'Reilly Media). You might be wondering what would qualify him to teach a Rust course, but David is also a former University Professor, having formerly taught Operating Systems, Compilers, and Networks at the University of Chicago. In 2023 and 2024, he taught Programming Languages with Shriram Krishnamurthi at Brown University. Let's just say that he's been around long enough to have seen some things and leave it at that.
For more information and general inquiries, please send email to dave@dabeaz.com. You can also consult the Frequently Asked Questions.
Copyright (C) 2005-2025, David Beazley