Sunday, 16 July 2017

Investing In Yourself

As I’ve touched upon in earlier blog posts, I’m a big fan of working on skills that allow you to ‘level up’ as a developer. It is also something I typically struggle with, so maybe that’s why I keep coming back to it…

For much of my life, I’ve been lucky when it comes to computers… Even from an early age, it all just sort of ‘clicked’ for me. I loved being able to create things and the idea that if I told the computer what to do — in just the right way — it would do it. It became addictive. I would obsessively work on a program until I could finally get it to work. In middle school, I even wrote programs that would solve my math homework (generally with a brute force approach because ‘n00b’).

Anyhow, I think it’s partly because of that early luck I had… and figuring out I could be good with computers without putting in much effort… that I never really dedicated myself to really trying very hard. If something I wanted to learn (like assembly or C) because too difficult, I’d just give up and find a way to accomplish what I wanted a different way. As a general rule, that’s a horrible attitude to have… but it also was somewhat beneficial in a way, too. Even later in life, if something seems a bit too much effort, my first impulse is generally to see if someone else has already solved the issue, if there’s a NuGet package that does what I want, if there’s an open source library for it, etc. Other developers I know seem to use every opportunity they get as an excuse to re-invent (re-implement?) the wheel. I mean, I guess it’s good if you are capable of making your own file system, internet protocol, or whatever… but with very few exceptions, I can’t think of any reason why a business would want you to…

So I guess there are different extremes…

I am aiming for a middle-of-the-road approach… I just want to keep my skills up-to-date, be aware of market/industry trends, and get at least a little experience (whether through my employer or on the side) with newer technologies and frameworks so I can more effectively do what I’m good at — solving problems.