Being a software engineer requires you to have many skills. In my career, I've had the pleasure of working with people from different parts of the world. They've all had diverse backgrounds and experiences π. Some of them I've enjoyed working with, and some of them I have not.
Skills That Make a Great Software Engineer
Recently I've been thinking about why I like working with some more than others. I enjoy working with engineers who have these skills:
- π Friendly and easy to communicate with
- π Listen to others and try to see things from other perspectives
- βοΈ Thorough in their work
- π« Team player, striving to put the team first
- πͺπ€ Strong opinions, loosely held
- π©βπ« Wants to learn
- π Asks a lot of questions
As you can see these are all soft skills. Who would you rather work with? Someone who's not that great of a programmer, but working to be, and is a team player. Or someone who's a "rockstar programmer" and doesn't listen to others?
There's an overflow of articles and blog posts about how to improve your technical skills. They are useful and you should read them, but the soft skills are at least as important, if not more! Technical skills are easy to learn. Soft skills take time and might not come naturally (speaking from personal experience).
So now I'm curious, what skills do you think makes a great software engineer? π
Want to learn my 5 favorite habits for a software engineer? See this post.
Connect with me on Twitter, LinkedIn, or GitHub
Originally published at prplcode.dev
Oldest comments (42)
I disagree with "strong opinions loosely held" as a good quality. I have seen folks spout that phrase and what they often hear it to mean is "loud opinions always voiced". That phrase is π©π©π©π©π©π©π© to me.
Removing it from the list, and re-reading the list I see the attributes of the best developers I've ever worked with.
Thanks for sharing!
How I interpret that point is something like
Not having an opinion is fine. If you have an opinion you should fight for it until you've been proven wrong, and then you should stop fighting and re-evaluate. I especially love the last part about "He actually welcomed being wrong".
So to me, an engineer that speaks up, but re-considers if proven wrong, displays a good quality.
One other bit of consideration is "what attributes are accessible/available to the people who are under-represented?"
In my observations, "strongly held opinions, loosely held" is usually only available to white guys.
That's a great point. A healthy company culture is an extremely important aspect in the well being of employees (and company) in my opinion. If you don't feel like you can speak on your opinion then of course that's an issue.
Interesting topic but I feel it's out of scope from this post.
I would say it is more about being on top or bottom of the hierarchy. White man are often overrepresented at the top, but you still have the phenome in all-white-men-groups and groups without without white men.
So being able to be a great software developer depends on being acceptable as a great software developer.
On the other hand, I think this is an important part of growing great and it needs others to live that principle as well. You can't grow when you are not allowed to have a strong opinion and you can't grow when none is allowed to challenge your strong opinions with their strong opinion.
Definitely an issue. As a white guy, I think one of the more valuable skills I learned is to shut up (On occasion, I'm still working on it). Some of my peers have it the other way, their most valuable skill was learning to speak up. Strongly voiced, loosely held opinions can be great for discussing technical approaches if there's trust on a team. But if the discussion is less technical, or the trust is broken, you can start getting issues where other people (often those who have firsthand experience to speaking up being met with hostility) feel attacked or ignored.
Persistent forever and being ultra nice to people.
And the most powerful power is knowing how to google
Agree. Who needs to know how to code when you can ask Google, right? π
True
Using search engines, being able to read textbooks, and in general being able to perform research are huge timesavers.
Your colleagues will thank you as well when you first try to find the information yourself before asking. Great point.
Actively encourages and assists others in becoming great software developers?
I absolutely agree with this. Helping others grow has the unexpected and awesome side effect of growing yourself too, I've found.
This is the main difference between Software developer and Software Engineer.
Don't fear and lost because someone better than you(maybe same age or younger). Remember, u choose this job because u want to learn for your knowledge.
I've encountered this before. I could feel jealous others were better than me. At some point I started looking at it from a perspective of "how can I be more like this person?". I even asked if one of them could mentor me, and the person agreed, and I learned a bunch. It was a humbling and learning experience.
I'd say people see the first six qualities in me except the last one.
Openness - they hear you out and consider your idea seriously, rather than dismissing it
This point βListen to others and try to see things from other perspectivesβ reminds me of my friendβs article. Must read for those who wants to understand how to deal with conflicts in work.
link.medium.com/fadnMNFfEpb
Perseverance.
Patience.
Know when to ask for help.
Tolerance to criticism.
Smile.
Interesting...
In my point of view, what makes a good software engineer is the willingness to learn some new, the great example is the technology that is changing all the time another aspect would the ability to communicate and listen to other people. In my case I listen more, and consequently I learn from others more experienced than Iβm always open. Friendliness is other good aspect. I algo agree with everything that you brought up above.
Here is one article that I written on soft skill.
dev.to/this-is-learning/how-to-man...
Thanks for sharing. Could not agree more.
Creative problem solving as well