Jon Walz
Published on

Learning Rust

The internet is chalk full of opinions about the Rust language. Something I’ve struggled with throughout of my software career is having opinions. I know this sounds strange but allow me to explain.

In my first few years of this career, there was admittedly a lot of information thrown at me. This included the opinions of my senior peers. I was given books like “Clean Code” and “Learning JavaScript Design Patterns” (I was mostly a JavaScript engineer back then). At the time, these books gave me a lot of confidence in my ability to integrate with my engineering peers. Notice the emphasis on peers because this is where my point become more clear.

Working at an agency gave me exposure to a lot of technology very quickly. I helped with everything from planning the architecture of a new frontend application, to configuring the CI/CD pipeline with CircleCI and TravisCI. I remember also the headache of trying to get our iPhone app accepted by the Apple App Store which involves becoming a trusted and registered developer within their system, app signing, very specific deployment processes, and probably more but I’m forgetting at the moment.

I also remember stumbling my way through learning the GO language, and trying to update our internal project only to be met with… you may have guessed it… opinions. Where the point of this post becomes more clear is thinking back on the sheer number of projects I’ve been a part of. And honestly, the number of conflicting opinions I encountered trying to enforce the opinions I had previously learned.

I remember having read a blog post years ago about how common it is for codebases to have great intentions and strictly enforced policies (via linting and compiler rules) but most often these code bases become a complete mess. Well intentioned spaghetti. After having experienced this at least a couple dozen times, I’ve adopted the motto of “whatever the team agrees upon”. Because ultimately, after built so many software projects, the ultimate bottleneck that can really stall a team is their ability to agree upon standards. To agree upon process. To say “that’s good enough” and ship.

So what does this have to do with Rust? Well, honestly, Rust has a few things it offers me from which I can feel inspired. One simply being, how excited the community is. Every time I read something within the Rust community, it’s filled with optimistic enthusiasm. The other quite attractive thing about Rust is that I know nothing about it. I’m starting from the beginning and this quite motivating. My history has been in the JavaScript space, which I still love, but what I had recently mistaken as lack of inspiration was really just stagnating on my learning.

So, all this being said, anyone who knows the current changes in my life knows that I am in the midst of intentional change. There is somewhat of a common knowledge that taking big risks can yield big rewards… or big lessons. I’m not sure what the current changes will yield yet for my life but for now, I am throwing myself at new and interesting things. Like Rust and learning Dutch.

If you read all that, thank you. I am also challenging myself to actually post more on this blog. I say this all to often but with big change invites big intentionality.