Learning Resources to Get Started With the Rust Programming Language

rust.png

I’d like to discuss what reading I’d recommend starting learning the Rust Programming Language and how useful the language can be, not only to Systems Programming, but also to Microservices, web development, applications in Blockchain technology; even game development.

So, What is Rust?

According to Krzysztof Wróbel at Codilime

Rust is a statically-typed programming language designed for performance and safety, especially safe concurrency and memory management. Its syntax is similar to that of C++. It is an open-source project developed originally at Mozilla Research

It is a language made for safety, arguably a much-needed improvement over C and C++, and the only thing stopping you from learning and utilizing the language, is assumptions about its practicality.

So Who is Rust For?

I want to hack a hardware or write Internet-of-Things applications

The IoT era and the expansion of the maker movement enables a real democratization of hardware projects. Whether it is the Raspberry Pi, Arduino, or one of the young titans like the BeagleBone or Tessel, you can choose from a slew of languages to code your hardware projects, including Python or JavaScript.

There are times, however, when the performance these languages offer is simply not adequate. At other times, the microcontroller hardware you are aiming for is not suited to the runtimes these languages require: slow chips with tiny memory reserves and ultra-low-power applications still require a close-to-the-metal language. Traditionally that language has been C — but as you might have guessed, Rust is the new kid on the block.

Rust supports a wide variety of exotic platforms. While some of this is still experimental, support includes generic ARM hardware, the Texas Instruments TIVA dev board, and even the Raspberry Pi

I’m operating high-performance computing applications that scale to multiple cores

Studies suggest Rust is already great for HPC (high-performance computing). You don’t even have to rewrite your whole application in Rust: its flexible Foreign Function Interface (FFI) provides efficient C bindings that let you expose and call Rust code without any noticeable overhead. This allows you to rewrite your app module by module, slowly transitioning towards a better developer experience that will result in performance on par with the old code or better. You also get a more maintainable codebase with fewer errors, which scales better on a high number of cores.

I simply need something fast!

Rust is great for rewriting performance-sensitive parts of your application. It interfaces well with other languages via FFI and has a tiny runtime that competes with C and C++ in most cases, even when resources are limited.

So How Do I Start?

I recommend starting with reading!

Software and cathedrals are much the same — first we build them, then we pray — Sam Redwine

In my opinion, there’s no language quite like Rust. That being said, the assumption is that you will first read what I’ll call the Rust Bible:

The Rust Programming Language

By: Steve Klabnik and Carol Nichols

The book will cover everything, from installing the Rust toolchain, dependencies with Rust’s own Package Manager: Cargo, all the way up to writing small applications after each chapter.

From here the possibilities are endless but I highly recommend checking out

Zero to Production in Rust:
An Opinionated Introduction to Backend Development

By: Luca Palmieri

This book is tailored toward the modern world: Cloud Development, working in a team setting, and managing a shifting, ever-changing technological landscape, which I think is what makes this book a must-read

In Luca’s words:

Zero To Production will focus on the challenges of writing Cloud-native applications in a team of four or five engineers with different levels of experience and proficiency.
Zero To Production will thus extensively cover topics that might seem tangential to pure backend application development. But Cloud-native software is all about rainbows and DevOps, therefore we will be spending plenty of time on topics traditionally associated with the craft of operating systems. We will cover how to instrument your Rust application to collect logs, traces and metrics to be able to observe our system.

Continue Learning

There are plenty of places to hone your craft, but I recommend utilizing some of these tools at your disposal

Continue to Learn with https://learning-rust.gitbook.io/book/

Use Rust Playground for an in-browser sandbox to test code

Check out these popular Udemy Courses:

https://www.udemy.com/course/rust-lang/

https://www.udemy.com/course/rust-fundamentals/

https://www.youtube.com/c/RustVideos/featured

Now What?

Once you’ve read pieces of Rust literature and have familiarized yourself with Rust’s unique constructs , you’re ready to explore what Rust has to offer

Unique Projects

24 Awesome Open-Source Rust Projects

Check These Out!

24 open-source Rust libraries and projects

Other notable projects and platforms

Thanks for reading!

I hope this was a helpful article for anyone starting to learn Rust. Feel free to reach out to me on Linkedin!

Connect with me on Medium

Or Dev.to


Only registered users can post comments. Please, login or signup.

Start blogging about your favorite technologies and get more readers

Join other developers and claim your FAUN account now!

Avatar

Sam Armentrout

Business System Analyst, Midmark Corporation

@saedarm
I am a PSPO Certified IT professional, with my working career spent mostly in the Healthcare Industry. Currently I am a Business System Analyst where I guide a team of developers building an Azure IoT solution for ultraviolet autoclaves
Stats
13

Influence

368

Total Hits

1

Posts