Some thoughts have come to mind while reading some of the beginners' 
postings.  I'll attempt to explain some of them here.  If they appear to be 
useful, I may come out with more.  None of this is in reaction to any 
posting in particular, there's no need for anyone to feel this is personal.

Some Perl beginners appear to exhibit, how shall I put it, 
counter-productive tendencies.  Others might churlishly refer to them 
having chips on their shoulders, but we don't need to get into that.  Let's 
look at it in simple terms: the Perl beginner, like all of us, has a goal 
or three.  Usually they come to a forum like this with one or both of two 
goals: to get the code they need or to learn more about something.  It can 
be instructive to elaborate on how best to achieve those goals and how they 
may be received.  In what follows, the golden rule to healthy understanding 
is: put yourself in the other fellow's shoes.

Firstly, the goal of getting some particular code out of a forum like this 
won't be well received.  People here are donating valuable time in just 
about the most altruistic display around.  Their motivation tends to be, 
that they enjoy teaching and they like to know that they've helped someone 
else experience the wonder that is Perl.  If someone asks for code without 
displaying any interest in learning, then that motivation is denied and the 
outcome is likely to be no help.  If you want someone to write code for 
you, there are many people that will do it for a fair fee.

Secondly, if you're in a learning position, certain attitudes and behaviors 
will serve you extremely well.  Any decent teacher knows how best to be a 
student, since no-one's an expert in everything and most of us who teach 
are also actively learning something new at the same time.  One attitude 
that helps is to adopt an open mind but a thick skin.  Anyone who's joined 
a writers' club either learned this one or dropped out.  If you're going to 
put out material for critique, then you have to not just expect but hope 
that people will tell you things about it that are wrong and which you 
didn't know.  Otherwise it was a waste of time.  Sometimes these people may 
be wrong, but you need to evaluate all comments, and getting upset at them 
just does no good whatsoever.  Remember, they're not talking about *you*; 
they're talking about your *code*.  When someone who clearly knows more 
than you about some particular topic says, "This-and-such is the best way 
to proceed," then the best approach is usually to do this-and-such until 
you have acquired the same level of expertise and can know whether another 
approach would be better.  (We could argue exceptions to this until the 
cows came home but they would simply prove the rule.)

If you were to read the diary of a programmer as they went from beginner to 
expert, you would see a number of changes of mind, and virtually all of 
them would be tending toward certain common points of view that you can 
find among experts.  I know that certain approaches which seemed just so 
right to me when I was younger now are exposed as byzantine or 
pointless.  Look for where the top people in a field agree on something, 
and follow their advice to the letter; you'll make progress much faster 
than trying to buck it.  This isn't some peaen to herd mentality here; it's 
just that you have to be fully armed to have a battle of wits, and no-one's 
going to pay attention to you if you espouse some half-baked theory without 
the intellectual underpinnings to back it up.  (Just as dozens of people 
claim every year that Einstein was wrong, and they have invented a 
perpetual motion machine that also travels faster than light - what they 
mean is, they don't understand Einstein, so they went off and made up 
something of their own instead that has no basis in science.)

None of this implies that the people who spend time here helping others are 
looking for subservience, or even respect.  (You should see how they talk 
to each other on the Perl developers' lists.)  I'm not saying you should 
kow-tow to them; I'm saying that there are ways of presenting your case 
that will gain you more respect from them, and here's a look at some of 
those ways.

If you run into resistance on the list, then remember that it's easier to 
go with the flow than fight it.  There's a reason the flow is the way it 
is.  I've been kayaking on whitewater rapids, and the lesson was plain: use 
the river, don't fight it.  The strongest person alive couldn't go against 
a hard current, but you don't need strength; you just need to recognize 
which way the river is going and give a kick in that direction.  That's 
enough for now.

(BTW, I went into some of the same topic in an early chapter of my recent 
book, _Perl Debugged_)
--
Peter Scott
Pacific Systems Design Technologies
http://www.perldebugged.com

Reply via email to