Hacker News new | ask | show | jobs
by dmbaggett 5286 days ago
The best coders I know (including agavin, who comments below) are all insanely hard workers. There are a few other correlates, but these seem secondary to me:

- willing and able to rapidly learn new tools (especially languages, debuggers, build/test infrastructures, and profilers)

- understand software at many levels (so-called "full stack" programmers)

- more interested in producing a working system than in technical details

- self-confident enough to seek experts and extract information from them on areas of ignorance

- have a strong aesthetic sense of code

Definitely "being really smart" or "having a Ph.D" hasn't been a correlate in my experience; if anything, I've seen these to be negatively correlated with code production and quality.

And distribution of coding ability definitely seems to follow a normal curve; a handful of coders I know are 6 sigma out. There are many more two-sigma outliers, and tons in the middle, as you'd expect.

3 comments

Definitely "being really smart" or "having a Ph.D" hasn't been a correlate in my experience; if anything, I've seen these to be negatively correlated with code production and quality.

Unfortunately this is largely the case. It's in many ways similar to why many on HN don't want to do Java enterprise LOB apps. It seems like painful drudge work. For a lot of really smart people who did their PhD -- the work it takes to build a production web app is painful drudge work. They'll happily build the prototype that proves the concept and their done. Everything else is a painful drudge work -- a solved problem ("I can reduce what's left to what Facebook did. QED.")

Um.. most PhDs in the experimental sciences involve lots of drudge work, and 14 hour days, and the people who make it are generally very hard workers. This may not be true in theory or engineering.
I have a PhD in CS. There's a lot of "drudge work" in the design and execution of experiments. I just spent four days designing, executing and analyzing experiments to see if our model was accurate and my implementation was correct. (Both are, which is nice.) But those experiments will never be published - experiments like them will, but not those. Those experiments are what I call "guiding experiments" - they're not rigorous enough to convince others that what we did works, but it's enough to convince me we're doing the right thing, and give me the confidence that things will work out as expected when we do the full, rigorous experiments.

So, yes, research has its own grunt work. And some of my code will make it into production.

> The best coders I know (including agavin, who comments below) are all insanely hard workers

I'd +1 this if I could. This is the instinct I've had for a while, and probably also the key as to why it is so rare.

I suspect a key part of it is learning how to work effectively, and avoiding burnout in the process, neither of which are trivial to achieve.

Thanks for the comment, extremely interesting!

To me, insanely hard work always connotes working 80 hours/wk and not having (or spending time with) a SO, kids, or other hobbies besides the job.

I don't know if that's what you mean, but that kind of life is not one I would go for, even assuming I am capable of being more than one or two sigmas good.

I don't think that's true. I consider myself an ok coder, but I'm lazy. I work in bursts, but even a good day is likely to be less than six hours of actual work. Bad days are near 0. If I had the work ethic of the parent commenter, I could get a hell of a lot done in a reasonable amount of time.

Some of that laziness is because I'm not crazy about what I'm working on. Being truly honest with myself, though, it may be an internal defect that will prevent me from becoming a great coder until I get over it.

Anyway, that lack-of-laziness is what I think the parent was attempting to describe, not 80-hour weeks.

It partly depends on "stage of life" as well. Most of the outlier coders I know are 40+ now and don't work 80 hours weeks; nor do they ignore their families, etc. However, all did at one time in their lives, and all still have a strong work ethic. Work ethic often goes along with long hours, but beyond a certain level of experience, I see excellent producers working smarter and not just harder, to use the cliche. It could be that it takes the proverbial 10k hours to get to that level of experience; I don't know.
I definitely don't mean to imply working 80+hr weeks. Perhaps the parent does, but I personally don't think it's healthy nor do I do I think it's conducive to avoiding burnout let alone happiness. You can work hard in a 40hr week.
"- understand software at many levels (so-called "full stack" programmers)"

People should start using "multi-stack" to describe those jobs when PHB's decide they know best which technologies to use, and not surprisingly, they're all incompatible and different than last month's technologies.