What is the next skill you should learn as a software developer?

In my previous post, I wrote about mapping out your current skills to know where you stand and take control of your learning. But knowing where you are is a lot easier that knowing what to learn next.

Choosing what to learn next requires gazing in your crystal ball to guess if the technologies you want to learn will stay relevant. With the number of frameworks and tools that are churning out at a furious pace, you don’t want to guess wrong and have to start over in a few years.

Fortunately, you can put all the chances on your side and reduce the amount of guesswork needed. First, you need to focus on skills that will always stay useful and that you can build on. If you’re only learning just-in-time with no thoughts for the future, your skills won’t form a coherent whole.

Also, you need to have an idea of where you wish to be in the next decade, even if you will probably be wrong to some degree. You’re still going to be working in the next decade, right? It’s best to plan for it and take control since the time will pass anyway.

Back to your skills map

We’re going to start a bucket list of skills and concepts you wish to learn to help you figure out the best way to go. We’re only brainstorming at this stage: writing down a skill on your list is not an obligation to learn it. You’ll evaluate the ideas on your list later.

Going back to the map of your current skills, you can already identify some gaps that must be filled using your own experience and knowledge. Write those down on the top of your list. I’m sure there are also some skills you wish you knew, even if they’re not relevant to you current job or skills: write those down too.

Make sure you don’t forget to write down skills that are always valuable regardless of the tech stack used: patterns and architecture, programming languages, low-level concepts, project and time management, speaking, writing, and tools to help you learn how to learn.

Here’s my own bucket list of prospective skills:

SkillsToLearn

You’ll always be adding new items on this list, so don’t worry about it being 100% complete.

Managing the bucket list

Now that you have a list of prospective skills to learn, how to you manage it? The same way you created your skills map: you first must have strong core skills that will serve your long-term goals before spreading out to other kind of skills.

If you’re starting out or moving to a new specialization, rank the skills on your list in order of importance to the best of your knowledge, starting out with core skills. Once you’ve learned more and grown your knowledge of your industry, you can rank the skills on your bucket list more accurately. Also, don’t forget to update your map with your newest skills!

But how do you know what skills are important and will be the most productive use of your time? You must take the pulse of your industry on a regular basis to know where it’s going and understand how you fit in it.

It doesn’t need to take ages: a few hours a month is enough to get a decent handle on what’s going on. Here are some of my favorite strategies: as a bonus, they will help you find skills you didn’t think about and that will be worth adding to your bucket list.

  • Speak to other developers at user groups,
  • Go to a general conference in your field,
  • Read blogs and listen to podcasts,
  • Browse at the library, on Amazon or on training site such as Treehouse or Pluralsight,
  • Stay curious!

Beyond the bucket list

When your core skills are strong, you can choose more freely and rank skills on your list based on what interest you and has the most long-term value. Unless you’ve chosen to learn a skill that’s totally obsolete, there is no wrong answer, and no one path to mastery as a software developer.

Learning cannot be forced: you need to be mindful and focused when you’re learning, so choosing skills to learn based only on their value on the market and the latest “must learn” fad will burn you out in the long term. Once you’re strong at learning and have good core skills, picking up a new framework or API will be something trivial that can be done as needed anymay. You’re better off focusing on skills that are valuable to you and that will help your grow as a software developer.

In most cases, I would rather learn skills that make all my other skills stronger such as testing and JavaScript patterns, and soft skills such as blogging, but I’ll throw in an unrelated skill from time to time to add some perspective. Another good approach is to invest in a strong combination of skills instead of focusing only on programming. For example, if you have a strong understanding of finance, security, big data or mathematic in addition to your programming skills, you can go a lot farther in those specialized fields.

In the next post, I’ll conclude this series by explaining how to drill down on a particular skill and outline a plan to learn it.