
Ask HN: What makes a good software engineer? - kotrunga
In your opinion, what makes a good software engineer?<p>What qualities, what skills, etc. makes a software engineer better, and how do you recommend building those skills?
======
powerslacker
1\. Grit - being able to slog through a tough problem for weeks or months with
few signs of success or progress. Sometimes you are going to need to bang your
head against the desk for a long time before you get answers.

2\. Humble - as a software engineer you are going to fail at something most
days. Most of the the time you will experience failure multiple times per day,
perhaps even hundreds of times. A proud or arrogant engineer will waste time
and calories being frustrated with failure. A humble engineer will start
looking for help anywhere they can find it, and doesn't let constant failure
impede their workflow.

3\. Team player - the industry loves to idolize 'rockstars'. However software
engineering is rarely a one man job, everyone has off days, and a team can
move only as fast as its slowest member. Helping other engineers when they get
stuck, even in little ways, is essential to the progress of yourself and the
team.

4\. Chops - software engineering is a multidisciplinary craft that requires
knowledge, judgement, and implementation. Knowing what to implement, how to
implement it, and whether or not you should / if there's a better way takes
years of practice and training. Having a habit of building your skills,
improving a bit every day is part of what makes a decent engineer into a great
engineer.

------
itamarst
1\. Empathy, as April Wensel talks about a lot (e.g.
[https://medium.com/compassionate-coding/confessions-of-a-
rec...](https://medium.com/compassionate-coding/confessions-of-a-recovering-
jerk-programmer-b9d531a05ea9)). You need this for everything from gathering
requirements to debugging.

2\. Ability to gather requirements: _why_ are you building what you're
building? (More here: [https://codewithoutrules.com/2017/02/19/ai-replace-
programme...](https://codewithoutrules.com/2017/02/19/ai-replace-
programmers/))

3\. Focus on solving problems, and when you're more advanced identifying
problems. This means coding becomes a means to an end, rather than your goal.
(more here: [https://codewithoutrules.com/2017/07/10/stop-writing-
softwar...](https://codewithoutrules.com/2017/07/10/stop-writing-software/)
and )

4\. A focus on productivity, which means a focus on doing _less_ work, and
specifically unnecessary work. This goes against the grain for many
programmers, who want to code. Goal is to solve problems with as little work
as possible, though. (More here:
[https://codewithoutrules.com/2017/10/04/technical-skills-
pro...](https://codewithoutrules.com/2017/10/04/technical-skills-productive/))

------
AnimalMuppet
"It's easier to not do something stupid than it is to do something smart." A
good software engineer knows most of the usual ways to write broken code, and
doesn't do them.

------
jotux
Previous discussions:

[https://news.ycombinator.com/item?id=14708350](https://news.ycombinator.com/item?id=14708350)

[https://news.ycombinator.com/item?id=2767433](https://news.ycombinator.com/item?id=2767433)

------
penguinlinux
don't be an asshole that's the best skill a lot of people in engineering can
be assholes.

------
flyingscotsman
Get things done. That is all.

------
penguinlinux
don't be an asshole rule

