Starting Rust - Sat, May 13, 2023
Earlier this year I set off on a journey to get to a point where I felt comfortable to learn the Rust programming language. I have programmed on and off some in my day but it was never a direct passion of mine, actually I kinda hated it because of how annoying some aspects were. But for whatever reason these past two years I have become more and more interested in learning the skills to become a software developer. The previous year I had fiddled around with javascript, but nothing too advanced. I never fully got around to understanding objects but I got good enough to make my own project and get several other beginners to join in and create a neofetch clone in JavaScript and NodeJS. So when the ball dropped at new year’s eve I set my resolution to spend this entire year to learning programming. I knew specifically I wanted to switch to Scheme/Lisp because of the countless recommendations to SICP. But to work up to that book I decided to read several other Scheme books for a few reasons.
- Most books are now free online by the author
- Running Scheme inside of DrRacket makes a very beginner friendly experience
- Scheme isn’t being updated frequently like any modern language With those reasons and several others that ill explain in depth in their own post, Gave me the interest to solve problems with code after working with it for a few months.
Finally to Rust, with my personal inferior complex out of the way I began to slowly learn the language. I don’t want to rush head first into the language and then get immediately burned out on it, instead I want to take it at a slow pace learning things piece by piece and building projects along the way. So far ive learned the first three chapters of the infamous “the book” and then a few chapters into Command-Line Rust by Ken Youens-Clark. From there I created a project that I built to a stable first version, the program is a simple command line program to move and copy files recursively. From there ive been reading more of Rust books and working on Leetcode questions in Rust while I decide on my next project. To say that I feel empowered when I use rust is an absolute understatement. There are so many features that even as a semi beginner feel amazing to use. The compiler while strict can in some cases provide a gentle nudge as to why you may have to do something before your code compiles. These errors are are usually pretty detailed allowing you to easily see where the error lies and in some cases providing you with a solution to your error. This in tandem with something like ChatGPT makes me feel like I can attempt any issue or bug I may come across in my code. Sure there may be cases where one or the other tool fails me, but in tandem the allow me to gain an almost third eye as to what my errors are and what and why im doing is wrong and I cannot begin to describe how valuable this is. The cargo system is an amazing feat for me as well, I often struggled finding a programming language that could be used across every OS with little ease that just worked without the end user having to do anything extra. Rust does just this! Sure there may be some bugs if specific edge cases aren’t taken care of but even with my simple project I was able to take my code compile it on my mac and everything worked amazingly, I then took the code to my windows computer recompiled it with no issues and now I have a sharable .exe binary that I can share with my friends. I know theres a lot of drama around rust, It definitely has to do with the fact that rust people are trying to rewrite everything in rust. Now I don’t think this is a bad thing, but people don’t like change and often resent it so I see the drama from that stance. But from the time ive spent with it, its made my experience so enjoyable that I look forward to and often now spend time out of my day programming or thinking of how to solve my programming problems.