Ruckus Returns as a Regular Rust Course (Sep 15-18)
Ruckus Returns!
As the summer winds down, I've been making an assessment of the various Rust courses that I offered over the last few months. I definitely feel like I learned a lot. However, one course stands above the rest when it comes to confronting the major difficulties in learning Rust--and that's the oddly named Ruckus course.
In learning a new programming language, it's easy to get fixated on surface-level features like syntax, names of standard library modules, function names, and things of that sort. To be sure, Rust offers the same basic features that you find in all programming languages. However, the underlying semantics of Rust are also very different than most other languages. Thus, it's pretty easy to hit a wall and to explode your head (I know I did when I first tried to learn Rust 7 years ago). What are lifetimes? Why does the borrow checker hate my code? Do I even know how to code?
The Ruckus course confronts this by taking a page from my experience teaching Programming Languages with Shriram Krishnamurthi at Brown University over the prior two years. In that course, the major focus was on programming language semantics, not syntax! This is an important distinction--a semantic focus means your attention is placed on how a programming language actually works. It's all about big picture concepts.
In Ruckus, we implement the semantic core of a "standard" sort of programming language. This requires us to understand the behavior of programming language features that we think we already know (there are often surprises). However, we additionally have to confront a semantic mismatch between the language we are trying to implement and the language we are using to implement it. Rust has its own ideas about how things are supposed to work and implementing a programming language brings these differences front-and-center in a very big way. Just to give an idea, a single line of code might spawn hours of subsequent discussion. What does this code actually mean? What does Python do? What does Rust do? What are we WE going to do?
A Ruckus Preview (September 15-18)
Although Ruckus was offered over the summer as a two day course, I've realized that there is so much more that could be covered. Thus, Ruckus is returning as an expanded four-day course. Additional content includes coverage of Rust macros, some functional programming features, unsafe code, and foreign function interfacing (e.g., connecting C/C++ code with Rust). I think it's going to great.
For the preview, I'm continuing to offer a registration discount. After that, I'm hoping to offer Ruckus on an ongoing basis as part of my regular course rotation.
If this sounds interesting to you, more information can be found on the Ruckus page.
I'd also add that my regular non-Rust courses are returning to the schedule starting in October.
Cheers,
Dave