DEV Community

Cover image for The Most Important Non-Programming Skills for Programmers

The Most Important Non-Programming Skills for Programmers

Ali Spittel on October 15, 2018

When I think about who I would like to work with as a programmer, I think so much more about non-technical skills than technical skills that make s...
Collapse
 
chiangs profile image
Stephen Chiang

I think the one thing missing from your list is curiosity. For me, it's really important my teammate is curious about our work and is proactive in contributing to the team's overall proficiency. Other than that you've pretty much hit every criteria that goes through my head when evaluating a potential teammate.

Collapse
 
mickmister profile image
Michael Kochell • Edited

I feel the same way. I believe that interest and perseverance are the two most important things to becoming good at anything. As long as you are interested, you can continue to learn, and not just go through the motions while learning. It provides an attitude to always challenge yourself and continually become better and better as you learn. It's what keeps it on your mind when you're AFK.

Collapse
 
aspittel profile image
Ali Spittel • Edited

Oh, I really really like that one -- it's so important to just try things and keep growing as a developer.

Collapse
 
faridos profile image
faridos • Edited

Thank you so much for this awesome article.. I'm with stephen on this,curiosity is part of this list.
As an immigrant software engineer, i saw that team members suffer the most from the lack of communication skills,especially when it comes to a foreign developers dealing with each others.

Collapse
 
rdewolff profile image
Rom

Yes, curiosity++!

Collapse
 
thebouv profile image
Anthony Bouvier

Great write-up, I was just thinking about this this morning. There's all this push for technical chops, but that can only take you so far. These soft skills help you as a developer, but they also set you apart from others if you do them well. That's how you move beyond just being the geek-with-most-tech-skills.

Collapse
 
aspittel profile image
Ali Spittel

Thank you so much. Totally agree!

 
lkopacz profile image
Lindsey Kopacz

Not necessarily. When I was more junior I had a few people try to mentor me and with good intention. They tried. But it's really hard when they don't have the good communication skills to explain things and it can make the mentee feel stupid if they don't understand their way of speaking.

 
thebouv profile image
Anthony Bouvier

I disagree that pure technical skill and willingness to share knowledge makes someone a great mentor alone. I truly do feel, as both a mentor and mentee, that having at least adequate empathy, patience, creativity, and other soft skills mentioned in the article make for a better mentor.

Mentor/mentee is a relationship where both parties can adapt and grow to be better.

Collapse
 
okdewit profile image
Orian de Wit

Some people are generalists, others are specialists. But no one reaches seniority in everything — so you need teams to build meaningful products. Social skills are the glue, the major prerequisite for flourishing in a team. Even as a solo dev you'll eventually need to build relations with customers or investors.

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
lkopacz profile image
Lindsey Kopacz

It doesn't make an attack. It goes through an empathy exercise, talks about the research of diverse teams, and overall talks about the humanness of empathy.

Before tone policing Ali, who I believe already did a very good job writing very empathetically about touchy issues, I think you should double check why you feel this way. She never made blanket statements about anyone, instead used an empathy exercise to demonstrate how it feels to be left out.

Collapse
 
Sloan, the sloth mascot
Comment deleted
 
aspittel profile image
Ali Spittel

Historically the tech industry has left a lot of people "outside of the circle", I think everybody can contribute to making it more inclusive.

That being said, implicit bias is something that everyone possesses, and it causes us to usually favor people like ourselves. Being aware of that and trying to overcome it is something that can definitely help us be better people and programmers.

Collapse
 
codingmindfully profile image
Daragh Byrne

What a great list! I'm lucky enough to work for a company that hires for empathy. And if you stay in the coding game long enough, you're going to have to become humble, or very, very frustrated!

One thing that complements and perhaps even summarises the above is Emotional Intelligence. Having an awareness of your own emotional state, that of others, and the subtle interactions between each. It's a total game changer, and for many of us, learnable!

Thanks for the read :)

Collapse
 
andres_uris profile image
Andrés Uris

I read every word of this wonderful master piece. Thank you!

You are right about that referencing these skills like "soft skills" seems that it minimizes their value and impact. But the truth is that these skills are really important and essential to grow in your life and work.

Collapse
 
aspittel profile image
Ali Spittel

Awesome, thank you so much!

Collapse
 
skeptycal profile image
Michael Treanor

This is one of the best lists I have seen. It really takes you back to the big picture. These are the things that make or break a career ... a relationship ... a life. I'm so glad you wrote this and shared it.

Yes, Curiosity would be a good thing to add, although I think It would end up being implied if the Problem Solving section wasn't cut short. Maybe somebody can expand on this idea and do some more 'big picture' writing!

Collapse
 
shamar profile image
Giacomo Tesio • Edited

I agree with most of what you say here and I really liked the section about Inclusiveness.

The game you describe is fantastic, I think I'll use it! maybe with a final reconciliation phase where people out are permitted to go back in the circle, because without trust in a possible forgive, fear can beat any will to include.

