Though agree that those "For Dummies" books grossly underestimate the time needed to be a good programmer, I really wish he didn't use the "10,000 hours is the ultimate immutable number of hours you need to 'master' a skill." It's nonsense.
I agree with you on a certain level, since there are so many outside factors influencing how quickly you can become a good programmer. It's not as if you are an average programmer for 10,000 hours and then you magically become a great programmer in the 10,001st hour.
That being said, I don't think the estimate is totally wrong. I've been programming for five years, have just gotten through a Software Engineering degree and am comfortable using three or four languages, but there are many people around me with more experience who's development skills I am just in awe of.
The main point is that nobody can teach themselves to be a programmer (or at least a good one) in three days. To build up the amount of skills and experience required takes many years.
Not nonsense, but somewhat arbitrary. Given the present topic, maybe a power of two would be more apt, although equally arbitrary. 8,192 hours (2^13) is the power of two closest to 10^4, based on:
2^⌊log(10^4)/log(2)⌋ = 8192
(⌊x⌋ = floor(x))
It's just an anecdote. It has some connection to reality, but it's not like the fine-structure constant or the gravitational constant.
I've heard this figured bandied about quite often, as well, and I think it's mostly anecdotal and should be taken as a general rule rather than empirical fact.
I believe Malcolm Gladwell was the guy who came up with the "10,000 hour rule". [1] Norvig's article actually quotes Gladwell as the source of the 'rule'.
One of the big articles in the field is by K. Anders Ericsson and Neil Charness. It is titled "Expert Performance - Its Structure and Acquisition." You can find a copy at:
Alternately, you could read "Deliberate Practice and Acquisition of Expert Performance: An overview". It is also by Ericsson and you can find a copy here:
It's an arbitrary amount of time that relatively few people are able to dedicate to any skill. The rare people that do are known as "experts".
But you won't be as "expert" as someone with 20,000 hours. IMO it's a tautological phrase based on your chosen definition of "expert". That's why I dislike it.
Pilots' experience is often measured in hours. 10,000 is nothing special (10 years?), but to a lay person they sure know a lot about piloting, and at a dinner party I'd defer to them as an "expert" on anything to do with flying.