How to balance the range of technologies you learn versus the depth at which you learn them?

KG.codes · 1 minute read ·     
⁣As a software developer, how do you balance the range of technologies you learn, versus the depth at which you learn them?

Breadth of coding knowledge versus depth of coding expertise

If you try to learn too many different things, you can end up will a shallow level of knowledge, find it all hard to retain, and be overwhelmed with keeping up with everything.
On the other hand, if you try to become a complete master in every single thing you learn, you may find it hard to see the bigger picture, or be pigeonholed into being a "one-trick pony".

Breadth of coding knowledge versus depth of coding expertise

My approach: the “on-demand” approach.


Focus on learning only what you need to solve a development problem; and whether that’s learning a number of things at a high level, or learning something very deeply.

Focus more on solving problems: what all do you need to learn to solve the problem(s) in front of you? How deeply do you need to learn each?

Approach to learning new technologies

Example problems:


Getting a React developer job: you may want to learn JavaScript and React very deeply, but only need to learn enough about the server-side tech to interface with it for data syncing.
Implement a Laravel Web API: you may want to learn PHP and Laravel very deeply, but only need to learn enough about the server OSes to deploy the web API on them.

Solving problems with code and when to learn deeply

By focusing on learning to solve problems, you’ll be able to learn critical programming concepts, design patterns, and paradigms shared between the different technologies.
You’ll begin to treat languages/technologies as tools, with your breadth of knowledge be able to pick out when you need to use them, and know when it’s worth learning them at a deeper level.

Learning to solve problems with code

⁉️ Any tips on how/when to learn coding tech with breadth versus depth?

Want to share this?