http://qs1969.pair.com?node_id=75844

As far as Perl coders go, I less-than-humbly suggest that I am one of the better Perl coders that you are likely to run across. Is this because I'm so good? No! It's because many Perl coders out there do not have much skill with the language or with coding in general.

Many people who use Perl for simple administrative tasks do not have the time, or the need, to learn Perl well. Others, thinking that dynamic Web sites are sexy or will get them a better job, come to Perl with no programming experience at all and pick up one of the many, many terrible books written on the subject.* It's hardly their fault that their Perl skills are not well-developed, but it does tend to make my code look better by comparison.

The reality is, if you put me up against people who really know Perl, my skill is "average" at best. I am a far cry from a guru. Many monks here have been quick to heap praise on me for the assistance I have given in various areas and I have seen some positive comments about me that make me blush, but I am not a guru.

So what's the point of all of this? Simple: when I screw up, call me on the carpet. If you have checked Saints in our Book and Number of Monks by Level, then you might have noticed that out of over 7,000 registered users, I am (as of this writing) ranked number 5 in terms of total XP. This is not because of my ability with Perl. This disparity between my ranking and my Perl skill has three reasons that I can think of:

  1. I've been here, posting regularly and prolifically, since June of 2000 (read some of my earlier posts if you really want a chuckle).
  2. I try very hard to help people, since others have tried very hard to help me. People appreciate that.
  3. I usually write well. In this area, I am fortunate and know that, if I take the time, I tend to excel.

Notice that nothing on the above list mentions any consummate skill with Perl. I think the above reasons are good, solid reasons for much of my XP -- contributing to Perlmonks is just as worthy of XP as being a Perl god, so don't feel bad if you, like me, aren't "up there" in terms of skill. Unfortunately, my "Sainthood" has raised an interesting problem. It's an annoying problem that I have discussed with other high-level monks and they have noticed the same problem: we often don't get the best feedback. I suspect that many people equate my XP with Perl experience and are unsure about the wisdom of correcting me.

The title "Stubborn as a Saint" refers to the fact that sometimes I get stuck in a particular way of looking at a problem and don't consider alternatives if my solution is working. In a perfect example in a recent reply, I posted the following snippet:

%author = map { /^\d{6}$/ ? $_ : [ split( /\|/, $_, 2 ) ] } map { split( /=/, $_, 2 ) } grep { /^\d{6}=[^|]+\|/ } <FH>;

Later, in the same post, I blathered:

...it really seems to be the most straightforward "Perlish" way of writing that.

No, it's not. That was just my mind being stubborn and taking its "first option". Fortunately, in this case, btrott posted the following:

my %author; while (<FH>) { next unless /^\d{6}=[^|]+\|/; my($l, $r) = split /=/, $_, 2; $author{$l} = [ split /\|/, $r, 2 ]; }

Furthermore, MeowChow followed it up with an even cleaner example (sorry, btrott :-):

my %author; while (<FH>) { next unless /^(\d{6})=([^|]+?)\|(.*)/; $author{$1} = [ $2, $3 ]; }

runrig then followed up with the comment that there were issues with my example and /s?he/ would post benchmarks. That makes me very happy. I still want to improve my Perl and things like this just help me improve faster.

As I mentioned, I and other high-level monks have noticed that as we rise through the ranks, others seem to be less willing to be critical of our code. Please, feel free to speak up. Do you only have 3 XP? I don't care. I can still learn from you. Do you feel like all of your code is unworthy to line a canary cage but you are convinced that I'm being an idiot? Let me know! Forget my XP. All that reflects is my contribution to this site. I know I speak for myself, but I also know that I speak for at least a few others: don't be shy.

Cheers,
Ovid

* There are some excellent books out there for Perl, but they usually assume a programming background.

Join the Perlmonks Setiathome Group or just click on the the link and check out our stats.

Replies are listed 'Best First'.
Re: Stubborn as a Saint
by footpad (Abbot) on Apr 26, 2001 at 23:06 UTC

    Thank you for posting that. It's nice to be reminded that we've all got things to learn about Perl, programming, and good citizenship in general.

    I would hope that all code (and commentary) is open to review, analysis, and perhaps even a little golfing. I've noticed, though, that some are more open to it than others. While we ocassionally discount the responsibility of seniority and celebrity, I believe that by being open to the feedback of our peers, aware of the context such feedback occurs in, knowledgeable of our own limitations, and willing to adapt accordingly, we encourage such feedback. In turn, we grow our skills and continue to learn. (That's really the whole point, isn't it? If you already know all there is to know, aren't you just wasting your time?)

    At any rate, thanks. It'll be quite some time before I'm ready to try golfing any of your code, but I will do my best to ask questions if I see something that strikes me as a little odd.

    Consider it a payback, hopefully with interest.

    --f

