You can generally tell when you're dealing with someone who really knows their stuff by the amount of reference they make to the way it has always been done. Folk like our own WardCunningham
seem able to ditch all that stuff and approach each problem as if it were completely new and they had never done anything like it before.
Then, when they have a solution, they'll either recognize it as a Pattern in the standard lexicon, and leverage readymade tools, or not. But they never come in armed for bear when all the customer needs to catch is clams.
is of course the EasternWuss
version of this, the idea being that within and between the habits of our experience - and even moreso when that experience is broad and deep - there lurk really powerful ideas.
This here wiki being a case in point.
Why would this be a good thing? What good is it to "approach each problem as if it were completely new and they had never done anything like it before" and only recognize after the fact that a pattern exists? What good does a pattern serve if it is not recognized before the work is complete?
The purpose of patterns is to train an architect in the rudiments of what can be successfully implemented. By understanding patterns the architect is not doomed to repeat them; but instead recombine and transcend them, and in the process create new patterns for those who come next.
Or, as in a famous line from haiku
, "The perfect answer becomes a donkeys' hitching-post".
Can someone elaborate on this quotation, please? --
Perhaps "stubborn" would be a clue ...
His hand holds a magnfying glass ... Sherlock Holmes ..
The perfect anwser is in the eye of the beholder..
Einstein would elaborate..
Watson would find a clue..
Or the famous GoProverb
, meijin ni joseki nashi
: a top-rank (meijin
) has no patterns (joseki
"In the beginner's mind there are many possibilities, in the expert's mind there are few." As I understand it, this refers to an expert's tendency to jump to (possibly overcomplicated) solutions. The BeginnersMind
encourages one to ask "CouldYouJust
- Junior programmers create simple solutions to simple problems.
- Senior programmers create complex solutions to complex problems.
- Great programmers find simple solutions to complex problems.
- -- from "Most Software Stinks!" (http://www.developer.com/tech/article.php/880431) by CharlesConnell?
Given the above, it seems that this page refers to senior programmers as experts. It is not until one knows how to use BeginnersMind that one transcends the senior/expert stage and enters the realm of greatness.
- And mediocre programmers create complex solutions to simple problems... (not from the article by Connell)
Apprentice programmers find the closest example and copy it.
Journeyman programmers find the best example and copy it.
Master programmers find the best example and improve it.
One of the disadvantages of knowing patterns is that they limit creativity. They move you from experiencing current reality to applying past solutions. This is a problem for guitar players who know a lot of "riffs". When they have to improvise their fingers reflexively follow established patterns. They can move them around, connect them in different ways, but it can be harder for them to hear what else is happening in the music and create something new than it is for a beginner. BrianEno
purposefully refused to practice the guitar to remain in a naive state.
Good Thinking....This will certainly help others too...
See also: CookDing