Turning the Tides on Perl's Attitude Toward Beginners

pudge on 2001-06-01T04:08:53

Simon writes "If you haven't seen this already, over at perl.com, we're running a really interesting and challenging article by Casey West about the attitude of the Perl community towards beginners. Flaming the newbie is something we're probably all guilty of, but does it reflect well on us as a community and Perl as a language? Much food for thought."

Who cares if it reflects well? It's fun! (See, this is probably just what they're talking about in the article. I suppose I should read it. :-)


Good luck

Odud on 2001-06-01T09:07:41

I sit close to the Help Desk at work - I'm amazed by their patient attitude ("is it plugged in... is it switched on... can you see a little green light...") with the people who phone in. It takes a special sort of skill to do this kind of hand-holding well.
Beginners lists run by people who desire to do this sort of work are an excellent idea and can only enhance the standing of the community and language.

Re:Good luck

jon peterson on 2001-06-01T11:07:34

I agree. The problem is, and it seems to be extra problematic in Perl land, is that good teacher and expert are very different beasts.

One reason I'm put off helping beginners is that I'm only a medium-good programmer myself, and will likely get slapped for something.

The real world does not have a problem with allowing our children to be taught chemistry by people who are anything but excellent chemists. I think we need to create a culture where perl can be taught by people who are not excellent perl programmers. Competent, yes, but not excellent.

Re:Good luck

bmccoy on 2001-06-01T13:39:42

I actually enjoy helping out new people, and I especially enjoy sharing my enthusiasm about Perl, and have a lot of fun on the Beginners list. I am certainly not an expert, but answering questions helps me learn also -- because there are always questions I don't know the answer to right off and need to do some research to find the answer.

The biggest reward is to have someone write back and say "Hey, it worked! Thanks!"

Re:Good luck

clinton on 2001-06-01T14:35:28

This is one of my hot buttons, and I can't even speak about it without getting too upset most of the time. Bring it up at YAPC, and I'll buy you beers till I stop ranting.

Please, please start answering questions and ignore the flames out there. If I see one of the usual gang harass ya, I'll come to your defense as long as you're nice about it. (*putting jon on my newsreader's hot list*)

*resisting urge to rant...failing*

I had held out hope for perlmonks to be a flame-free kind of place that welcomed others to answer, but its turned into the same quagmire that is comp.lang.perl.misc. Different cast, but same kinds of flames. I'm even beginning to enjoy the charm of Godzilla!, because even if she's wrong a lot of the time, she's nice to newbies.

In #perl, it was a whole other story: that's the virtual lunchroom for people who have to deal with this stuff all day. You walk into the company break-room being stupid, and you're gonna get flamed. No "customer-service" facade in there. For service, try #perl-help down the hall.

The situation that irks me in particular is when someone posts a bit of code, asks a question and the responder takes the time to stroke his ego by criticizing the poster's coding style, practice his golf a bit, and to force their idioms on the supplicant. If the poster wants to use Baby Perl, let them use Baby Perl. Larry says that's okay! If the poster has a few style issues and isn't as efficient as it should be, that's okay! Perl's a language for getting things done, and there's a lot to be said for programmer efficiency, maintainer efficiency and the like.

When the poster asks for a critique and a full re-write, that's another story. It's even polite to offer some suggestions. But this typically doesn't happen in Usenet or Perlmonks. The poster is told "NO, THAT'S WRONG", his code is savaged, his ego ripped to shreds , and the responder gets his superiority complex fed for a few more minutes. And the Perl Community's image is tarnished that much more.

Answer the question they asked. If they have an X-Y problem, answer the question and then POLITELY offer the real solution. Answer their question in the language they understand. If you can't remember how to write Baby Perl, then you probably shouldn't be answering questions at that level.

You can't drag someone, kicking and screaming, up the programming learning curve.

Re:Good luck

tye on 2001-06-01T18:31:00

The situation that irks me in particular is when someone posts a bit of code, asks a question and the responder takes the time to stroke his ego by criticizing the poster's coding style, practice his golf a bit, and to force their idioms on the supplicant.

Yes, you get more of that on PerlMonks than is necessary. But that isn't all that you get, either.

The poster is told "NO, THAT'S WRONG", his code is savaged, his ego ripped to shreds , and the responder gets his superiority complex fed for a few more minutes.

I've seen that on c.l.perl* (though I don't visit there much anymore, mostly for logistical reasons). But I have to say that I've seen nearly none of that on PerlMonks.

