Growing up I always loved building things. There was always a satisfaction in finding out how things worked internally that I seemed to chase endlessly. To this day, I still do the same - except I've graduated from gameboys to servicing vintage film cameras and building keyboards. And as much as I want to say I'm good at fixing things, I've always been way better at taking things apart than putting them back together.
This chase for knowledge and understanding is something I often credit as the reason I enjoy programming so much. Programming allows me to build things from seemingly 'nothing'. I can pick apart source code like I used to tear down old devices, and then take inspiration from that to make my own tools, much like the old modifications I used to make. And then, I can iterate. I can optimise through those iterations by applying new-found learning from taking things apart and improving on solutions and tools I have already written.
This, to me, is the reason I love to program, and where all the reasons I could ever give stem from.
The problem I find is that when we are growing up, we are often asked "What we want to be", instead of "What we want to do". This is natural, because identity is something which is very important to find, and it's good to cultivate thinking about it from a young age - but it comes at the risk of misplacing passion and efforts.
If you had asked 13 year old me that same initial question, I would have told you I wanted to be a programmer. Instinctively I had marked that as the task to which my passion should be allocated, when it should have been towards programming as a whole. In doing that, I would not find myself fall victim to following what influential figures did, or keeping up with the latest and greatest frameworks or fleeting trends. Instead, I would have found myself increasing my knowledge and understanding for programming in an organic manner.
I'm a Software Engineer now. Sure, it's easy to gravitate towards the status, money and opportunities that come with such a role - and if that is the reader's motivations, then I see no problem in that. But my motivations are not to acquire a title, or become something or someone, but to always feed that childhood urge inside me to pick apart, and keep learning. I choose to do it through the medium of programming, but there are many avenues I could have picked.
I write this as a reminder to myself: to lose my passion to be a programmer, and to maintain my passion for programming. It allows me to embrace failure. Gone are the moments where I fail and feel disappointed; instead, I see a new opportunity to fix something and to learn something new. Whether I have success or failed, the takeaway is the same: that I know what to do next time I'm in that situation.
I might be simple and boring in my approach to programming. I might not care to maintain this image of a successful, innovating Software Engineer - but I know that I'm not pretending to be anyone but myself.