Master each skill before moving on to the next shiny thing

Technology moves so fast, it’s easy to build a never-ending list of skills you need to learn to stay up to date as a software developer. Besides, learning a new technology from scratch is fun and rewarding since you’ve not seen its flaws yet, and you get to add a new notch to your belt. But, if you want to keep growing as a software developer and take on more challenging projects, accumulating knowledge about new programming languages, frameworks and technologies should not be handled like a game of Pokemon. The point is not to catch them all, put them on your LinkedIn profile and stash them away, never touching them again.

Software is valuable if it solves a problem for its users, and this is not related with the number of hot technologies you can cram in. You may not know everything you need to complete a particular project, but if the skills you do have are strong and you understand what you need, you can learn what’s missing. A good software developer is a good learner, since there will always be unexpected challenges and you can’t be ready for everything.

But, how to do avoid the trap of just skimming and build solid skills? A very important thing is to focus on mastering the subject you’re learning before moving on to a new skill. I’m not talking about understanding everything there is to know about a specific technology or framework, which could take a lifetime. But rather, you must understand what you’re learning before moving on to the next step. It’s not useful to gather a collection of half-baked skills and badly understood technologies. You want to have strong skills that you’re confident in. The sum of your skills is like a garden: if you’re only letting your flowers grow half-way before yanking them out and trying to grow something else, you’re going to have a pretty boring garden.

This approach doesn’t mean you must go in-depth with all the technologies that you’re touching. From time to time, I’ll spend some time with a new technology to understand what it’s doing and how it can be used. For example, I recently picked up a Coursera course about Bootstrap (Front-End Web UI Frameworks and Tools) to understand for which kinds of projects a client-side framework would be useful. I’m not aiming to be an expert, but I understood the parts of the course I completed well. The knowledge I have is complete in itself, but my level is that of a beginner. I wouldn’t do the same thing with many other frameworks for the sake of it, unless I needed to choose one for a project right now, but I know I could pick up the skill as needed.

So, the next time you pick up a new technology, make sure you’ve understood what you’re doing well before moving on. It’ll take longer for sure than just copy-pasting code and trying it out, but the technologies and skills you do learn will be a lot more useful. Having trouble making the skill stick? Maybe you should try teaching it!