This post was created by Codeweavers Software Developer Jon Hilton and the original source of this post is from Jon's website. It can be found here - jonhilton.net/2016/11/24/not-sure-what-to-learn-next
Another day, another framework. Should you learn NET or .NET Core, Angular 2 or React, ASP.NET or ASP.NET Core?
What about those underlying principles? How are your design patterns and SOLID principles?
One thing you’re not short on is a choice but a choice has a nasty side effect, it can stop you choosing anything.
Don’t let this stop you before you’ve even got started.
It sounds obvious, but if you want to try your hand at something new you need to choose where to start; you need to decide what to learn first.
Without a concrete starting point, you’ll find yourself procrastinating; convincing yourself that there’s too much choice; that you should just give up and watch every episode of Westworld instead.
Remember, this isn’t a final binding commitment. You aren’t choosing the technology you’re going to work on for the next 5 years, just the technology you want to learn next.
List every technology/concept you could possibly learn (or would like to).
Avoid filtering at this point, just get it all written down somewhere.
Your brain will probably try to stop you putting some things down because they’re “stupid” or far too difficult for you to learn. This is the time to tell your brain to back off and let you write your list.
Now you’ll want to come up with filters to take this big mess of options and whittle it down to one or two.
What criteria should you use? Well that’s up to you, here are some ideas.
You don’t need to use these but they might help if you can’t think of anything else.
Come up with your own list of criteria that make sense to you in your current situation.
From lots of choices to just one or two. Take everything on your list and apply your criteria. If it matches the criteria keep it, otherwise ditch it (remember, you can always come back to it later).
Hopefully, this has narrowed your list down to a few options.
At this point, you’ll probably have a gut instinct for what you want to learn first but if not remember this; if you don’t have any proof your approach is better than random then just use random!
Whatever you do, don’t let indecision stop you from taking any action at all. You started down this path because you wanted to choose a new technology/concept to learn. You can always change your mind later and try something else.
Hopefully, you’ve made a decision (feels good right?). You have a technology or concept you want to learn.
Now comes the fun part. Allocate some regular time, pick a side project to build and get learning.
Once you’ve spent a bit of time learning your chosen technology there’s really nothing stopping you from picking up something else.
You don’t need to become an expert to be able to decide when it makes sense to use a technology/approach for a project (and crucially when it doesn’t), a little experience goes a long way.