The (clarified) Norvig challenge

Was chatting about various programming languages with Roshan today when Peter Norvig’s Teach Yourself Programming In Ten Years essay came up. Roshan mentioned that his time would be up in about 4 months’ time, which set me thinking.. gee, if the clock starts when one first programs on a computer, then .. my decade was up several years ago!.

I had a nagging feeling that this was not what Norvig meant, but neither of us had any Internet device with us (though Café Django is, bless pervasive wireless coverage, within range of an open wi-fi hotspot) so I could not verify what Norvig said. Unfortunately, having checked it, he did mean learning *programming*, as an art in its entirety, in ten years. But surely the clock only starts when one started applying onself seriously to the task at hand?

So as I’d define Norvig’s challenge, one has multiple deadlines – x years after you pick up a major paradigm, you should be immersed enough in it to draw inspiration from it and apply it properly. There comes a stage, after one picks up a cool technique, that one tends to overdo it, see it as the golden hammer, and apply it indiscriminately (hello, continuation-passing style). That is only natural – without trial and error one would not know what works and what does not.

Another task I’d add to Norvig’s recipe, though: after you’ve grokked (or think you have, anyway) a concept, pick, from your bag of favourite languages, a language that does not have the concept, and implement it. Hey, someone’s even done a tail-recursive class for Java!

May the Force be with you.

(I don’t normally use SW references, but it just seems so apt here)


Comments are closed.