Why I love reading language references...most of it

When I start of something new or something uncomfortable, I've come to find that the reason I procrastinate is the discomfort of the unknown. I feel it in my bones, it feels like a waste of time and soon I feel like a waste of time. None of those things are true but that's what they feel like at the moment. So If I can do anything reduce that discomfort as much as I can to ensure that I show up not just today but six months from now, I'll take it. The answer some of you will find ludicrous. The answer is to read the language reference. Yes they are quite large, yes they can be boring at times. To which I would say, "that's the job son." If you want to be remotely good at it that is.

About 10% of the way in, I'll know enough to get started, print some stuff on to the screen or console and I'm ready to solve some simple Advent of Code problems or if there is UI involved I'll build simple shapes and change the color or the way they behave or interact. I'll continue reading and build things along the way. When I pick up a language there is a particular reason for it, so I'll do basic versions of those. When I picked up Zig, it was to understand memory better, so I allocated some memory, see what happens when I didn't, use different allocators etc. At this stage I'm only about a quarter of the way through the language reference, but I have an idea of how to look up information on it. Single page language references with a menu on the side are the best for finding things.

Why bother?

I find that when I'm working on something new or difficult, the time between getting stuck and figuring out why is crucial, relative to the size of the problem ofcourse. After reading past the half way of the language reference, you know exactly how it's structured and how and where to find the info you are looking for. Most importantly though, you will understand why because that's what language references do. They give you the context of a thing, which is valuable and over long periods of time you won't even need to go back to them anymore. Also why I love to program without any autocomplete turned on, not the LSP just the autocomplete. LSP's are awesome. There is a certain joy of getting to the point where you can write code for long periods of time without looking up anything and nothing trying to guess what you might need. I've only had glimpses of those moments, yet I've tasted the sweet sweet nectar from the bosom of those moments, where it's just you and the terminal(Neovim btw). It is the feeling of knowing your craft, it's worth the small price in speed early on. Which by the way, you'll get back and then some. Patience early on is important.

There is something about doing things right the first time. They feel slow and early on in your career you are naive enough to think you'll figure out an easy way to do it. If the thing is worth doing, I can assure you there are no shortcuts. Which I've learned the hard way. Thanks to years of competitive swimming, taking shortcuts in life, in programming and so on. It took me a while to learn this lesson. I'm glad it's cemented deep into my bones now. It also came once I shifted my focus from the goal to the process. After all the journey is where most of our time is spent. Luckily for me, I love this craft of making the computer do stuff. So the journey is the destination for me.

And that there is why I read all of the language reference.
RTFM.