Want more Rust? Break the cycle!

Henk
Embedded software engineer
Want more Rust? Break the cycle!
Let's be frank: Rust is a cool language, but there's not a chance I'm introducing it in my company if I can't get any engineers for it. We'll stick with technologies with a much healthier job market.

Sound familiar? During my career in writing and teaching Rust, I've heard many versions of that sentiment. I want to change that. And the Rust community can change that.

It's true, though. Rust is a cool language. We've all heard the memory safety story, which even the White House is a strong advocate of. But let's go one step further: Rust is a language that empowers everyone to write reliable and efficient software.1 If you know Rust, you can do web applications, you can do embedded, you can do anything. And even though Rust is a language that is perceived as hard to get started with, it is a language that is easy to get really good at. Every Rust developer will agree: if your Rust code compiles, it's very likely to be correct and of very high quality.

Breaking the loop

However, when it comes to the job market, Rust's story is currently not that great. This is a big reason for many to put off adopting Rust in their companies. If you're going to build your livelihood and that of your employees on Rust, you'd better make sure there are enough people to keep working on the thing. But where do you find them? Not many people have experience writing software in Rust. And why should developers invest their time learning Rust if there are almost no jobs anyway? This is a cycle we, the Rust community, need to break.

How? By oxidizing education

That's right: introduce Rust in higher education. Make sure more students enter the job market with considerable Rust experience under their belt. Sure, we don't all get to decide what is taught at universities, but we can make it a lot easier for pioneering teachers to start teaching Rust. And that is where teach-rs comes in.

teach-rs is a modular, reusable university course in Rust, designed for in-person teaching. It's a collection of teaching material, slide decks, and exercises on various Rust topics. By modular, I mean that this course is divided into parts. teach-rs allows you to stitch together these parts into tailor-made tracks for different target audiences, with different learning objectives. Want to teach the basics of the Rust language? The 'Rust Language Introduction' track has you covered! Low-level concepts that come up in systems programming? Go with the 'Rust for Systems Programming' track. Got a totally different idea? Compose your own tracks, containing readily available material, and even mix in your own.

Modular structure of teach-rs content

teach-rs is reusable: the content is published on GitHub and permissively licensed. It's structured like an open-source code base, allowing people to fork, clone, and contribute. teach-rs allows, well, teachers to share and improve their Rust teaching material.

So how is teach-rs different from the ginormous amount of educational material on Rust out there? The strength of teach-rs is that it is dedicated to enabling teachers to teach Rust. Yes, teachers are great at creating educational material themselves. It's their job! But no need to reinvent the wheel if you can use the material created by many Rust teachers who have gone before you.

Impact

People like the idea: teach-rs has over 2700 stars on GitHub. And a growing number of educational institutions have chosen teach-rs as their basis for teaching Rust. teach-rs saw its first run at the Slovak University of Technology, back when it was still called Rust 101. It was picked up by multiple other organizations, such as RustIEC, a collaboration of Vrije Universiteit Brussel and KU Leuven, as well as University Politehnica of Bucharest.

Here's what Bart Massey, Associate Professor of Computer Science at Portland State University, and chair of Rust Edu, has to say about teach-rs:

"I have extremely high regard for teach-rs: it is something I wish I'd made. teach-rs is one of the four main resources I currently use when teaching Rust. While I can wholeheartedly recommend teach-rs now, the best thing about it is that it is an open resource to which Henk, myself and others can continue to contribute. With a present like this, there's a lot to say for the future!"

Supporting teach-rs

Now, that is great, but if we want change in the Rust job market, we can't stop here. The Rust community needs to step up and promote Rust in education. And you can do that by supporting teach-rs.

Of course, contributions and improvements are very welcome! There are always things that can be improved. Just open a PR if you see something that needs touching up. It'd also be awesome to provide material for not-yet-covered fields, such as embedded or data science. I'd love to work together on this with others.

But the most important thing that you can do, is support us financially. Contact us at donate@tweedegolf.com. With financial support, we provide continuity in maintenance and the development of more content, make it even easier to use, and promote teaching Rust in university.

If we want Rust to change the world, we need more people who can write Rust. And to get more people, we need to empower everyone to teach Rust.

image title

Stay up-to-date

Stay up-to-date with our work and blog posts?

Related articles

At the end of 2022, we announced the creation of Rust 101, a university course that introduces students of computer science to Rust. Initially, the course was created for the Faculty of Informatics and Information Technologies at STU Bratislava (FIIT), but from the start we've wanted to create an open-source, modular and reusable set of teaching resources. Having now achieved that milestone, it is time for a new announcement: Rust 101 has evolved to teach-rs.
When we first introduced Rust 101 to you on our website, preparations for its first run where in full swing. The action started in February 2023; 20 students of the Faculty of Informatics and Information Technologies of the Slovak University of Technology in Bratislava followed 9 lectures and 9 tutorials, and worked on their own rust project to round off the course. The course was completed in May.
When sudo-rs development started, we added several dependencies using Rust’s crates ecosystem to quickly ramp up development. During development we accrued approximately 135 transitive (direct and indirect) dependencies. Once this was identified, we managed to reduce our total dependencies down to three. In this blog, we explain why and how we did this.