Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't see how it's really debatable that some programmers can be 10x more productive in certain domains. This is especially true in technical domains where it can take years to gain the knowledge required to solve the problem at all. I can think of real-world problems that would require the average programmer several years to solve, yet I know people that could solve them in a day. In fact, almost any specialized task works like that.


It would take others years to solve what someone else can solve in a day?

I would love to hear an example of that as that seems a pretty extreme claim.


I don't claim as extreme productivity differences as the parent but I've seen people do pretty impressive engineering feats and have heard first hand stories of others.

In the cases I've seen what makes people a lot more productive is experience. At Google, Ken and Russ ran circles around me in terms of writing compilers, but I had only written half a dozen toy compilers while someone like Ken has written many more production ones.

My current co-worker Mikko just spent a few weeks re-writing the code to extract a mesh from our level set data. It's a distributed algorithm and our literature search didn't indicate it had ever been published. Starting with someone without domain experience it would be several weeks until the algorithm made sense. It probably would take years to replicate the feat.

Programming is a very specialized endeavor. Some parts of more than others. My own experience indicates that individuals can have magnitudes of difference in their performance when applied to some of these specialized areas.


I would suggest http://norvig.com/spell-correct.html as an example of a very short program that took an expert under an hour to produce which many competent programmers could have spent weeks spinning their wheels on. (With a worse result.)

You will note that the expert is not quicker by virtue of pulling in more sophisticated tools or large libraries. Rather the expert is faster due to knowing how to solve the actual problem.


I love that example.

Another one: http://www.paulgraham.com/spam.html

For many years hundreds of programmers worked on anti-SPAM systems that weren't as effective as the very simple method PG proposed.

If anyone else can think of more I'd love to know them.


But you've both just disproved your own examples!

The very fact there are articles explaining previous solutions to these problem domains is why I just don't believe anyone would ever take a year to get up to speed with something an expert could do in one day.

I can make a great spell checker or a great anti-spam program that takes an expert a day to program in less than a year by just googling it.

There are so few programming domains that aren't fairly transparent where a domain expert has such a massive advantage that a domain novice couldn't gather sufficient knowledge in a year to rival the other programmer's one day effort, given the same level of intelligence, etc.


When it comes to spelling correction, there is a lot of literature on how to do it. So that example I grant you. But could you, before Paul Graham's article, have written an anti-spam program that is that effective? Seriously?


It's not specifically programming, but I've done homework exercises in a night or a weekend as a grad student in mathematics that were main results of PhD dissertations years ago. It's all about point of view. If you have the right way of looking at the problem, things become possible that would look like miracles to someone looking at the problem a different way.


I don't want to belittle your achievement, but the reason will be because your tutors gave you the correct tools which weren't available to your predecessor.

It's certainly not that you're 10x better, it was homework. Your tutors expected you to be able to complete it as they'd spelled it out to you in the lectures.

We're talking about one programmer being 10x better than their peer, not of one generation being more scientifically advanced than the previous.


He is still 10x better from the perspective of the employer. That's the point.


Given that a) the only way we're measuring programmer competence here is in their speed to complete a task, and b) knowledge is not evenly distributed, how can you tell the difference between a "faster through more knowledge" and an "intrinsically better" programmer?


Remember the Sudoku debacle? Or should I say Sudokugate..


There are some things that some people can solve in a given time frame, which other people could never solve. For example, could you have ever invented calculus or discovered relativity? What about someone less smart than you? That's an even more extreme example than the one given.

Moving back to programming, debugging specifically, I've had people spend weeks stuck on a bug, only for another programmer to find it in hours or days.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: