
I was about to make a comment on how I'd bet none of those wonderful examples given in the article were written using any of the examples given in the article; but then I thought about it and decided not to. Instead of a snarky remark, I'll make a long-winded point.
It is true that I myself learn better by *doing* than through long readings of books (although I still enjoy said reading, if only to pick up useless trivia). But given the previous... the problem is that by going down this path we run the risk of creating a generation of "doers" rather than "thinkers". Bear with me for a while.
I have met some wonderful doers in my 20-odd years doing computing. But with the odd exception, not a single one could tell you "why" things worked the way they did, or even "how". They just did. And I'm not talking about "why is electron tunneling essential for the electronics which make your TV work", but "how does an internal combustion engine work". And when things went wrong, they were completely lost because they had none of the theory to fall back on. Which is fine if all you want is a Java coder (for example), but not if you want an analyst. Hell, I went back to University to do a post-grad and mistakenly enrolled in the wrong course ("Introduction to programming in Java"): I thought I was enrolling in "Introduction to: Programming in Java", what I got into was "Introduction to programming (in Java)". A small, but significant difference - and the *lecturer*, when asked, could not tell his students why arrays start at 0 instead of 1. Here is a University Lecturer, who is supposed to teach programming to his students, and could not even teach the difference between an Offset and an Index (or the fact it was a legacy of trying to lure C programmers to this new-fangled language). Nor did they ever teach about garbage collection and why it was such a good thing it had been automated in newer languages.
So no, I don't think we should fully go down the "learn by doing" path - or else we might end up with a bunch of kids unable to do simple maths without a calculator or internet access to Goo- Oh... wait...