I agree with your basic point (I upvoted you from zero to one. What's with you getting a zero score? !!), but
"principles are attempts by people working at the wizard level to try to communicate some of the things they do intuitively to people at other levels of learning"
Thinking of Robert Martin (Or Ron Jeffries or most of the agile consultant crowd) as "wizards" to learn from is hilarious. I've noticed that most of these people have no "wizard level" code or achievements to justify their role as "transmitters of wisdom".
A "wizard" should (imho) be able to do magic, not just talk about magic or write books about (how othe rpeople should do) magic.
When I think of "wizards" I think of people like Linus Torvalds or John Carmack or Peter Norvig or our own PG. In my opinion, one can learn more form one page of wizard code than all this abstract talk of "principles of coding" from people who haven't written any top notch code in years, if ever.
"I've noticed that most of these people have no "wizard level" code or achievements."
I agree in general, but I was talking about Robert Martin in particular. Check out his code: http://github.com/unclebob/fitnesse/tree/master It's really clean. While the guys you mention have been very effective and productive programmers (maybe by having better ideas and writing more useful applications), their code accomplished really new things, as opposed to finding better ways to do old things.
Norvig wrote some good books, but I never really got the sense of how he approaches a problem from them, although I did like the AI stuff quite a bit. Martin's "agile software development" is really good. I don't know why I benefit more from a little analysis on top of the code reading, but I think it helps me put a mental framework around stuff more quickly. Anyway, you've got to love a guy who writes a book called "UML for Java Programmers" that simply trashes UML...
It is decent certainly, but nothing very ground breaking (imo) which is what "wizard" would imply. In no field of endeavor I know do we call people "wizards" for mere competence. The term is (imho) reserved for people who do ground breaking things / display astounding levels of competence/performance. Iow, someone isn't a "wizard" musician just because he knows his scales.
You express this much better as "their code accomplished really new things, as opposed to finding better ways to do old things"). May be we just understand "wizard" differently, which is completely all right.
"Norvig wrote some good books, but I never really got the sense of how he approaches a problem from them, although I did like the AI stuff quite a bit. "
How I learn from such examples is (1) I read the writeup to get a basic idea (2) I write my own version (in python for the spelling corrector example) and (3) see what differs between my version and the "wizard"'s.
Specifically to answer your "I never got an idea of how he approaches a problem from them"
Firstly, I wasn't speaking of Norvig's books but his code.
But let us speak of books- Have you read Norvig's "Paradigms Of Artificial Intelligence Programming"?. The whole book is essentially Norvig programming "blow by blow" finding mistakes and reversing design decisions and so on. I found it very useful to get some insight about his thinking and programming style.
Also Norvig does have some interesting thoughts on how to code in http://norvig.com/luv-slides.ps [postscript] where he talsk about how he iterates between an english description of an algorithm and (lisp) code till he gets it right.
All the people I mentioned (PG, Norvig, Carmack, Torvalds) are top level programmers (vs being people who make living from selling - in one form or another - programming methodologies telling other people how to code)and have publicly available "wizard level" code to learn from.
Robert Martin does write publicly available code - as does Kent Beck with Junit- so all due credit to them but most other agile "gurus" know jack all about coding at least as evidenced by their publicly available code. That said, I don't find Martin's code to be particularly inspiring as compared to the other people I mentioned. I find Martin's code to be competent but not "wizard level". I agree that this is largely a subjective judgment. YMMV.
As I said in my earlier post, I largely agree with your original point.
"principles are attempts by people working at the wizard level to try to communicate some of the things they do intuitively to people at other levels of learning"
Thinking of Robert Martin (Or Ron Jeffries or most of the agile consultant crowd) as "wizards" to learn from is hilarious. I've noticed that most of these people have no "wizard level" code or achievements to justify their role as "transmitters of wisdom".
A "wizard" should (imho) be able to do magic, not just talk about magic or write books about (how othe rpeople should do) magic.
When I think of "wizards" I think of people like Linus Torvalds or John Carmack or Peter Norvig or our own PG. In my opinion, one can learn more form one page of wizard code than all this abstract talk of "principles of coding" from people who haven't written any top notch code in years, if ever.