There’s always a constant stream of new frameworks and libraries being released. New ways to do things. New “future of the web” technologies.
It’s easy to be overwhelmed by the volume of options to choose from and it’s a full time job just to keep up. Everybody in the industry has to deal with it and I see endless questions asking which technologies to learn or how to cope with the sheer amount of choice.
These sorts of questions make me realise I’ve got a good grasp on things - I’m up to date with the industry, happy with my tech stack, and working on projects that excite me. So I’m going to show you my system for dealing with the endless onslaught of things you just have to learn.
Set goals to guide everything you do
The first and most important step is to define goals for your learning, career, and professional development. The goals you set will be the reason for everything you decide to learn and use. What drives you? What are you interested in? What are you trying to achieve?
Do you want to start your own SaaS or website development business? Do you want to land your first developer job? Do you want to contribute to open source projects?
Be honest with yourself. You don’t have to share your goals or justify them to anybody. Remember that we’re all different and all have different goals. What makes me tick might not make you tick.
For example, my primary goal is to build a SaaS business. I want to earn enough through the business to sustain my lifestyle and enable me to work on it full time. At the moment I’m not looking to change the world or work at a FAANG company. I don’t care about building something using the latest cutting edge technology and I don’t want to pioneer anything or build/maintain open source software. I want to get from nothing, to an MVP, to paying customers as fast as possible. So my tech stack, the tools I use, and what I spend time learning are all carefully chosen to help me focus on just that.
Set as many goals as you’d like, but the more goals you set the less time you’ll have to dedicate to each. I have one long term goal that I’m continually working towards, and several shorter term goals that are more focused on my learning and where I’d like to take it.
Remember: you can revisit your goals as often as you’d like. You might achieve a goal or realise it’s not truly what you want part way through. People change, and so will the things you aspire towards.
Don’t blindly buy into the latest tech craze
What on earth is Deno? I deno 🤷♂️
Being more serious, it turns out that I don’t care. Deno is pretty much Node.js written in Rust instead of C++, with a bigger focus on security. Unlike a lot of the suggestions I’ve seen discussed online, it certainly isn’t replacing Node.js, at least not in the foreseeable future. It’s very young, with next to no ecosystem, and I haven’t seen it used in production outside of hobby or non-critical sites.
Instead of jumping into Deno and using it myself, I read a Medium article about it, realised it will have no impact on anything I’m aiming to achieve, and moved on. If I notice it gaining traction again in the future I’ll read another article and re-evaluate things. Otherwise, the world of Deno gets no more of my time or attention.
Time is a limited resource and how you spend it is incredibly important. Be assertive. A short article was enough to learn the basics of Deno and realise I didn’t need to stress about missing “the next big thing” when I saw endless articles and tweets popping up about it.
For the majority of things, especially new things, take just five minutes to read up on it. You can search for an article, check out the readme on Github, or scan through some demo code. After you’re done, make a decision. It either has the potential to positively impact your goals or doesn’t. If you’re unsure, maybe spend a little more time to fully understand it. Don’t be afraid to let stuff go for a bit though; it’ll pop back onto your radar in the future.
As I’ve already said above, be assertive. With some things I spend even less time on them: why bother learning about Kubernetes when my £5/m DigitalOcean droplet hasn’t broken a sweat yet?
These examples are all heavily focused on my own goals, so how about a couple of different ones?
Are you focusing solely on becoming a known name in the Vue community? You’re probably focusing on something like tool creation, repo contributions, or creating educational material? Well why bother with anything ASP.net related? And you probably don’t have to care that a new version of WordPress was just released.
Do follow the trends that suit you
Not every trend is going to be bad or unsuitable for your goals.
I hated using CSS frameworks like Bootstrap. They were very restrictive and I spent more time fighting their styling than I did adding my own. With the growing browser support of things like Flexbox at the time, I eventually stopped using them, preferring to build everything from scratch. And over time I was drawn to Tailwind - which, as you can see by the source code of this site, suits how I like to work and has sped things up dramatically.
You could make a similar “future of CSS” argument about Tailwind as I made about Deno and Node.js; so what’s the difference?
The difference is that Deno will have no impact on my goals and reading a short article puts it firmly in my unimportant pile. Tailwind, however, stood out as a way to rapidly build user interfaces from the moment I saw it. I was concerned about it being messy and difficult to maintain, so I watched it develop until well after version 1.0.0 was released. Eventually, the number of times I saw people say “it’s not an issue, you just have to try it” combined with the growing list of features and supported CSS rules was enough for me to check it out properly and start to use it on a daily basis.
I might have been wrong, but there was enough evidence to tell me I needed to give it a go. This time it worked out, but next time it might not. That’s why I slowly give something more of my time when it ticks all the right boxes.
Stay up to date as efficiently as possible
Spend some time coming up with a system for learning which suits you. As with your goals, this will be different for everyone and depend a lot on how you like to learn. Without getting bogged down in the pros/cons/validity of it: I’d recommend a VAK questionnaire to help guide you with this. It can give you a good idea of how you prefer to learn if you weren’t already sure, and that in turn can help you find the best learning resources suited to you.
As we’ve already covered, I firmly believe in spending just five minutes reading about something to decide if it will have a positive impact on your goals. This is how you should filter the important and not-so-important things while making sure you retain a basic understanding of it all. Don’t assume something new isn’t relevant, read the basics and make an informed decision.
Another good way to help filter things is to follow the key players for your tech choices on Twitter. You’ll find they do a lot of work filtering stuff for you. Seeing people who use the same technologies as you all sharing/talking about something new is a good indicator that you should check it out.
As well as filtering new things, you need to continually learn and grow with your current tech stack. I use Laracasts or find a YouTube series and watch a video or two, often on 1.5x speed, whenever I get 20 minutes. I’ll follow along too so that I can practice things and cement my understanding. I usually watch a handful of videos each week this way and I’ve found it to be well balanced with filtering new things and putting what I learn into action.
If you can afford it or if your employer provides one, set a budget for spending on course and other learning materials. You can learn everything you need for free, but there’s a reason courses/books cost money - they’re condensed and (usually) well researched products that fast-track your learning.
Don’t worry if you have no budget though - as I said above, you can learn everything you need for free and often the best learning resources are YouTube channels, small blogs, and Twitter accounts. It can take a bit of searching to find things though, so try using Million Short to find smaller blogs and learning resources, and ask around online to find what others use on a regular basis.
Remember that just coding and learning new technologies isn’t everything there is to being successful. There’s a lot of other important skills you might need to know - SEO, quality checking, providing good customer service, quoting accurately for work, sales and marketing, etc.
Don’t apologise for making choices that suit you
There will always be people who trash things on the internet. Often these same people will also trash and belittle you for liking or using something they don’t.
Don’t let them. You have your goals clearly defined. You have a system in place to filter new stuff. You are continually learning and improving on things that impact your goals. So long as you’re making progress, don’t let anyone put you down and make you doubt your decisions. Engage people in discussion and accept constructive criticism or suggestions, but don’t feed the trolls.
I use PHP and Laravel daily, both of which get a whole lot of hate thrown their way. I’ve seen people share their sympathies when someone says they use PHP instead of Java, Python, or ASP.NET, because they truly believe PHP and its users are inferior. I’ve read insults people have directed to the lead developer of Laravel because he built something which doesn’t conform to their programming beliefs.
I couldn’t care less about what those people think. And neither should you.
Don’t feel bad about your choices just because some people on the internet think you should.
Key take aways and next actions
If you read this article because you struggle with staying up to date, or if anything in this article resonated with you, then something in your current approach isn’t working. Don’t finish reading this and then change nothing.
Try making just one change: decide your most important goal, and keep it in mind as you continue with your learning. Over time you’ll start to automatically relate everything back to it, and become more comfortable letting less relevant technologies pass by.
Feel free to contact me on Twitter if you’d like to discuss things more, or if you’ve found a different approach that works well for you.