I had a good week last week.
You see, I love designing and delivering software. I like designing systems. I like seeing things working efficiently.
When I was a kid, I wanted to be a designer. A proper designer. With one of those draughtsman’s boards with a T-square on it. Lots of soft pencils (I still love a 6B). Sketching, layouts, making things look fantastic.
Alas, it wasn’t to be.
For various reasons, I ended up down a different path and found myself writing code for a living. This wasn’t bad – I also love writing fantastic code and I’m really good at it. As an aside, I studied philosophy and I’ve found that all the best coders that I’ve ever met also did philosphy; I think it’s something to do with being able to deal with abstract concepts.
Eventually, I stumbled across the programming language Ruby. If you’ve heard me talk about Ruby, you’ll know that I love it. It’s the programming equivalent of beautiful design. It encourages you to take extra care over every command you write. You want to craft it, to make it look asthetically pleasing. And work in the most elegant way possible.
There are disadvantages to Ruby; it can often be slow, it sometimes requires more hardware than the equivalent in another programming language. But, because Rubyists love coding in it so much, the work we do tends to be delivered faster and of a much higher quality than the stuff written in other ways.
All of which is a really long-winded way of saying, when you find something that fits with what you love doing, stick with it. It brings you rewards, both directly (I get to write code in the most beautiful way imaginable) and indirectly (I’m good at it, so I get more work).