The April 2010 issue is now available at http://www.pragprog.com/magazines. What do you think?
I liked Mike Taylor’s article very much, in part because it leads to a question? How do we as senior members of our field teach this? His Radius of Comprehension sounds a lot like the principal of least surprise. When I learned RSX-11M+ assembly language lo those many years ago I saw that after learning one instruction I could guess most of the other instructions because they all did what you would expect them to. So how do we teach this to our more junior co-workers? I have an idea or two but what do others think?
Michael, you got some ‘splaining to do!
bq. You wake up. The first light of dawn is coming in the window. You glance at the clock. 5:45. You close your eyes and count off what you think is 15 seconds. You’re pretty good at this; in 15 seconds you’re not going to be off by an appreciable amount. You open your eyes and glance at the clock again. Still 5:45. What is your best guess for the current time, to a tenth of a second? 5:45:37.5.
Right you are. Here’s one attempt:
The second time you glance at the clock, you know for sure that the time is somewhere between 5:45:15 and 5:46. You know that because (1) the clock read 5:45 exactly 15 seconds ago, so it’s at least 5:45:15 now, and (2) it still reads 5:45, so the present time may be as late as a nanosecond before 5:46.
And that’s all you know. So your best guess is the midpoint of the interval [5:45:15..5:46:00), which is 5:45:37.5.
At least that’s how I figure it. I’m happy to entertain arguments in support of other answers. Or even other arguments in support of this answer. I think a Bayesian statistical approach would yield the same result, but I confess I haven’t tested that.