Overwhelmed
I’ve been programming since I owned a C64. Simple programs. Nested if-else statements, gotos, copying those blocks of code out of magazines, nothing fancy. Then, in the early to mid 90s I decided to study Software Engineering at university and before I enrolled, I started learning C++ from a book.
At university the courses covered a range of technology and languages: C++, Haskell, SQL, and the general Software engineering tools like Z, UML, Rational Rose and its ilk.
Now it’s 20 years after my graduation and I’ve worked as a developer the whole time. My first job was using C. Then I moved to a new job where I used C++ again and started learning Python. These days my work time is divided up 90% Python, 5% C++, 5% whatever gets the job done. I’ve tried to be diligent and not age like a dusty fossil by keeping up with technology and reading about what’s new, what’s old, what’s good and what’s bad. I’ve dabbled with front-end, back-end, servers, web services, system tools, desktop applications, mobile applications, plugins, full-stack web sites, graphics, various languages, the list goes on.
Now I’m lost. I don’t know where to spend my time anymore. Should I be learning this, or that? Is this the best approach, or perhaps I should be doing it like this? Is this a new buzzword that will soon fall out of fashion, or will this new tech be useful? Sure I can make my own mind up on a lot of things, but there’s also a lot of good counter arguments to my thoughts, from some very smart people out there. Each day I read about a new framework, a new language, or why language X is better than language Y and then a few days later why language Y actually is better than X after all. Where does this end? It’s becoming too much and I’m losing interest and passion to do the things I used to enjoy, because I’m running out of steam.
In the days of old I would enjoy sitting down to solve some programming puzzles or work on some idea I had. These ideas could be anything from a simple website or tool to write, to a new library I wanted to play with, and it was all fun and educational for me. Recently though, I sit down in front of my screen and wonder what I am supposed to do. What framework should I try out? What project could I try in this new, cool language I learned about the other day? Should I be using this tool or that tool? Should I be practicing Go today, or perhaps start with Rust, maybe even look into this trendy ML thing? Well, while I decide, I’ll browse some videos, or play some games instead. Procrastination over education.
In the times when the internet was young and you had to manually connect to it with weird noises, there was only so much on offer. There were fewer people writing languages, libraries, tools, whatever. We now have a plethora of choice for whatever it is you want to do, and each one offers its own benefits and drawbacks. Which sounds great on paper, for sure. Who doesn’t want to pick the most suitable tool for themselves? No longer do I have to struggle with a graphics library I can’t really get on with, or write vanilla CSS to try and get my pages looking nice on the multitude of screen sizes that we now have to cater for. The reality is though that now we have to choose. Not just choose one from a few, but choose from a wealth of offerings.
So here I am, knowing what I know, and looking to further my knowledge and skills and also stay relevant, but unsure of how to proceed. Departing from the choice of libraries/tools, we also have a wealth of domains to become acquainted with: blockchain, ML, deep learning, AI, security, networking, microservices, distributed systems, DevOps, the list goes on. They are all interesting areas, but which is going to be most fun or bring the most gain? Job adverts requiring several of these skills at a level that isn’t just “hobby programming”.
To be honest, it’s exhausting, overwhelming, and depressing. I’d like to learn it all. I’d love to know more about everything, maybe there’s something I can make use of at work, or perhaps this will help with my career? Even if I manage to pick one, now I have numerous routes and sources of learning about it. On reflection, perhaps the problem lies with me. I need to decide what I would like to concentrate on and ignore that nagging feeling of “What if the alternative is better to learn?”.
At least these days I’ve managed to decisively pick pizza toppings or a flavour of crisps. Perhaps in another 10 years I’ll understand what I want to learn or specialise in. Having a choice is great and all, but having to make the choice isn’t fun.