Live data from Hacker News

Being a "Great Coder" and 10000 Hours

groups.google.com

41–50 of 70 posts

Re: Being a "Great Coder" and 10000 Hours

#41
post #5

There really is a meme here I think, and it relates to ego. Having said that, I definitely do think there is truth in massive variations between programmers, though I personally think that is a combination of a small pre-requisite talent (the ability to code at all, which I think a surprisingly small amount of people have - simply a genetically determine brain configuration), and mostly attitude + hard work. For exam…

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 technica…

> 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!

Re: Being a "Great Coder" and 10000 Hours

#42
post #32

People would rate you "great" but you'll be able to say "How would you know?". At which point, the better you get, the worse you'll know you are. Anybody who rates themselves as "great" is probably on the uphill side of the learning curve. This attitude annoys me greatly. I understand Dunning-Krueger and all, but I still don't buy the idea that skill is inversely proportional to confidence. I think it's simplistic to…

I think that "confidence" bifurcates once you gain experience. There's confidence in your ability, and there's confidence in your accomplishments. The former tends to decline, because you realize there's so much more out there that you could be doing to but just don't have the time or mental capacity for. The latter tends to increase as you rack up projects and see people use them.

I thought I was hot shit when I entered college, and I had the test scores - but no tangible accomplishments - to prove it. And then I tried to convert those test scores into tangible accomplishments, and found that maybe I wasn't as hot shit as I thought I was. I think I'm significantly dumber now than I was as a 19-year-old hotshot fresh out of high school. I can see all the alternative ways of doing things, and all the mistakes I made, and all the mistakes I'm still making. And looking ahead of me, I see all this complexity and all these challenges for the things I want to do, and I didn't see that when I was a wide-eyed kid, and it makes me feel pretty stupid.

But looking behind me, I've done some pretty cool stuff. FictionAlley.org. Write Yourself a Scheme in 48 Hours. Ported Arc to JavaScript. 2 products for somebody else's startup that never went anywhere, and a startup of my own that also never went anywhere. Wonder Wheel & Search Options. The websearch visual redesign of 2010. Google's Authorship program. Google's first canvas-based homepage doodle. The [let it snow] easter egg.

And I think about how I just made tens, perhaps hundreds of millions of people happy last weekend, and it feels pretty good. So even though I don't know anything, I must be doing something right.

Re: Being a "Great Coder" and 10000 Hours

#43
post #20

The problem: As it is mentioned in the email. People tend to believe, being great is about knowing a lot of facts and stuff from memory. Having information about stuff others don't know. While the fact is intelligence and knowledge only acts as catalyst in the path to success. They are not success or don't lead to success in themselves. Unless you don't understand this you will keep wondering why you are not getting…

This sounds a lot like Joel's Duct Tape Programmer: http://www.joelonsoftware.com/items/2009/09/23.html

Re: Being a "Great Coder" and 10000 Hours

#44
'Great' doesn't mean anything if not a relative value. So saying you are great just means saying you are one of the best. That's all that counts.. who cares if you're not as good as the mythical uber-coder?

Sure, once you reach the other side of the bell curve, you realize you don't know anything, compared to everything there is to know, but that doesn't make you anything less than great.

Re: Being a "Great Coder" and 10000 Hours

#45
post #31

Earlier quoted context omitted.

For the poor performers they may be nothing you can do. But for the merely "very good" are there practices that Balestra can teach them? For example, one thing I've seen that can increase productivity by a factor of ten is good debugging skills -- which are generally teachable. The other thing is to get people on things they're excited about. Mentally checking out is another area I've seen strong people lose time.

Good debugging is key, and as anyone who ever worked with me will note, I'm a fantastic debugger (in no small part because I'm cold, rational, and rarely get upset). I keep meaning to write up a post for my blog with "Andy's rulez of debugging." There are really very simple, but very effective. Like: "don't assume" and "divide and conquer" (they do require a bit of explanation)

Debugging is almost always about uncovering wrong assumptions, but I don't see how you can do without assumptions. Every line of code assumes certain state of the program that it operates on.

Re: Being a "Great Coder" and 10000 Hours

#46
post #6

A little off topic but somewhat relevant: When someone asked Larry Wall why there aren't any Perl certifications to classify the experts, he replied "I'm not going to tell people whether they're certified or not. My approach to language design has always been that people should learn just enough of the languages to get their jobs done. They shouldn't have to learn the whole language to begin with. But with certificat…

Isn't that the blub paradox? What if there was an unknown-to-you language feature that you were implementing by hand, or worse, if you were avoiding an end-user feature entirely because it would be too much work and so you're not even considering it? How would you know if it could affect user experience or revenue if you don't know about it?

I've certainly used a language for a while, and then read the book on it, and said "oooh!", and then gone back and fixed all my old code. I could have saved a lot of time if I had known about that feature in the first place. (The extreme case are the posts on thedailywtf.com of people who don't know about loops, but there are much higher-level examples, too.)

That's not to say you can't run a perfectly usable and profitable startup knowing just a little bit of PHP (and as Larry says, more power to you!), but I don't know how one could claim that it has no effect.

Re: Being a "Great Coder" and 10000 Hours

#47
post #31

Earlier quoted context omitted.

For the poor performers they may be nothing you can do. But for the merely "very good" are there practices that Balestra can teach them? For example, one thing I've seen that can increase productivity by a factor of ten is good debugging skills -- which are generally teachable. The other thing is to get people on things they're excited about. Mentally checking out is another area I've seen strong people lose time.

Good debugging is key, and as anyone who ever worked with me will note, I'm a fantastic debugger (in no small part because I'm cold, rational, and rarely get upset). I keep meaning to write up a post for my blog with "Andy's rulez of debugging." There are really very simple, but very effective. Like: "don't assume" and "divide and conquer" (they do require a bit of explanation)

Please do write that post, I for one would love to read it.

Re: Being a "Great Coder" and 10000 Hours

#48
post #13

one of the things everyone seems to forget about the whole 10000 hours thing is that the research says it's 10000 hours of mindful practice. that's a lot harder than 10000 hours of practice...

Same reason I don't type properly. I've clocked tens of thousands of hours of typing, but next to none of deliberate practice.

Re: Being a "Great Coder" and 10000 Hours

#49
post #28
post #5

There really is a meme here I think, and it relates to ego. Having said that, I definitely do think there is truth in massive variations between programmers, though I personally think that is a combination of a small pre-requisite talent (the ability to code at all, which I think a surprisingly small amount of people have - simply a genetically determine brain configuration), and mostly attitude + hard work. For exam…

There is such a difference in coding output. Having had perhaps 50 work for me over the years (and being one myself), the top guys do perhaps 10x the output of the merely "very good" guys. And near infinite with the mediocre ones who on tough projects actually suck more time than they contribute. The good guys also come in and contribute right off the bat. Like Christophe Balestra, who now is co-president of Naughty…

I've found that a difference between the "top" guys and the "very good" guys is that the very good guys are smart enough to do great work, but just aren't as into it. I know many guys who were mathematicians, physicists, or near-professional violinists and fell into programming because they couldn't make money from their other interest. These guys are often really good, but you can tell they wish they were doing something else. That said, the worst dudes are the ones who are really into it, but are really bad.

Re: Being a "Great Coder" and 10000 Hours

#50

Earlier quoted context omitted.

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 technica…

> 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.

Post reply on HN