I've seen some misunderstandings that usually get resolved. There are probably also misunderstandings where the questioner just stalks away. But I think even those are relatively rare and have more to do with the emotional state of the questioner, terseness of the answer, and the difficulty of text-only communication than any beligerant attitudes.

Not that I think that PerlMonks is a great forum for asking questions that are answered well in the standard documentation. Sometimes such questions get answered nicely. But most posters to PerlMonks consider themselves members of a community and expect most questioners to at least be considering becoming members themselves. So answering a flood of "first-level support" questions isn't an expected part of the game.

I think it is great that people want to create a "first-level support" for Perl. Like all such things, a lot of wrong answers will be given out as the people who do such work have to be chosen primarilly for their patience. If the forum is well designed, than most of the wrong answer will also get corrected.

I'd love to see c.l.perl* becomes a more helpful and less confrontational place. I don't think it will ever be a great first-level support resource. PerlMonks certainly has room for improvement but overall I give it pretty high marks, though, again, it won't ever be great first-level support either.

Re:Good luck

clintp on 2001-06-01T23:48:37

There are probably also misunderstandings where the questioner just stalks away. But I think even those are relatively rare and have more to do with the emotional state of the questioner, terseness of the answer, and the difficulty of text-only communication than any beligerant attitudes.

Wonderfully put. I can't imagine that most respondants keep in mind that the person asking the question is 1. under some level of stress 2. is already frustrated and 3. is in over his head (or he wouldn't be asking).

I spent 4 years answering phones with angry, frustrated customers and I can tell you this doesn't make for a cheerful mix for a phone call, much less text-only communication.

Perlmonks suffers less from the "NO THAT'S WRONG" problem than it does from the being "over-helpful" syndrome (and being of little help at all).

Is the perl community that awful?

Andrew Langmead on 2001-06-02T04:38:08

Some of the stereotypical attitudes of perl experts towards perl beginners may have to do with its origins. Perl was once described as the language to use "if its too difficult to do in the shell, and not worth coding in C." That of course, assumes that the programmer knows both the bourne shell and C, and has used the both enough to understand what the limits of the shell are and what is tedious to code in C.

And then came the web. Then a lot of people who didn't come from some sort of computer background wanted to learn Perl, and it doesn't seem that the results weren't good.

This article seems to imply that the problem isn't the language itself, and it isn't the novices trying to use the language. The problem, the article claims rests mostly in the perl community. I'm not sure if I believe the problem is so entirely one sided. Some could reasonably claim that perl is less than ideal first language, and sometimes people make it hard to help them.

Some of perl's DWIMmer aspects, at least the original ones aren't so much "Do what I mean", but rather "Do what Larry expects". How intuitive perl seems is directly proportional to how well your programming background matches the perl developers. This worked well when the audience was Unix developers and sysadmins, but less so when the audience was graphic designers.

At least during the initial explosion of the web, some of the novices didn't help things either. A lot of comp.lang.perl, and later comp.lang.perl.misc had posts that basically read "I'm not a programmer, but I just want to do {something}". That was problematic for a couple of reasons. Once someone decides that they want to create a program that does the "{something}", they are a programmer. They may be a novice, but they have made a decision to be a programmer. Trying to learn to program without being a programmer (at least a beginning programmer) seems nearly impossible to do, (although it does sound somewhat Zen-ish.) Sometimes "{something}" was the wrong thing to do, and it can sometimes be hard to explain that to someone with a preconceived notions of what they need. Sometimes the "{something}" that is wanted is inefficient, insecure, or just wrongly thought out.

