It isn’t new that we live in a constantly changing world, especially when it comes to technology, every day new frameworks, applications and APIs comes up, making it really hard for developers to keep up with the market and all its emerging technologies, so what can we do to not be left behind in this ever-changing world?
Certainly, we cannot turn our back on new technology, one of the solutions adopted by many developers is to jump headfirst into every new framework that gets enough friction, that’s because they don’t want to be an outdated professional, they know their current job may not last forever, and also that there may be better ones out there, for this reasons they choose to be prepared for the market and every opportunity it holds, but the problem is that they put a lot of time and effort studying and learning new technology, when they finally get to an advanced level, something new emerges, and everything they just learned falls into disuse, consequently they have to learn everything again, and this cycle goes on forever.
People will argue that this is how it’s supposed to be, technology changes overtime and if you are a software developer you’ll have to find a way to change and evolve with it.
I totally agree, but the question is: How can developers deal better with change? How to smartly invest time and money learning something that will probably be out of the market in a few years?
Unfortunately there is no easy answer for that, undoubtedly you’ll go crazy if you try to be the guy who knows everything about every new framework, it’s simply too much to learn and the market won’t give you enough time. A better solution might be not to dive very deep into it, at least at first. Let’s say a new framework just came into the market, you shouldn’t get obsessed and spend all of your precious time learning it, at this moment you are not trying to be an expert yet. You can start by simply just being familiar with its main features, know how and when to use them, basically what you need is to have a good grasp of the main concepts and ideas, just enough for you to be able to show a great understanding about it, nothing too advanced for now.
After you reach that level you can stop spending time on it for the moment, keep this new framework on your pocket and go explore some others, when you come across an opportunity to use it (e.g., a new project or a new job offer) you will easily be able to do so, from that moment forward your hard work will start to pay off, then you can safely invest more time, go much deeper, get some experience and become an expert on that specific framework.
By doing that with every new framework that comes into view, or at least a great portion of them, you’ll not only be aware of everything that is happening but you’ll also have a great overview of what’s in the market. Each framework has its own advantages and disadvantages, and because you went over lots of them you’ll be capable of effectively picking the most convenient when starting a new project, of course there will be some that you’ll never going to use, probably because they didn’t fit on any of your projects, therefore you’ll never get to an advanced level at those, but that’s ok, you didn’t spend too much time on them anyway, the great thing is that most of your time was spent in those that were actually useful to you.
The truth is, one cannot be an expert in everything that comes up, more sophisticated frameworks are being created all the time, and newer ones will be even before you have a chance to learn the old ones. As we all know, technology moves fast, you must wisely choose what you’re going to learn, and once you do, if you effectively manage your time spending most of it on what really matter, I ensure you that you’ll be prepared for everything the market can throw at you.