Mastering Rust: 2 Years of Building Brilliance and Lessons Learned

Β·

3 min read

Mastering Rust: 2 Years of Building Brilliance and Lessons Learned

How It Started

My first programming experience was with C++, sometimes in 2017. This was born out of my passion for building embedded software.

That year, I picked a few books on C++, notably Fundamentals of C++ Programming by Richard L. Halterman, to whirl away time while I prepare for my undergrad years as an electrical and electronics engineering student.

It was a challenge to learn one of the hardest known computer programming languages all by myself, with zero mentorships. Regardless, I pushed on till I resumed the university.

Over the years, I did lesser C++ and I got into the web development space where I learned a handful of web technologies, including Vue, jQuery, SASS, PHP, Typescript, NodeJs, and, SQL, in addition to the usual HTML, CSS, and JavaScript.

After 4 years of active learning and building full-stack applications, I decided to redefine my interest in systems programming, or at least to learn a language that is more performant than JavaScript, which also has more reach and use cases.

The research brought me to the door of the Rust programming language.

Hello Rust!

I got serious with Rust, in December 2021, after playing around with it for some weeks and trying to evaluate if, it's exactly what I needed.

The next six months were spent learning and trying to get to speed with this impeccable tool.

But unlike anything I've worked with in the past (C/C++, JavaScript, Typescript, PHP). The Rust Programming language was interestingly hard to learn.

I had many failed attempts to learn it. So, I finally stopped trying to figure out the language, instead, I focused on how to learn it. I found a GitHub gist that answered my question, there was relative ease from that point. 🀩

Beyond the Basics

My first successful Rust Program was built to implement the Fizz Buzz problem, I was happy something is finally working and I was proud to blog about it.

But like the other typical Developer euphoria, it was short-lived, especially when I took a dare at building a URL minification web application with VueJs and Rocket. πŸ˜‚πŸ˜‚

Like you probably guess, it ended very badly and I couldn't glue all the parts together, the obvious mistake was trying to use so many technologies, (Shell, Docker, SCSS, Typescript, Handlebars). Regardless of the failed attempts, I couldn't bring myself to delete Brownie (What I called the project).

Picking the pieces together once more, I opted for the Axum framework, as a learning field, I joined the Rust users forum, and subscribe to the This Week In Rust newsletter and Rust Nigeria newsletter.

Hinging on Axum and PostgreSQL, I started building a Backend as a Service project, which was partly inspired by AppWrite. - Something that'll let front-end developers build functional full-stack applications with fast and secure backend by just grabbing the project SDK and weaving it into the web, mobile, or desktop application client-side code.

Go Rustacean, go!

I got more confident, I practiced more often and I built more things, one such is Raven - a Twitter bot, more of a twit scheduler others include:

  • thunderstorm: A command line application to Scaffold Node.js network application

  • Zeus - Backend of a chat application

  • Nitrogen - minimal authentication service with Axum and MongoDB

  • Email service - a minimal email service

  • And many more

I'm currently building wi-share, a cross-platform desktop application for sharing files across laptops and mobile devices. Be sure to star it✨

Conclusion

I'm glad I decided to follow through with the steep Learning curve of Rust Programming language. It was a lot of challenges when I started but the language is loveable and it's an integral part of my preferred technologies.

I'd say, Rust is awesome, but not without its pain points.

Β