As far as the disrespect the perl community gives novices, I have always suspected that there are other issues at play as well. And once a group of people were being pummeled anyway, a portion of the perl community fell into a pack like behavior. I do think it is a small but vocal minority. I spent a large amount of time trying to help novices in comp.lang.perl.misc, but eventually ran out of free time for it. But for the work I did, I hope the people I answered considered me to be helpful, and I find it hard to believe that someone could find a flame in any one of the 1700 articles that google has archived.

Unfortunately, I think that the perl beginners list is doomed to fail. I think that the beginners and beginners-cgi split is the first evidence of it. (the next step is when people start arguing about what is appropriate for which list.) Newsgroups were created specifically to address the problems that mailing lists don't scale well, and this is a mailing list trying to fix problems with a newsgroup.

Re:Good luck

Abigail on 2001-06-02T13:16:20

I disagree, both with your reasoning and your solutions.


I will focus mainly on what we are seeing on Usenet; I am far more
familiar with Usenet that with Perlmonks or the various mailinglists.


First, to set the record clear, people are usually *not* flamed for
being a Perl newbie. Nor is the "flaming" that goes on specific for
the Perl communitie. Mostly, people are flamed for their attitude.


Communities are formed because of give and receive. Not by assuming any
request will be granted promptly, with a smile. I would say that most
common cause of "flamage" is because people haven't shown any indication
they spend any time trying to solve the problem themselves. Really, there
is no excuse for asking questions that are answered in the FAQ. Or which
are answered by looking up the function in the documentation. There's no
excuse in asking poorly formulated questions, where it is unclear what
the problem is. Or asking off-topic questions. All these things are ok
in low traffic groups, where people aren't reading other groups. But
that doesn't scale. Not to the volume of comp.lang.perl.misc.


Every FAQ, poorly formulated question, off-topic question, question whose
answer is found by a trivial scan of the documentation, or whine ("why
don't you just answer the question?") I see takes time away I can spend
answering real questions. And even with a ruthless killfile (30% - 40%
is killed automatically), I still see too much garbage.


Sometimes, people suggest one should ignore such questions like FAQs
and things you can find in the documentation. That's not at all a good
option. For noone. Because people will answer questions - and if the
people knowing the answers don't, people who don't know the right answers
will. Often leading to wrong questions, people learn the wrong things,
and worse, it gives people asking FAQs and stuff like that a "reward",
the feeling they got an answer. Skinner can tell you all about the results
of such a policy. But beside rewarding the attitude of not doing any
investment yourself, it also results in a negative feedback loop: wrong
or bad answers are taking as being "right". The existance of archives
like google or formally dejanews means that any wrong answer is stored
for ever. Two ways of stopping that are wasting the time of knowledgable
people to answer the same questions over and over again, or make it less
attractive to post such questions, of which a flame is one way. Perhaps
not the nicest way, but do you think the first is fair? Perhaps someone
should do some research, and determine the correlation between people
accused the most of flaming, and the people spending the most time
answering questions. Larry Wall isn't often seen flaming, but when was
the last time you saw him answering a FAQ in comp.lang.perl.misc?


And while Larry said it was ok for someone to talk baby Perl, it
doesn't imply it's a good idea to talk baby Perl to them. If all you
are saying to your baby is "dadadadadada" and "tatatatata", how do you
expect him/her to ever learn a language? I often, on purpose, *do* use
a different function or syntax than the poster used. Either just because
it's "better" (for some value of better), and I try to indicate why, or
just to show an alternative way. I do expect people who don't understand
what I use to take the initiative and look it up in the manual. That
stimulates learning. If you only use what they know, even if it's an
awful or inefficient way, how will they ever learn?


You can't drag someone, kicking and screaming, up the programming
learning curve.


If they don't want to climb the learning curve, then they should keep
away from the mountain, and don't use Perl (or whatever language,
tool, application, etc) in the first place.


