As developers, we are often overwhelmed with new technologies, APIs and tools. Deciphering what is worth learning and what isn't can actually be quite difficult. When there are countless directions you can go in but only limited time, how do you prioritize? In this post, I share some thoughts I jotted down while thinking about this topic. I'd love to hear how you decide what to learn next and how you make the time to do this.
There are variations of things I have to learn for work to the things I just want to learn because I am personally curious. In trying to lay out how to think about this, I came up with some "categories":
- For work:
- Things I have to learn that I also want to learn.
- Things I have to learn that I don't particularly want to learn
- Things that I should learn to make me better/more efficient at my job
- For career development:
- Things I need to learn to get my first/next job in my career development
- Things I want to learn because they may impact my career (ex. if I am looking to potentially move in a different direction - say from back end development to front end)
- Because I'm curious:
- Things I just want to learn because they seem interesting, but have no immediate relevance to my work or career development (this doesn't mean they may not eventually have relevance)
The things I have to learn for work obviously come first - focusing on the things I have to but also want to learn, since those will likely be the areas that I can have the most impact (obviously, I don't ignore the things I don't want to learn, but I think it is fair to give them less priority). There's also the impact of whether your work gives you time to focus on learning - whether they be things you have to learn or, hopefully, even the things you should explore to improve your job. As a general rule, work should provide the time to learn the things you have to learn at a minimum. This should go without saying, but sadly does not.
The areas of career development and "because I'm curious" often are the hardest simply as a factor of time. Personally, I tend to create "forcing factors" like blog posts or presentations that I commit to that help turn something I want to learn into something I have to learn. Since time is rarely immediately available for things like this, I also find it useful to keep a log of things that interest me. I do this by bookmarking the relevant URLs to things like a blog post or a GitHub repo in a special folder. Whenever I find the time to dedicate to learning something new, I go back to that folder.
Another tough aspect of all of this is deciding what is actually worth learning. We are bombarded with new tools and frameworks, and, especially if you follow social media, it can feel as if everyone in the world already knows and uses "technology X" except you. This can sometimes make it difficult to differentiate between the things you have to learn and the the things you want to learn out of FOMO. In my experience, you should beware of mistaking trends for something you have to learn and beware of social media/blog posts that try to tell you the things you "have to know."
I wish I could provide some definitive advice on what strategies work or don't but it's important to note that what works for me may not work for you. So, how do you decide what to focus on learning? I'd love to hear your strategies.