Frequently, in my personal time I’m torn on what I want to spend time learning. I often feel compelled to try to learn the latest trendy technology. This leads to me purchasing books and playing around with things on my own for a month or two only to leave the technology behind and never use it again. If I look at my bookshelf I have enough of a library on programming and development topics that I could probably start my own online bookstore.
One thing that I’ve learned, is that there is always going to be a new technology or language out there to learn. A corollary to that however would be that in a professional capacity you won’t always be working with the latest thing out there. It’s better to have a solid grounding in the fundamentals, which you can apply to multiple situations. The benefit of learning a lot of different things is that you’ll find common themes among them which you can apply in different situations. Also, with a solid grasp of the fundamentals you’ll find learning new technology stacks becomes easier with time. Part of the downside of this, is that you’ll want to work with the new things you’re learning, and your current job may not provide this possibility.
I’ve run into the position where I’ve frequently wanted to use the latest and greatest. Whether it was the latest version of Windows or Exchange Server, or the newest Angular framework, I’ve always been drawn to the new stuff. I’ve then run into the situation where at work the business requirements drive the technology selection, which is as it should be. There are a lot of factors which go into selecting something to use in a professional setting, and just because something is new and on the market doesn’t mean that you’ll get to use it right away, or ever where you work. This can be extremely frustrating at times, especially when said new technology would make your job easier.
So now I’m at the point where I don’t have an active side project that I’m working on (having ended my blog software development) and I’m in the position where I can use some of my free time to learn anything I want, or use that time in some other way. Previously I’ve used my learning opportunities to expand my job market horizons. Right now I’m pretty happy where I am as a Software Engineer and I’m comfortable with the technologies that I use at work (although some I could improve on). What that means is that I don’t feel like I need to learn something new so that I can use it as a tool for a new position. I also feel that based upon my past experience I don’t want to just learn a new technology stack just to learn it. I’m confident enough now that if a side project comes up that I want to take on I can tackle it using a variety of tools.
So maybe what I’m saying is that I should just take all of my free time now and play computer games. I did just buy PlayerUnknown Battlegrounds and in the past few weeks I’ve played it … all of 30 minutes. In the background as I write this blog entry I have the original Star Trek series running. In the past few months I’ve learned very little and been distracted thinking about what to learn. In the process of over analyzing what to do I’ve accomplished nothing. I almost started writing a blog commenting system using AWS Lambda, but I’ve held off. That project would have been interesting and required learning a lot of technologies to a high level of competence, but, like other things I’ve wanted to learn I wouldn’t get to use them at work most likely. So I held off.
So today I’m not going to agonize over what to learn. Over the past few months of thinking about what I want to dive into I’ve just about come to a conclusion. So I’m going to do a little cleaning, go to the gym and relax.
Maybe I’ll even play a computer game.