Some people say that if we aren't nicey-nicey to "newbies", they'll use
some other language. So what? I don't think there's much to gain in having
large numbers of low-quality Perl coders. I'd swap the Perl community
(community here used as the set of all programmers) for the Python one
without as much as a second thought. Much smaller, but a higher clue
level. Quality doesn't come in numbers. Furthermore, I've never gotten the
impression the comp.lang.c and friends are so nicey-nicey. But it's still
easier to find someone who can code C than one who does Perl or Java.

-- Abigail

Re:Is the perl community that awful?

hfb on 2001-06-02T14:30:19

"This article seems to imply that the problem isn't the language itself, and it isn't the novices trying to use the language. The problem, the article claims rests mostly in the perl community. I'm not sure if I believe the problem is so entirely one sided. Some could reasonably claim that perl is less than ideal first language, and sometimes people make it hard to help them."

I agree with the idea that a large part of the problem *IS* the Perl community. When I find my old cranky BOFH groups and lists more warm and friendly, it may be a good indication that people have tipped the scales of bitchiness far beyond even my expectations.

For a time there was not a single list that didn't have a flamefest of some sort and no tolerance for those who weren't in the know. In spite of Abigail's thoughts on c.l.p.m. it's a horrible place to go anymore as the flames seem to far outnumber the helpful whenever I scan the group. I would never recommend Usenet to newbies now anymore than I ever did before. I hid behind the guise of a male moniker for 7 or so years because it saved me a lot of unwanted treehouse behaviour. Not much has changed over the years it's just that there are more people from every walk of life on the net and getting everyone to play nice is terribly unlikely if not altogether impossible.

For what it's worth, in the last year and a half, things have gotten considerably more cordial in places where there used to be far too much bile. There is better documentation and dissemenation of information that was once believed implicit or just not written down. This isn't rocket science afterall. though some people are quicker to pick it up than others.

So, yes, it is the Perl community as if you take away the computer what's left? The person .

"Unfortunately, I think that the perl beginners list is doomed to fail. I think that the beginners and beginners-cgi split is the first evidence of it. (the next step is when people start arguing about what is appropriate for which list.) Newsgroups were created specifically to address the problems that mailing lists don't scale well, and this is a mailing list trying to fix problems with a newsgroup."

I disagree as I've seen a lot of stuff come and go around these parts and the beginner list has a lot of promise I've not seen before. The CGI split is probably a good thing since it is a natural focus and it allows people to reduce a bit of the volume in their inbox if they don't want to deal with CGI questions.

Specifically it's trying to deal with the pain in the ass bastards who for as long as I can remember have spent way too much time beating the living shit out of people who ask stupid questions and so far it has succeeded fabulously at this. I see no reason why it cannot continue in a friendly helpful manner. 99% of the challenge of learning is knowing what to ask and a stupid question is that of someone who hasn't gotten to the that point.

Perl people have made my most surly SA friends look humble and cheerful at times and fostered a sense of "No Good Deed Shall Go Unpunished". Only in the Perl community could I serve cold Guinness in the can only to have someone complain that the free beer fairy didn't bring something better. That sums it up pretty well...bitching about the free beer.

It's rather classic then that prognostications of doom ensue now that there is some promise in the beginners list where there is a shred of hope that maybe, just maybe, newbies will get a sheltered place to ask dumb questions and learn how to ask the right question before heading out into the shark infested waters.

The people involved with the list seem pretty committed to making the list work and continue to be friendly and helpful so I have some confidence that this shall succeed. If P5P can be courteous after 4 years of a PMS-ing self-wanking bitchfest, anything is possible.

e.

"Perl -- Free as in free beer but dammit, why didn't you bring Coors instead of Guinness in the can?"

Re:Is the perl community that awful?

gaudior on 2001-06-04T13:38:25

...learn how to ask the right question...

That is always the key to learning. Wise people will never flame someone who has shown due diligence in seeking, first, the question to be asked. If the begining perl mailing list does nothing but point people to the appropriate perldoc page, or FAQ entry. Then it will be a success. If it also starts people thinking about the best practices in the perl sphere, then it will be a smash hit.

Re:Is the perl community that awful?

vsergu on 2001-06-04T15:55:44

