[So far I haven't been accused of a surfeit of hubris, so here's some more 
grist for the mill.  Though I may dial the grist back a bit if it generates 
an excess of flammage.  This and my previous posts are archived on my web 
site.]

Clarity is the secret weapon of the beginner.  To learn a new subject 
quickly, learn to talk about it the way the experts do.  Use the same terms 
they do; if they appear to be splitting hairs, look closer, because the 
distinction is likely to be important.  (Insert the old saw about Eskimos 
and words for snow.)  For instance, although they appear similar, lists and 
arrays are very different entities in Perl; be fanatical about using the 
appropriate term for the one you're referring to.  Likewise, people today 
talk about "hashes"; they gave up on the term "associative arrays" many 
years ago.

One reason for this is to help mark out the new paths in your brain faster; 
picture a herd of cows being led across a corn field.  If they're all led 
along the same path, that path will be very clearly marked and the next 
herd to come along will have no trouble telling which way it should go.  If 
the cows are allowed to roam ("What's the difference?  Y'all know what I'm 
talking about, right?") then there will be a maze of ill-defined paths left 
behind and the next herd will be confused.  You'll learn what you need to 
know faster by being rigorous about how you talk about it.

Paradoxically, beginners often expend far more effort than they should in 
trying to communicate about some problem.  Think of the experts reading 
your posts as an army of Mr. Spocks; they're capable of answering anything 
as long as they're fed accurate data.  Data, not assumptions.  It's not 
necessary to guess at what might be going on; it's not necessary to apply 
any amount of imperfect knowledge.  All they need are the facts: what did 
you do, what happened, what were you expecting to happen?  An ounce of 
visibility into what you're doing beats a ton of unverifiable speculation.

Remember, the experts can't read your mind or look over your shoulder to 
see what you see.  If you got an error, at the very least, they need to see 
the line of code that generated it; often, this isn't the line you might 
think it is, and they'd be better off with the whole script.  In which 
case, the shorter it is, the better.  You'd be surprised how often you'll 
figure out the problem yourself on the way to coming up with a brief example.

Watch out for ambiguities and missing information in your requests.  An 
excellent way of training yourself to spot them and deal with them is in 
what NeuroLinguistic Programming (NLP) calls the Meta Model; see 
explanations at, e.g., 
http://ourworld.compuserve.com/homepages/PatrickM/metamod.htm (found 
through a search, no affiliation).  One way to test your communication 
skill is a game to play with another person; pick a complex diagram that 
they haven't seen, and using only words, describe it well enough for them 
to draw a reproduction.  (You can see the application of this principle in 
the HBO miniseries _From The Earth To The Moon_ when the Apollo 17 crew are 
trained to report their geological observations to Earth.)

Cut and paste is the easiest way to ensure accuracy and requires virtually 
no thought.  On the way, there's a good chance you'll catch "obvious" 
mistakes that you'd be embarrassed to air in public, just by virtue of 
doing this vicarious demonstration, as it were.

Reply via email to