(crazyinsomniac) Re: Stubborn as a Saint
by crazyinsomniac (Prior) on Apr 27, 2001 at 01:11 UTC
    It was about time somebody said it %^)

    In one of my recent posts, I took an interest and tested some code somebody wrote up, and much to my suprise, it did not work, and this was a craft. After some tinkering, I noticed somewhat of a logic error. I was baffled. This was a good guy, a good monk, and a good coder(as far as I can tell), and nobody called him on it. Not only that, it was one of those days with the newest nodes page with a 100+ entries. Maybe my tinkering is what caused the problem, but I spoke up. I fear it is far too common an occurance, that we overlook things like that.

    So, I urge everybody and anybody, be you Anonymous, or initiate, check out the code you read/write/vote on carefully, and call people on it. You'd be doing everybody a favor, and more importantly, you'd sharpen your skills(which is what most people come around here for, that and the company %^).

     
    ___crazyinsomniac_______________________________________
    Disclaimer: Don't blame. It came from inside the void

    perl -e "$q=$_;map({chr unpack qq;H*;,$_}split(q;;,q*H*));print;$q/$q;"

Re: Stubborn as a Saint
by Sherlock (Deacon) on Apr 27, 2001 at 01:12 UTC
    You know, I just ran into this exact issue not too long ago. I saw a post by MeowChow, Why not support this syntax? and I, having recently taken a class and done some extra studying on Programming Language Structures and language creation was all set to drop my two cents in the bucket. Then...just before I submitted my thoughts, I thought about what I was doing, checked MeowChow's XP value and, realizing that it was much higher than mine, figured that I must be an idiot college student that thinks too much of himself to be critical of someone that has that much XP. At that point, I trashed the entire reply and never posted.

    I didn't think of it at the time, but I'm sure that some of the monks with low XP levels have a great deal to contribute to the site. I'm just learning Perl and I often find myself entirely lost in the Seekers of Perl Wisdom section. Most of the questions (and replies) go straight over my head, but I find myself often picking up threads in the Meditations and Perl Monks Discussion sections and speaking my mind. I feel that, in these sections, I can really contribute to the community without knowing a lot about Perl. Hopefully, in time, I can contribute more to the rest of the site.

    But I believe that what you say is true. I find myself being much less critical of anyone with a higher XP value than my own because I naturally equate higher XP with greater Perl knowledge and my own inferiority. I'm glad that you made this post - maybe now I won't be quite as afraid to post things and speak my mind - regardless of who I'm replying to.

    - Sherlock
Re (tilly) 1: Stubborn as a Saint
by tilly (Archbishop) on Apr 27, 2001 at 06:52 UTC
    If there is one thing I have learned, it is that people who develop a reputation for knowing a lot generally get there by trying to learn however they can. And they are generally still learning. (Just like the people you see exercising are the ones who don't need to. Same exact principle.)

    So go ahead, offer the correction if you think you see one. You might or might not be correcting them for real. If you aren't, you are probably going to learn something interesting. If you are, well odds are that (if the correction was offered politely) they will be greatful.

    At least if they are like me. Particularly if they are like me. I try to be a sponge. But programming is only one of the things that I have done with my life, and I have not been programming for that long. There are a lot of gaps in my knowledge, some of them big, fat and glaring. If you think you are staring at one - well you probably are!

Re: Stubborn as a Saint
by mothra (Hermit) on Apr 27, 2001 at 08:27 UTC
    I, personally, acknowledge almost no relationship between XP and one's ability as a Perl coder. Admittedly, often higher XP'ers seem to have a reasonable amount of Perl skill, but then there are others for whom XP/skill is an inverse relationship.

    I've always found it odd when anyone tries to point out this relationship as well. There's nothing too "magical" about it: XP is essentially a reflection of the contributions one has made to Perl Monks, whether through technical help, inspiring/interesting thoughts or merely showing off. :)

    If you want to get a good idea of someone's technical ability follow their writings!

Re: Stubborn as a Saint
by mikfire (Deacon) on Apr 27, 2001 at 01:26 UTC
    I do not consider myself a high-ranked monk, nor do I think of myself as a great perl programmer - most of what I know I learned in painful ways and there are large areas of perl that are still dark magic to me.

    I have on several occassions not voiced my opinion in a thread because I figured somebody who was more capable of answering the question ( eg, I may know it doesn't work but cannot explain why ) would answer later.

    At others times I have not corrected a monk I respect because I just assumed the monk knew what they were doing and I had missed ( as usual ) something obvious.

    Just as I have taught myself to vote for an article based solely on its merits and not on the author, it seems now I will have to teach myself to suggest corrections based solely on the code, not on who wrote it. That is, I think, going to be much harder.

    mikfire

Re: Stubborn as a Saint
by arturo (Vicar) on Apr 26, 2001 at 22:40 UTC

    Ummm, what he said, only about me.

    Except I won't endorse that "better than most" comment wrt myself =)

    Oh, and I didn't write that funky map sequence, either.