The CGI split is probably a good thing since it is a natural focus and it allows people to reduce a bit of the volume in their inbox if they don't want to deal with CGI questions.

It'll be nice if it works out, but I'm not hopeful. One of the biggest causes of flames on c.l.p.misc seems to be people who can't distinguish between Perl questions and CGI questions, and then take offense when people tell them they should ask their questions in another group. How are the mailing lists going to avoid that problem?

Re:Is the perl community that awful?

Andrew Langmead on 2001-06-05T02:19:03

I remember a few years back Ronald Kimball performed an experiment on comp.lang.perl.misc. He posted under a pseudonym, pretended to be a novice and asked a simple question that went something like this: "How do you delete a file in perl. I found the delete function, but it doesn't seem to do what I want it to do."

Ronald got only helpful comments and no flames. I assume that it was the mention of an attempt at effort that caused the good-hearted people to help, and the wolf pack to stay at bay.

If anyone knows where I can find that posting, (and Ronald's eventual revelation of the true authorship.) I'd like a copy to point people to.

Re:Is the perl community that awful?

Abigail on 2001-06-05T16:48:05

Well, you must have different SA friends than I have. The SA groups I frequent certainly have less "newbie flaming" than clpm, but that's mostly because there are barriers preventing them to post in those groups in the first place. Would they manage to stumble in, and post clpm style messages, it would be clpm that would like a nicey-nicey group.

It's always interesting to see that the people who say "we should be all nice to people not spending any effort" tend not to be the people who have posted thousands of messages over a time span of many years.

There have been other effords in the past. Perlfriends, for instance. It doesn't have much flamage. But then, it doesn't have much traffic either. It also appears than comp.lang.perl.moderated hasn't become the success it was supposed to be.

comp.lang.perl.misc has existed for about 6 years, and we had comp.lang.perl before that. The beginners mailing list has been around for a handful of days. It would be insane to compare them now - only someone who fails to understand the "problem" with comp.lang.perl.misc would do so. Let's judge the beginners list one year from now. And again two years from now.

99% of the challenge of learning is knowing what to ask

Exactly. And that's why a response of "this is off-topic here, there are other groups for that" or "that's the wrong question" is NOT a flame. But it's often labelled as such.

-- Abigail

Re:Is the perl community that awful?

Abigail on 2001-06-05T16:49:32

If the begining perl mailing list does nothing but point people to the appropriate perldoc page, or FAQ entry. Then it will be a success.

Really? So, what's seen as "flaming" on comp.lang.perl.misc is seen as a "success" on the beginners list?

-- Abigail

Re:Is the perl community that awful?

gaudior on 2001-06-05T18:43:07

I haven't been on clpm in quite some time. I think the definition of flaming depends more on the context and tone of the question AND the response, than the precise words used. In a family, or small group, with close ties, a person can get away with rougher speech, teasing, etc. than they can in a wider context. I can tell my brother to RTFM, and he can tell me to go to hell, and neither of us is offended. If, as I have seen on some other mailinglists and newsgroups, (non-perl), the SAME person posts the SAME type of question, repeatedly. Here is a hypothetical example:


Q: How do I find out the size of a file?

A: You can use stat() on the filename. Please see the perldoc perlfunc pages.

Q: How do I find out if I can write to a file?

A: Did you read the stat() entry in perlfun()?

Q: Why won't you experts ever answer my questions? How am I supposed to pass my mid-terms if you don't answer my questions? You are all a bunch of snobs! Perl experts are mean to newbies...
 
Where was the flame? Not in the response from the expert.

Re:Is the perl community that awful?

bmccoy on 2001-06-05T18:52:59

They are not avoiding the problem -- there are several moderators who are policing such things behind the scenes (as moderators should).

If people take offense when given answers or suggestions to ask the right people, why should the person answering the post be blamed? We can't try to avoid controversy to the point of being 'politically correct'!

Re:Is the perl community that awful?

pudge on 2001-06-07T13:27:51

It works on the MacPerl lists. When people ask a CGI question on macperl@perl.org, someone more-or-less politely asks them to ask it on macperl-webcgi@perl.org.