6 Essential Skills Every Successful Developer Needs to Have

Joe Eames
Thinkster.io
Published in
4 min readApr 10, 2020

A little while back on the DevEd podcast, we had an episode on the Essential Skills every developer needs to have. It was a really fun discussion but got me to thinking about this topic. Is there really a set of essential skills that every developer needs? No programming language is ubiquitous. Not everyone does Agile. Some devs work on teams, some work by themselves…so what ARE the essential skills that every developer needs?

Here is my list, based on over 20 years of professional experience as a developer, of the six essential skills every developer needs to have.

1. A Love of Learning and Exploration

This is perhaps my favorite item. It’s also fairly obvious. Things change. They change fast. You blink and the language you’re using is obsolete. The techniques you use are now replaced with something better (hehe, maybe), and the industry is already using new techniques to get stuff done. There’s a dark side to this. We stop using great tools just because there’s something new, but the new thing isn’t necessarily better. That happens and it is fun to point out how frequent people just jump on the “new hotness” train. But this is actually a byproduct of the underlying truth: development DOES move fast, and a lot of this is probably due to the fact that as a whole developers love new things and are building new tools all the time.

This is one of the beautiful aspects of development as an industry. Ultimately, what we build is tools. We can build tools for end users, and we can build tools for other developers. When we build them for other developers, then suddenly something like jQuery appears and the world suddenly changes. As developers, we are uniquely suited to scratch our own itches.

With so many people building new tools, and so many of those new tools being really cool and effective, things are just going to move fast. We have to be able to ride that wave. If you don’t enjoy the learning process, you’re going to have a tough time as a developer.

2. Vulnerability and Humility

This is an industry where nobody can know everything. And usually the time it takes to figure out the answer to one very specific problem is long. A great short circuit to this is to ask other developers for help and advice and follow what they say. Thinking you’re the only person with good ideas is a recipe to a career of fights and constant new jobs, usually, each time thinking how your former coworkers are all jerks…sadly the realization that the common element is you may never emerge.

3. A Hard Head

As a developer, one of the most important activities you can engage in is banging your head against a wall. No matter how many people on your team, no matter how many Q&A sites you know of, no matter how good your Google-Fu is, there will be times where you will face a problem to which nobody else has the solution. It’s solvable, but you’ll have to be the one to do it. And you’re going to have to just sit and bang your head against the wall for some number of hours before you finally solve it. As a developer, you will sometimes have to face what seems like an intractable problem and just work on it until you finally get it figured out. The good thing is this is oftentimes some of the best learning you can do.

4. Unit Testing and Automated Testing

This is the only technical skill I’m going to list. This is a special love of mine. Much of my career has been built on the art of automated testing. Developers need to test. They need to be able to write automated tests. And they need to be able to write good automated tests. If you’ve been ignoring this skill, reconsider its priority in your learning plan. It’s one of those skills that doesn’t decay with age. What you learn today will still be applicable twenty years from now.

5. Ability to Work with Others

Even a solo developer has to interface with customers, collaborators, bosses, or something like that. Now you may be thinking of someone you know who is abrasive and is terrible to work with yet still seems to have a successful development career. No matter what, if that person had better interpersonal skills, their career would be even more stellar.

Then there’s your emotional health to consider. Humans are hard-wired to connect. Interacting with people you despise all day is actually far more harmful to you than it is to them. Learning to love and empathize will lead to far more happiness than making good money and solving interesting problems. Just like how yoga will make you happier in the long run than an opioid habit.

6. Ability to get Absorbed in the Details

Development is the process of building something. In this case it’s not the overall idea that is unique to developers. It’s not knowing when things look right. It’s the ability to translate an idea into working code, whether that’s assembly or Rust or CSS or Scratch. The details of that translation are the thing that determines whether or not your product can successfully do what it’s supposed to do. Getting absorbed in those details, juggling them all in your head, learning how to put some of them aside to leave room for the ones you’re focusing on right now, that is a skill every developer needs to have and learn to master. If you can’t sit down and think through the details of an implementation you will forever be trying to get the product built correctly.

Those are my six essential skills every developer must have. What universal skills do you think I missed?

We have lots of great courses like our Deploying Apps to Netlify course and our 100 Algorithms challenge.

And don’t forget to check out all our awesome courses on JavaScript, Node, React, Angular, Vue, Docker, etc.

Happy Coding!

Enjoy this discussion? Sign up for our newsletter here.

Visit Us: thinkster.io | Facebook: @gothinkster | Twitter: @GoThinkster

--

--

Joe Eames
Thinkster.io

Mormon, Christian, Father, CEO of Thinkster.io, Organizer of @ngconf, @frameworksummit, React Conf. Front end developer, and Software Craftsmanship Evangelist.