If you don't do your homework, you don't get to Perl

One of the most common responses to simple, text-book-quality questions on many Perl community outlets is "We are not here to do your homework". It's usually thrown in a swift, abase, manner, as if saying "How DARE you ask us to answer your assignment for you?!", and at times is accompanied by a general comment as to the asker's intelligence, seriousness, effort, capabilities, values, ethics and sexual capabilities. It is also, always, the most incorrect response possible.

One of my first assignment, back when I was a technical supporter, was to "refactor" a Perl script, which turned out to be more of a glorified shell script riddled with back-ticked system calls to wget, grep, et al. After rewriting those as actual Perl, I was left with the last element of the script that I wanted, upper-casing text in the files the script downloaded. The problem wasn't of how to perform the upper-casing, but how to perform it under specific terms, but before I got to that, I thought the best way would be to grab the text I needed using a regexp, then maybe substituting it using s///, now, what is the best way to uppercase text with a regexp?

I can only imaging what would've happened had I attempted to post that question to a PerlMonks thread, or an IRC channel. While it does look like a sort of Perl beginner course assignment, It wasn't. Perl is like that. The amount of things to know before you can hack some baby-Perl script is amazingly minimal, and Perl's DWIM design doesn't enforce you to understand why do things work the way they do, so the learning curve is shallow, and no-one can really say whether a question is from a course, or a real-world I-need-this-for-my-job question.

And even if it is homework, what of it? Why not just help the guy out, and allow him to progress faster to the more interesting parts of Perl?

6 Comments

Erez! Thanks for writing another post! They're always of interesting topics. :)

Agreed. I think this becomes a problem in any sufficiently mature community: The old guard get tired of answering the same questions over and over again. The cognitive dissonance causes many justifications: It's perceived that the asker is simply doing homework, is writing throwaway code, or otherwise demonstrates lack of commitment to Perl and its community, or even to thinking in general.


I also think that, for us, this is a bigger problem than for other groups. The reason is that we have a preponderance of old guard and a dearth of new blood. There are few enough new people being drawn into Perl as it is, it doesn't seem that it's justifiable to turn people away because they may or may not be fully vested in our community. Not if we're trying to continue to allow Perl to grow and flourish.

Even if it's not homework, you're not likely to get a response without a snippet of code, some input data, and what you expect for a result. Without them, everyone would be guessing.

And I agree; some people in the Perl community are just plain rude. Sadly, not much can be done about them.

Yeah, I was going to say what Shawn did. Whenever I saw people get blown off for asking homework questions, most posts also contained at least a pointer to the relevant documentation.

Well, as we see in Stackoverflow, when you read the documentation to people, they just keep asking you to read the documentation to them. The idea of telling them to work on their own problems is to 1) instill a sense of responsibility in their own work and 2) give them the opportunity to develop their skills as they struggle for a bit.

A lot of people think things shouldn't be hard. However, it's the struggle that creates the skills. If you skip the struggle, you will never get the skills. That's why school assigns homework and mostly expects you to do your own work.

In the real world, you work with other people, but you'll often find that if you are a helpvampire, you end up driving everyone away and you're left skill-less and helpless.

This is not a new problem in Perl, at least not if we can believe the KLB entry in Eric Raymond's Jargon File v4.4.7 (29-Dec-2003). But it's a real problem.


On the one hand, there is no excuse to be rude.


On the other hand, there are Perl mailing lists that I no longer participate in because the signal-to-noise ratio is so abysmally low. When you drop off the list, and come back a year later to find exactly the same people asking exactly the same questions (Why do I get 'Can't call method "foo" on an undefined value'?) it's time to find another forum. This isn't good for the forum, but it got to the point where staying wasn't good for me. I started working on a FAQ for the mailing list, but realized I was just duplicating the Perl FAQ. If someone won't read the one, they won't read the other.


Thanks for the helpvampire link. The only thing is, what do you do when nothing works, and the forum just becomes one huge clustersuck (to coin a word, only I think Terry Pratchett already did)? Wish I knew.

Leave a comment

About Erez Schatz

user-pic Because sometimes you need to bash your head against the wall until either you, or the wall, give up.