The web is filled with self-help articles showcasing titles like “How to become a senior software engineer” or “Top 10 technologies you must know in 2020”. There are literally thousands of them.
While many of these articles contain helpful advice, I believe all of them can be distilled into a single lesson:
The single most important thing you can learn as a software engineer is to learn how to learn.
Learning how to learn is a meta-skill, which means it’s an ability that will enable you to grow in more than just one area. To name a few examples:
Learning React is a skill. Learning how to quickly pick up new UI frameworks and libraries is a meta-skill.
Learning to communicate effectively with your manager and peers is a skill. Learning how to best develop your emotional intelligence is a meta-skill.
So, how do you learn best? Yes, you.
Do you learn from reading articles online? Do you go old-school and read physical copies of actual programming textbooks? Maybe you even spend hours scouring pages of documentation from W3C or MDN.
Do you watch videos online? Maybe you have a favorite YouTube channel or an account on a learning platform like Pluralsight, LinkedIn Learning, or Egghead.
Do you learn by doing? Do you enjoy building pet projects just to try out a new language, library, or framework? Do you practice with coding exercises on a platform like HackerRank or Codewars?
Do you learn from in-person presentations? Do you attend local meetups and conferences? Does your company have lunch-and-learn presentations where you can learn from your co-workers?
I personally use a combination of resources. I read a lot, write a lot, watch video courses, and build side projects. In the end though, it really doesn’t matter how you approach learning. What matters is that you find what works for you.
If you can master the meta-skill of learning how to learn, the world is full of possibilities. Not only can you pick up new skills, you can do so efficiently.
Need to learn a new programming language? No problem — you know how to understand the basic concepts and quirks of the language quickly.
Starting at a new company with an unfamiliar codebase? No problem — you know what you need to do to get up to speed and hit the ground running.
Looking for a career change? No problem — you know how to develop new abilities and teach yourself the material and skillset you need.
Learn how to learn. Everything else will follow.