This website is intended to help me to learn Rust and so the main purpose is for me to have somewhere to write about my journey and the things I learn as I try and get a handle on how Rust works and how it can work for me, if it also helps others then that’s great.

I’m a programmer with far too many years’ experience, much of it in C++, and I’ve decided that I’ve not been pushing myself enough lately to learn new things. I have a blog at www.lenholgate.com and find that I tend to learn things best when I take the time to write about them. I often make mistakes and there are so many clever people around that it makes sense to make these journeys public so that others can correct mistakes and help me learn (if they want to). I also find that it’s useful to have my musings searchable by Google so that I can easily find them again; often I find that when I search for solutions the way I ask Google a question isn’t quite the way others talk about the solution and so having my own answers is often useful to the future me. Also, I’ve had “more personal technical development” on my todo list for so many years and never really actioned it properly, so telling the world I’m learning Rust and making my progress visible may help me keep moving forward; or at least leave me with something else to be embarrassed about in a year or so’s time.

My approach to learning things has always been to read around the beginners guides for a bit, until I get bored, and then throw myself in at the deep end and try and write something that does something that I care about. When learning C, all those years ago, I immediately decided that I needed to write a multi-user text adventure game… With Rust, I quite quickly wanted to work out how to write generic code. I always tend to take the “run before I can walk” approach and therefore make mistakes along the way, sometimes I’ll fix up the mistakes before I write about that step in the journey and sometimes I wont discover the mistake until later and so will fix it and write about it later. All of this means that what you find on this site may not work for you, especially if you don’t learn in quite the same way that I do, but then, as I said above, it’s all about me really :)

My desired destination is being able to write idiomatic and efficient Rust code for the problem domains that I care about. I expect it will take me a long time to reach that destination. Initially I’ll be using a mix of test-driven development and compiler error driven development…

I would usually write about this kind of journey on my blog but when I started, the blog was in need to a lot of work due to the fact that it was built on an old version of MovableType and so, in addition to learning Rust, this site was also helping me to learn Hugo so that I could build this site. This let to me being able to rebuild my existing websites with Hugo and finally ditch MovableType. So, this website is as much of a learning process as learning Rust is and so you should expect changes in layout and whatever as we go along.