Want more Rust? Break the cycle!
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.
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.