NOTE: There is a newly updated version of this article available here - What Is The Best Skill For A Software Engineer To Have For The Next Decade?

Original question from Quora:

As a software engineer, what’s the best skill set to have for the next 5-10 years?

I mean in terms of what skills do we need to make sure to master to survive as software engineers.

For example, would artificial intelligence become a must-have at some point? Advanced mathematics?

My Answer:

There is only one best skill you need to have for the next 5–10 years and it isn’t technical at all.

Let me explain…

There once was a guy at a party talking to his friend who was an outstanding artist. He asked his friend, whose art was on display, “how do you make such great art?”

“I paint every day,” his friend answered.

Painting every day is the best skill you can have as a software engineer.

I don’t mean physically painting every day. What I mean is, you need to take focused time to practice your skills and learn something new every day.

The very best software developers I have ever met are constantly building something on the side, are always trying new languages, design ideas, and technologies. They are continuous learning machines.

They paint every day, metaphorically speaking. Just like the artist does.

If you have the skill, habit, or system of honing your craft and getting better every day, the small improvements add up to giant gains in knowledge, experience, and ability.

The field of software in particular is always changing and evolving, so the odds are you might need to learn a new language, framework, platform, or technology every decade or so just to have job opportunities available.

But, to say that one language, skill, framework, or platform is key is giving you bad advice. If you learn web stuff today and soon all the opportunity is in VR, well you might be out of luck because you put all your chips on the web.

I don’t bet on a technology or a skill to get me by. I have a system.

My system is to paint every day and improve my skills. Sometimes I am working on learning a language, framework, or platform. Sometimes it’s design, management, leadership, marketing, or other obscure things.

It all adds up to me being more valuable and employable over time.

Continuous self improvement and learning is the real skill to master. A particular technology or focus is just a detail.


P.S. Have you subscribed to Code Career Genius yet?