DEV Community

Cover image for How To Learn New Skills As A Developer: A Framework
Simon Barker
Simon Barker

Posted on • Originally published at careerswitchtocoding.com

How To Learn New Skills As A Developer: A Framework

A conversation in my favourite developer Slack the other day inspired this post šŸ˜€

Learning new skills as a developer is a key skill to have, and while you are a junior developer itā€™s a great time to ā€œlearn how to learnā€ new skills. Learning skills like:

  • new programming languages
  • new frameworks
  • new technologies

is something you will need to do on a regular basis throughout your software developer career. Being able to learn new skills will help unlock pay rises, promotions and work on exciting projects.

The problem is that you canā€™t always take the same approach you did when you first learnt to code. Learning to code is a very ā€œbottom upā€ learning activity. You need to learn fundamental concepts and spend a long time working though difficult and challenging things. This is why learning to code is So. Time. Consuming. Taking many months or even years.

You canā€™t set aside that amount of time whenever you need to learn a new framework or programming language. You need a quicker way to learn, something called ā€œtop downā€ learning. This is where you skim a topic to get a feel for it and then dive into the specific areas you need to learn whilst also working with it in an active project.

To achieve this, you need a framework!

This framework is designed to help you learn new software developer skills, it is not designed to help you learn how to code. If you donā€™t yet know how to code then you need a different approach to actually learn how to code.

Learn new skills framework

Hereā€™s a tried and tested way for software developers to learn new skills:

  1. Find a video explaining the concept.
  2. Go through it at 2x speed to understand the broad 50,000 ft view. Take notes on things you donā€™t understand and draw parallels to things you do understand from previous learnings.
  3. Take a look at the docs and skim through those, seeing if thereā€™s any deviation from the video to make sure the video you watched was accurate.
  4. Now that you have an all encompassing view of the subject, with notes about things you donā€™t understand, you can start diving into the subtopics until youā€™re comfortable with your level of understanding.
  5. Take as much or as little time as you need to at this stage. Dive into the theory or reasoning behind why choices are made to the level that you feel you need. If you are only lightly working with something you may not need to go too deep, but if the skill is going make up a core part of your work then taking the time to go deeper, and understand the fundamentals is important.
  6. Start to build something as early as possible, if they have a quick start project then spin that up. If you have a project you have inherited from another developer then start poking around with that by changing things and seeing what breaks. Start to mesh the theory you are learning, with the practical applications of the code you have in front of you.
  7. As you start to gain more comfort with the project and the code you are dealing with, you can determine the best way to be guided. You can either methodically work through the documentation/learning plan or you can be guided by the project you are making and problems as they arise.

If you get stuck learning a new software developer skill

If you get stuck when learning a new software skill or feel like you arenā€™t making any progress, then donā€™t force it. Sometimes you need to switch learning paths and have another go. This is perfectly natural so donā€™t let it demotivate you.

When learning a really big topic, or something quite different, then taking a more foundational approach can be quicker in the long run. For instance, if you have learnt JavaScript and suddenly find yourself needing to learn Rust, then a top down approach is going to be challenging because there are so many new concepts in learning Rust that you just wonā€™t have covered in with JavaScript.

The trick is knowing if you are making progress or if you are spinning your wheels. This is why itā€™s important to have a project in active development when learning a new software developer skill. That way you can see the progress you are making and avoid getting stuck in tutorial hell instead of actually learning a new skill as a software developer.

Get more developer career advice like this by joining my mailing list at Career Switch To Coding.

Finally, A special thanks to Sean for providing the inspiration to this post, heā€™s awesome and you should go follow him on Twitter.

Top comments (0)