There are other sections and considerations that I liked (the last paragraph on Collaboration shows scars that I know very well ;-) and others that I've found a little... cliché, but overall the article is good.

I have however a couple of serious objections.

On the "soft skill" naming

I don't think you got why people call these as "soft" skills for programmers.

There are two main reasons:

  • they are human virtues (with the exception of "Problem Solving") that are not important to programmers in a team more than they are to citizens in a Democracy
  • on the other hand, giving them the status of soft programmer's skills they give employers and managers an excuse to lower the wage of people who lack some of them (nobody is perfect!) without facing the criticism they don't really hire for them (or even have such virtues themselves).

On "Empathy"

Seen from an Italian, the focus on "Empathy" in IT both naive and very US-centric.

For example, if you were Italian, I could comment here "Balle." (which is a Italian equivalent to "Bullshit."), without being accused to be harsh, un-emphatic or sexist.

These days US developers seem very focused to impose everybody certain workspace-like "Code of Conducts" that are designed to help managers in their work of controlling the workers, but they don't consider how their mindset might clash with the rest of the world.

The world is huge, and what an Italian feels like empathic might looks as intrusive to an American. OTOH what an American feels like empathic would be felt as hypocrite by an Italian.

So much that when I read a tirade about empathy in IT, my first reaction is to ask myself: "What the author is trying to cover?"

In this case, many of the things you think should be addressed through empathy are instead Ethical issues.

That is: we always follow an Ethics in our work.

Often (especially in the Silicon Valley) it is the Ethics of Capitalism, completely focused on making money (and please the Government, whoever it represent), but people following it prefer to argue that Ethics is not relevant to programming at all (except when talking about the need of delegating Ethics to AI).

Other people follow different Ethics.

But the problem with Ethics is that it drives Politics, and people are scared by the complexity of Politics (which require caring about the Polis, about a lot of other people lives, and thus optimizing for multidimensional goals instead of simply maximizing profit).

Thus they resort to surrogates (such as empathy) to solve the problems that the lack of a richer Ethics and a serious responsibility of developers for the Political effects of their software would pose.

On Community Participation

You state:

The community is so important for programming -- conferences, blog posts, social media, and meetups are important for learning and growing. Also, open source software and the communities that surround them are the lifeblood of this industry.

Now, I agree that community (that is from Common, which derives from the latin cum - munis, co-obliged, mutually bound) is very important to our species. Aristotle used to say that humans are "social animals" for a reason.

BUT what you are talking about is not really community, but marketing.

It's not by chance that you talk in term of Open Source instead of Free Software!

Hackers' communities don't do much conferences and workshops, we don't care about "social media" (that we often dismiss for their anti-social behaviours on a scale, see the lack of Ethics discussed above), because we don't give a shit about our perception from outside: we just follow our Curiosity.

In conclusion

Thanks for sharing your perspective, I really appreciated it.

That's why, as a hacker and a European, I felt obliged to share a different one that might help you understand why some people are not conforming to your expectations.

The world outside the States is huge, varied and wonderful! ;-)

Collapse
 
txai profile image
Txai

A truly great article, Ali. I think the key word here, like you said is diversity. Not in the common sense of non-discrimination (this is important too), but as a broader notion that every person has unique skills and characteristics that brings some value to the team: there are the ones that get things done, the ones that are good at solving problems, the ones that are better at communicating with the client(s), etc. Knowing the value of each member of your team is what make the better teams

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
sloan profile image
Sloan the DEV Moderator

We’ve removed your comments in this thread because they were not constructive. While maintaining a differing viewpoint is of course acceptable, it’s important that all community members remain respectful. Please review our code of conduct and send us an email to yo@dev.to with any questions.

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
rmachin profile image
Raphael Machin

One of the last book I read “The magic of thinking big” help me a lot developing my communication skills and the way you should think and talk to people, thank you for this great article Ali. I love it.

Collapse
 
vdedodev profile image
Vincent Dedo

Interesting read, the soft skills in tech aren't discussed as much. I think my list of key skills here would be: problem solving (definitely the top skill here), communication, adaptability and humility. The nice thing about these kind of skills is that they apply whatever the tech stack and even in other professions, I would like to see more people focusing on those. One that stood out to me was inclusiveness, I don't see why it's here and that kind of idea was pushed on people in my last job so it's something I now cringe at.

Collapse
 
blantsimonetti profile image
Blant Simonetti

awesome article. I liked it very much. really clear and beautifully written

Collapse
 
thebouv profile image
Anthony Bouvier

If you are only that, and you lack non-tech skills, well if you're happy with that that's great!

What I strive for is to be that PLUS have the qualities mentioned in the article. That way you're also a great mentor for other developers.

Collapse
 
burlresearch profile image
Scott Burlington

You certainly laid down the 7-deadly sins of non-programming, but I think you skipped #1 - Writing Proposals!

