

The Top Attributes of a Great Programmer - jedwhite
http://programmingmatters.com/the-top-10-attributes-of-a-great-programmer/

======
leed25d
I think that point #3 should be higher on the list, perhaps it should even be
first. It is the hallmark of a professional software engineer that s/he can
sit down and quickly be productive in the environment of a legacy code base.

~~~
makecheck
Yes, reading code is important, but there's no such thing as being "quickly"
productive on a new code base. Anyone who makes changes quickly is probably
being careless.

Some, and perhaps most, legacy code bases belong in a top 10 on TheDailyWTF.
The last thing you want is for someone to start tinkering with a fragile code
base and breaking things that seemed unrelated. A code base of any significant
size could take weeks to understand properly, and _very few changes should be
made until it is understood properly_. Managers of new engineers need to be
cognizant of this lead time.

When working with a new code base, the only thing that's "productive" is
spending the first month just studying code, asking questions of colleagues,
writing tests and documentation, and making sure that the effects of various
potential changes are fully understood. Any time spent on new features at this
stage is just expanding the bloat and adding risk to the project.

------
woan
Number one on any of these lists should be empathy for users. If you don't
care about and understand those using your code, you will never be great, only
good.

