Live data from Hacker News

Three virtues of a great programmer

thethreevirtues.com

101–110 of 141 posts

Re: Three virtues of a great programmer

#101
post #100

That last one ("hubris") I'm going to call out. Maybe the author means another word, for what he describes, but the actual "hubris" I'm seeing among my colleagues is the belief that lots of people out there don't know how to write code, but that their own $%^& doesn't stink. It's the utter subjectiveness of "best practices" that aren't tied to actual issues of performance, security, or flexibility, or worse - blowing…

I especially love it when these people turn code which can be debugged (breakpoints can be set and hit) into one-liners for no reason which you have to rewrite in order to even set breakpoints. Well done, I hope you’re proud.

you can't debug within a line?

Re: Three virtues of a great programmer

#102
post #70

I'd add Curiosity instead of Impatience. Impatience is related to Laziness. In both cases we want the computer to do the work instead of us. But Curiosity is orthogonal and important. The best programmers I know were always curious: Why was it built that way? Why does it give that output? Why did she say that? Curiosity is the beginning of knowledge. If you're not curious, you will miss out on a lot of opportunities…

It doesn't work as well rhetorically as having all 3 virtues be typically thought of as flaws.

I was thinking that something about having communicative skills should be added to the list, but struggled to reframe that as a flaw… any ideas?

Re: Three virtues of a great programmer

#103
post #70

Earlier quoted context omitted.

It doesn't work as well rhetorically as having all 3 virtues be typically thought of as flaws.

Curiosity is a classical vice, I think it works

yes but not one of the seven deadly sins https://en.wikipedia.org/wiki/Seven_deadly_sins although impatience isn't one I think it should actually be wrath here.

Re: Three virtues of a great programmer

#105
post #101
post #100

Earlier quoted context omitted.

I especially love it when these people turn code which can be debugged (breakpoints can be set and hit) into one-liners for no reason which you have to rewrite in order to even set breakpoints. Well done, I hope you’re proud.

you can't debug within a line?

Yea, if you cannot set a breakpoint on an arbitrary expression, then your tools are bad and you should feel bad. On the other hand the dev tools in the average web browser lacked that capability until relatively recently, so it’s not an uncommon experience.

Re: Three virtues of a great programmer

#107
post #83

That last one ("hubris") I'm going to call out. Maybe the author means another word, for what he describes, but the actual "hubris" I'm seeing among my colleagues is the belief that lots of people out there don't know how to write code, but that their own $%^& doesn't stink. It's the utter subjectiveness of "best practices" that aren't tied to actual issues of performance, security, or flexibility, or worse - blowing…

I interpreted this "hubris" to mean that I believe I can make a difference, rather than feel that I can't contribute. You can understand why I, personally, would think this is a virtue.

“audacity” might be a better word for you for that :)

(To be clear: I mean this as a good thing. Audacity… seems pretty important, and very nice to have, at the right times and places)

Re: Three virtues of a great programmer

#108

I'd add Curiosity instead of Impatience. Impatience is related to Laziness. In both cases we want the computer to do the work instead of us. But Curiosity is orthogonal and important. The best programmers I know were always curious: Why was it built that way? Why does it give that output? Why did she say that? Curiosity is the beginning of knowledge. If you're not curious, you will miss out on a lot of opportunities…

Seconded, and I’d add this is a quality of a great human being. Curious people are curious about others too, not just systems. It’s related to caring. You have to care to be curious and we could use more people taking care in their lives.

[dead]

Re: Three virtues of a great programmer

#109
post #38
post #33

I think programming is an basically an exercise in effective communication. Edsger Dijkstra said that "Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer." This means being able to write down a description of a problem or a solution in a clear and concise way. This is the test I would use if I hired people (not only programmers).…

> ”… an exceptionally good mastery of one's native tongue …” Does that imply that one cannot be a competent programmer if working on an environment where the spoken tongue is not their native one?

Presumably the point is not the specific emphasis on your native tongue exactly, but rather a mastery beyond what might be regularly implied by mastery of a language (able to converse like a local) and rather mastery unique even among native speakers (able to convey ideas many different ways with a particular glibness that others can easily understand)

Re: Three virtues of a great programmer

#110

Earlier quoted context omitted.

> When you learn programming, you are told to never roll your own crypto, or to always use the ready-made libraries, or to avoid manual memory management I've always taken this sort of advice, such as "never reinvent the wheel" to mean "inventing the wheel is time consuming so give yourself an advantage by using already existing wheels", which really has nothing to do with hubris. I never took it as "Don't bother try…

You can build a better wheel if you want to focus on that. If you want to build a car however, focus on building the car and not creating a new kind of wheel.

If you want to build a better car than everyone else's current cars, you might need to create a new kind of wheel.

Look at the Apollo moon rovers, for instance: they couldn't use off-the-shelf wheels for those.

Post reply on HN