3 Skills You Need to be a Great Software Engineer Besides Coding by@cal.evans

3 Skills You Need to be a Great Software Engineer Besides Coding

image
cal@calevans.com HackerNoon profile picture

[email protected]

I'm a man of many skills, but few talents.

The Origins of my Talent Stack

My mother was an English teacher. From the time I could hold a pencil, whenever I strayed from the righteous path, my punishments took written form. First, it was sentences–copying the same sentence over and over. As I matured, so did my punishments. By the time I was in junior high school, most of my punishments were in the form of essays. They were usually 500 words on a topic that Mom selected. Sometimes, it was relevant to my situation: “Why I shouldn’t intentionally irritate my sister”. Other times, it was on a topic of my choosing. Those were actually worse because they became research papers. Sure, it was only 500 words–but they had to be properly supported by research. Oh, and of course spelling and grammar matter.

There was a silver lining on this cloud. By the time I reached college, I was excellent at this type of writing. On my very first day of English 101, I was tasked with writing 500 words on what I did that summer. Much to my mother’s surprise, I wrote a grammatically perfect paper and was dismissed from the class with a “Satisfactory” mark.

Long before I could express ideas in computer code, I could express myself in written form. I didn’t know the term back then, but this was the beginning of my personal “talent stack”.

What is a Talent Stack?

If you aren’t familiar with the term “talent stack”, Scott Adams, the creator of the Dilbert cartoon, introduces it in his book, How to Fail at Everything and Still Win. The basic idea is that instead of being an expert in one specific skill (i.e., Tiger Woods and golf), you can become successful by stacking a variety of complementary skills.

My personal talent stack consists of the following skills:

  1. Programming
  2. Writing
  3. Public speaking
  4. Storytelling

All of these skills complement each other. While I am nowhere near being the best programmer available, I estimate that I am in the top 5% of programming, writing, orating storytellers. (That is 100% just a guess, or as I call it, an “Internet Fact”.)

Talent vs. Skills

The term “talent stack” is a bit misleading to some. It really should be called “skill stack”, because all of these things can be learned and mastered. That’s the difference between a skill and a talent. A skill can be learned; talent is a natural ability. Based on this definition, my tagline on most social media sites is: “A man of many skills, but few talents.”

Since skills can be learned and mastered, choosing skills that complement one another allows you to stack them. For instance, in my stack above, programming feeds me ideas for writing articles. Writing articles helps me organize my thoughts in such a way that I can present them orally. Storytelling allows me to relate complex or technical concepts to people that may not be familiar with them.

Each of the skills in my current stack complements the others and allows me to do more than just write code. In fact, they all help me write better code in their own respective ways, because all of them assist me in gathering my thoughts and presenting them.

One skill has been particularly useful to me in my career, and that is the skill of storytelling. I don’t use it much in writing code. Although the best code is readable, it doesn’t usually tell a compelling story. Storytelling helps me convey concepts in a relatable way, even if the listener or reader isn’t familiar with the concept.

Programmers Need a Talent Stack

With very few exceptions, software developers don’t work in a vacuum. They work in teams. They work at companies. They work with stakeholders. All of these are groups of people with which they have to communicate. It takes a different style of communication to convey a technical concept to developers versus stakeholders. You need to be comfortable communicating with users and board members because you never know who will call on you to explain something.

When I started programming computers, I told people that it was because I liked dealing with computers more than I liked dealing with people. That lasted about 30 minutes. Even though I was the only programmer at the company, I still had to convince upper management to invest in hardware, let me build new systems, etc.

In every job I’ve had in IT, it’s always been more than just programming. That’s why building out my talent stack has been important to me for a long time. It should be important to you as well.

Build Your Talent Stack

What is your talent stack? Take a few moments, and list out your skills.

  • Are you comfortable speaking in public?
  • Do you have a talent for teaching things to others?
  • Can you express yourself well in written form?

There are many talents and skills that software developers can add to their stack. Talent stacks don’t just happen. You need to make a conscious decision to figure out what you want your stack to be, and then work to master those skills.

Give your career a boost by building out your talent stack now.

First published here

Comments

Signup or Login to Join the Discussion

Tags

Related Stories