
Ask HN: What Makes a Great Developer? - focodev
A little context. I&#x27;m currently a junior in a middle of the road state university studying for a degree in software engineering. I have been doing a lot of reading - whether it be comments on Reddit, articles, etc - and it appears that there is an abundance of junior developers looking to enter the job market, but very few &quot;good developers&quot;.<p>My question is, what is it that sets someone apart as a good developer? I know this question is very vague but it&#x27;s also very vague whenever I see it used.<p>Thank you for your time.
======
onion2k
Based on roughly 20 years of mentoring junior developers at various points
during my career, the ones I look back on and think "that was a good one" have
been the ones who want to do the _whole_ job of writing good software. They
wanted to write great code of course, but they also got involved speccing out
what the software is, in writing tests and documentation, doing QA, seeing
their code working for the users, to maintain it, to fix it, and not to just
build something that worked today and then forget about it. They were the ones
who looked at a bug report and thought "Damn, how did I miss that users would
do _that_?" rather than "The user is doing it wrong".

(Note: This is based almost entirely from working in small software agencies
and startups. It might be very different in bigger companies/teams where you
get less ownership of a whole problem domain.)

------
karmakaze
Being deeply interested in each problem at hand would top my list. That
provides the motivation for developing skills that lead to getting better
faster.

Other than that, I would say specializing and getting great at one or two
things at a time (e.g. "C" and 3D graphics). Finally also seeking out exposure
to other programming environments: languages (functional, lisp, etc),
frameworks, frontend, backend, realtime/embedded/IoT, shrinkwrap, verticals.

It all comes down to experience. The closest thing to a shortcut is forcing
yourself to do things outside of your comfort zone. Surround yourself with
people who you can learn from and do so without ego getting in the way. Pair
programming to pick up little tips all the time that you may never see written
anywhere.

------
CyberFonic
The definition of "good developer" depends greatly on the context and
environment.

Based on my experiences in many different teams, I would suggest two critical
attributes:

1\. Strong knowledge of all core principles: computer architectures, operating
systems, networking, etc.

2\. Solid domain knowledge, e.g. supply chain, accounting, insurance,
industrial control, etc.

Naturally a "good developer" is also conversant with several programming
languages, frameworks, libraries, etc. But technical skills without domain
knowledge limits opportunities.

------
forgotmypw17
Previously:

[https://www.google.com/search?q=site%3Anews.ycombinator.com+...](https://www.google.com/search?q=site%3Anews.ycombinator.com+%22what+makes+a+*+developer%22)

