The Problem
More often than not, I’ve found myself staring at my massive list of bookmarks names “Things to learn” without knowing what to hack on next. Lately, this has been on what new language to hack around with and to be honest, it’s no fun being that overwhelmed all the time.
The best and the worst part of Software Engineering is that there’s always something new to make, learn or build, so how do I pick what to learn and what to build?
The Solution?
The solution that works for me rather simple: flirt, don’t commit :D
The main cause of being overwhelmed before starting to learn something is at most times the fear of committing to something and realising later that it’s not something you particularly enjoy and want to jump out of it.
The best way to beat this fear, funnily, is to not commit. Flirting with something you want to hang out with for a long time is almost always the first thing you can do to check if it's the right path for you to go down on. (I also call this the FAFO principle)
How do you flirt with something you want to learn? make something with it that is intermediately complex and try and navigate your way around it using help from the internet. It's almost always the best way to understand the intricate workings of something and you'll almost always end up learning far more than you would following a guided tutorial (in my experience at least)
One way that I've personally used this is to hack around with Go Lang where I built out a couple small apps, one was a CLI app that shows your github contribution graph on your terminal and another was a very simple REST endpoint that adds two numbers you provide it.
Final Thoughts
Once you've built something out, you should have a fair idea about how attracted you are to this newfound skill of yours and you can decide if you want to delve deeper into it! Keep in mind though that just because you're finding it exciting right now, does not mean that you should give it 100% of your time and commitment yet, that's a step you can take as you build more with what you've learnt, incrementally.
Summarising, try to play around with new concepts, put yourself in situations from which you need to find a way out, solve the problem you just put yourself in using what you want to learn and you'll eventually end up learning a lot more than you had planned for!