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.