"Franklin" Method for learning good programming? I was reading Ben Franklin's biography(the one by Walter Issacson), and it describes his method for learning to write: he would take excellent essays, jot down the basic ideas, then try to reconstruct them some time later and compare his version to the actual essay. It occurred to me that this could fairly easily be applied to programming. Has this kind of technique ever been studied? 

(Side question: does anyone know of a library of excellent programs to learn from?)
I have thought it strange that we teach students to write programs before we teach them to read them. 

A short time ago I read about some research about this. It stated that the problem is finding good programming works that is of a standard similar to the standard of great literary works. They may exist, but no one has compiled a collection.

They would have to be at least:


Free Software / Open Source.
Well written.
“Reading age” appropriate. (That is programming reading age)




I will try to remember where I read it, and report back.

Could be one of these:
 - Mind-storms — Seymour Papert (page &lt; 116 (I am up to page 116) )
 - Hacking The Curriculum — Ian Living Stone &amp; Shahneila Saeed (page &lt;= 72)
 - Hello Word magazine issue 3
 - Somewhere else.

Sorry I can't find it. It is most likely in the 1st, then the 2nd etc. If I find it then I will update.