Coding the thing for me is the reward at the end of a long train of non-programming BS. Convincing the client, building a tech spec, planning the work cycle - this can all add up to $0 if you lose the proposal. It can be far worse if you win, and plan it wrong. And, though it's like problem solving, every step seems painful to me.

A good proposal will

  1. win the work
  2. lay down the right path for design + development
  3. be backed by a business model that makes sense

This is certainly the most important thing. If you want to survive out there.

Collapse
 
saint4eva profile image
saint4eva

Good article. Thank you.

Collapse
 
niloufarmp profile image
Niloufar Mazloumpour

I really loved your article. I am totally agree that these skills are very important for anyone to become a successful team player. I hope job interviewers do focus on these skills rather than routine core language questions which I believe does not guarantee being a good programmer.

Collapse
 
robertlj profile image
RobertLJ

This was a fantastic post!!!! Thank you for elegantly articulating each of these non-technical skills.

Collapse
 
darkain profile image
Vincent Milum Jr

What about stubbornness? That is my #1 alternate skill! Why spend 5 minutes working around a symptom when I can spend 5 hours or 5 days solving the underlying problem!? This would be me continuously! But in the end, quality is significantly higher. :)

Collapse
 
nickhiebertdev profile image
Nick Hiebert

Great post, Ali!

During the read I found myself nodding my head agreeing with mostly everything you mentioned in the post. Patience, empathy, adaptability, confidence, humility, creativity, inclusiveness and so on. I find myself doing these things consistently.

Collapse
 
azphillipse profile image
azphillipse • Edited

Good morning Ali,

I loved your article and the passion that you put out there for others to read on how people should be treated in any job. As a Former production manager turned SEO specialist and excited to learn more on how to code. I learned from first hand how people get into a hurry while others are trying to learn what they are doing as a new jog and Not giving enough time to practice or adjust to the new position. While being as quick as possible.

As I learn more about how I can be more effective in my job new business SEO Specialist owner. I am having to learn to slow down and be more patient and that is hard for me at times and for others that want a quick result to the problem of getting a business off the ground while trying to get a new job after getting laid off again.

Ali... what is the best program to learn and for new career possibility's as well. Even for someone that played around in learning to program when BASIC (Commodore era) programming was the thing?

All the topics that you covered in this post were something that needed to be addressed quickly while having a passion for others. Thank you and hope we can talk more...

Sincerely,
Shane Phillips
Owner of simplifiedsolutionseo.com
simplifiedsolutionseo@gmail.com

Collapse
 
alexandreuser profile image
Alexandre Vieira

Legal muito informativo

Collapse
 
dominicduffin1 profile image
Dominic Duffin

This is a really pertinent article - we need a lot more understanding of these issues across the industry.

Collapse
 
tux0r profile image
tux0r

The thing missing from your list is meritocracy. I'm a firm believer in technical merits. A team of developers who have all the empathy, confidence et cetera, but none of the technical profession, will happily embrace and welcome any friendly people - with no progress in their actual project.

Collapse
 
thebouv profile image
Anthony Bouvier

In my eyes the people with merit are those that have both technical skills and non-technical skills. In fact, technical skills are more easily taught. There's no mystery to them. That's why the definition of what makes a good developer is changing -- because you can have the most awesome technical skills and be awesome at the skills listed in the article. That is true merit.

And how is "technical merits" missing from the list of "most important non-programming skills"? This article is literally written to cover the non-technical aspects of being a successful developer. ;)

Collapse
 
rhymes profile image
rhymes

Great article, thanks Ali!

I always say that empathy is the closest thing we humans have to a superpower.

You explained everything eloquently!!!!! (too many exclamation points? :D)

Collapse
 
aspittel profile image
Ali Spittel

Haha thank you so much!

Collapse
 
nabbisen profile image
nabbisen

A very nice post :)
Thank you.

Collapse
 
webdva profile image
webdva

Well said. Excellent write-up.

Collapse
 
emkographics profile image
Emko

This was educational. Thanks.

Collapse
 
masiur profile image
Masiur Rahman Siddiki

This article is truly outstanding. Gratitude :D

Collapse
 
miku86 profile image
miku86

Hey Ali,

great notes,
thanks a lot.

Collapse
 
eddsaura profile image
Jose E Saura

I get everything on this post, but I am not developer yet fml 🤣🤣.

Nice post.

Collapse
 
soriscodes profile image
Soris Cox

Love the idea of keeping a list of wins to remind yourself of positive things when you have a bad day!

Collapse
 
alicesos profile image
Alice-sos

Hi,

I hope to get your consent to translate and shared with Chinese developers, I will indicate the source and author.

Collapse
 
kelah___ profile image
Kelechi.E

Wow nice write up. I learned something today. Thank you.

Collapse
 
rupankarghosh profile image
RupankarGhosh

I read through your long post and it's great to learn this non-technical skills. Kudos to you 💌

Collapse
 
rico345100 profile image
.modernator

Very impressive post. Thanks!

Collapse
 
gautamkrishnar profile image
Gautam Krishna R

Well written...