http://www.perlmonks.org?node_id=195372

Fellow monks,

I came online in an eager mood this morning, on top of the world and ready to help and to try and do some good wherever I could. Unfortunately my help and advice isn't always top notch right now as I am still pretty much a newbie to Perl myself. Of course I try not to let this stop me from applying what little I do know to help when I can... but I realised after a particularly poor personal response to a thread earlier today that maybe I shouldn't have tried to answer the problem at all - maybe instead I should've remained quiet.

It got me to thinking about the value of my posting here. Being fairly new to the community perhaps I should limit myself to just posting questions and only answering when I am 100% sure I'm correct. Is it right to venture opinions which may turn out to be incorrect? (or vastly incorrect ;)). Is it more to the benefit of the community for everyone to see everyone else's mistakes being corrected in the public forum?

Before anyone asks, I am purposefully avoiding any question of node reputation in valuing posts so as not to stray from the thoughts I am meditating about and towards other topics such as the oft brought up experience system :)

Is there a benefit to the community when novice posters try to help and answer questions even if they happen to supply an incorrect answer? Do such postings hinder or help the community? Obviously there are extremes to both sides of this argument, but ignoring exceptions like these which can't truly be controlled - unless your name is nodereaper I guess! - do such postings help perlmonks in general?

The points I'm really trying to meditate on and perhaps discuss are these... Is it worthwhile for those of use with less Perl experience to try and help out? I know in my case my incorrect postings have led to a personal gain in knowledge, but does this help or hinder others?

Do the more experienced perlmonks roll their eyes and think "not again!" or are they happy to help and teach those of us who are newer and perhaps missed some of the nuances, however basic?

I guess my final meditation must be, where do we draw the line? At what stage does opinion override knowledge and render it worthless?

I'd appreciate reading other monks' thoughts on this topic!
Thanks,
Neil

Replies are listed 'Best First'.
Re: Newbies, trying to help, and where to draw the line?
by davorg (Chancellor) on Sep 05, 2002 at 14:22 UTC

    As the person who probably more than most "dampened your enthusiasm" this afternoon, I say please keep posting.

    Yes, your solutions weren't perfect. But they were common mistakes and having your solutions there gave me the perfect opportunity to explain why they were sub-optimal.

    And anyway - if you hadn't posted them, someone else would have. What annoys me is the other people who went ahead and posted similar solutions to yours even after I'd explained what was wrong with that approach.

    --
    <http://www.dave.org.uk>

    "The first rule of Perl club is you do not talk about Perl club."
    -- Chip Salzenberg

Re: Newbies, trying to help, and where to draw the line?
by Abigail-II (Bishop) on Sep 05, 2002 at 14:10 UTC
    Personally, I think you should refrain from answering if you don't know your answer is correct. It drains more resources to correct mistakes than to answer questions - if only because it tends to lead to pointless discussions. But the main reason is that for this scheme to work, those that do know are now expected to read every thread and each post in the thread, to weed out mistakes. Time that could have been spend writing answers to unanswered questions.

    Furthermore, there will always be a delay before an answer can be corrected - during that delay people could read the wrong answer, and take it to be correct. Only to find out they are wrong later. This will decrease the value of this site.

    Abigail

      Furthermore, there will always be a delay before an answer can be corrected - during that delay people could read the wrong answer, and take it to be correct.
      And then repost it somewhere else (maybe even here) as the "correct" answer.

      I've seen bad memes that refuse to die, posted again and again in response to the same FAQs.

      I'd prefer it if someone posts "this isn't tested", or "I saw this answer but there may be better ones" if that is indeed true. Even I still answer that way on the areas in which I'm not a firsthand expert.

      Over time, people can sometimes assess "This person doesn't really know as much about this particular subject as he/she thinks they do", but that's hard to pick out in the beginning, especially if they talk big. There's a particular troll in the newsgroups who is like this, leading the true beginners astray. Luckily, the experts haven't entirely given up putting prophylactic postings around the troll's answers.

      -- Randal L. Schwartz, Perl hacker

      I feel that Perl Monks exist on several strata, beyond the arbitrary ecclesiastical nomenclature. I would expect Abigail-II, merlyn and others to come up with a brilliant ways of solving the question; this in no way invalidates a less experienced monk's answers, it should ( and frequently does ) augment the contributions of less experienced monks.

      If someone posts a wrong answer, then reply with an explanation of why it's wrong. This way the learning experience is increased. You educate more people: the poster of the "wrong" answer, and anyone who had the same misapprehension.

      Weeding out these mistakes will weaken the educational worth of a thread. Retaining the mistakes gives a more rounded view of the subject and a demographic of the people who concurred with the "wrong way". This kind of stats is vital in reviewing documentation and enhancing the syntax. Obviously this data is by no means empirical, but at least flags mis-conceptions, for anyone who cares to look for them.

      As a Perl Newbie some years ago, I felt it was important to dive in and contribute. The easier questions, perhaps should be left for the newer monks. It leaves seasoned Monks to add insight into wider issues like cross-platform implications, race-conditions and such that will be of worth and relevance. This way the initial thread is a vehicle to a wider theme, where monks of several levels of ability can profit.

      --

      Brother Frankus.

      In a realm of thought where TMTOWTDI, and in a language where different versions might contain subtle differences in behavior, and in a forum where the nature of the Q & A doesn't lend itself to allways having a complete picture of the problem, ... who is to decide the definition of "correct" ?

      Above all else, this is a discussion forum. People shouldn't have to fear posting just because they aren't 100% certain that their way of solving a problem is "the most correct".

        who is to decide the definition of "correct" ?

        Anyone who tries to run bad code and finds that it doesn't work. Is that democratic enough for you?

        BCE

      Abigail-II, don't forget TMTOWTDI

      What is your standard of correctness? What if someone disagrees with its definition? You express a view of PerlMonks that is oligarchic in nature--where a select group of powerful individuals is responsible for bestowing wisdom.

      My response is, "But what about hubris", that characteristic to which none other than St. Larry himself attaches such import? Hubris is the democratic urge to raise oneself up to the gods, and at the monastery that is accomplished by posting.

      It seems to me that in an unmoderated forum for sharing knowledge, it's more realistic to expect a process to occur in which members post, and reflect upon each others' postings. From this process a shared concensus will arise. Obviously poor posts will be quickly identified and labelled as such.

      As others have mentioned, there is clear value in this process, over and apart from the value the initial requestor receives from having his or her singular problem addressed. It's democratic and it works.
        Hubris is the democratic urge to raise oneself up to the gods, and at the monastery that is accomplished by posting.
        However, let us not do this at the expense of the people we are trying to help. A broken solution is a broken solution: to post such, is to attempt to raise yourself at the expense of others. I ask you to either not post, or post with qualifications, if there's a chance you are posting an ineffective solution.

        -- Randal L. Schwartz, Perl hacker

             Hubris is the democratic urge to raise oneself up to the gods

        Well, actually, dictionary.com serves it up thusly:
        hu·bris Pronunciation Key (hybrs) also hy·bris (h-) n. Overbearing pride or presumption; arrogance: “There is no safety in un +limited technological hubris” (McGeorge Bundy).

        mb
      I am a self taught novice who manages to get the occasional script to do some useful work. As a result of learning a lot by lurking in this forum my knowledge and confidence had been greatly increased to the point where I was starting to venture my opinion where I was fairly sure of my knowlege. I now realise that my temerity is regarded with disfavour by those of great knowledge and experience so henceforth I will desist as it appears I may be causing more harm than good. Ay_Bee
      -_-_-_-_-_-_-_-_-_-_-_- My memory concerns me - but I forget why !!!
        ...NO, NO, NO! Don't stop.

        With due respect to the observations made here that sometimes bad information in a forum may take on a life of its own, I would submit that this is the anomaly in a healthy and active forum.

        TMTOWTDI applies not only to coding but to participation in a forum. If you as an experienced member, are weary of correcting mistakes, you can stand aside and let someone who is not as "battle-hardened" take care of the issue. Or you could post a pointer to something that has already been written that addresses the concern. The only way that this is of grave concern (this being the posting of incorrect information) is when you feel that you must personally correct all mistakes that appear here.

        I had another instructor lament to me that while teaching complex material, it is not okay to oversimplify in the interest of initial understanding. His position was that if you omit any of the details, then people fill in the gaps with their own notions of how things work. This can sometimes lead them down blind alleys.

        To that I say, "perhaps." On the other hand, their self-created misconceptions may not be destructive at all. If I believe that my car starts each day because I light a candle and chant Dr. Seuss' "Too Many Daves" before setting out in the morning, does it matter that I don't know anything about internal combustion engines? Probably not.

        And on those rare occasions when my misconception does have some bearing on the problem I face, it isn't long before I go somewhere and ask for help on the issue. I may spend some time wheel-spinning before I realize that something is wrong, but I say that this is far outweighed by the times that I was able to accomplish something in spite of my misconception. (Perhaps because of it.) My alternative is to be hamstrung by the attitude that I can't do anything unless I know all of the gory facts.

        This is where the hubris comes in. It's the ability to move forward, perhaps even with an imperfect understanding of all the issues.

        And back to the core issue. Should you refrain from posting if you're not sure? I say that this community would suffer if you decided not to post out of fear that your post would cause some damage. It would suffer because when thoughtful and conscientious members do not post out of fear, that leaves only the true experts (and we can go down to the Barnes and Noble to hear what they have to say) and those who are unaware that they're off base.

        And then this would be something similar to the newsgroups, which I stopped reading long ago because it felt to me that everyone who was not fully expert had their posts met with ridicule and derision.

        Perl Monks is valuable because of posts from people like you. Even when you're wrong, it adds something of value to the dialog. And as someone pointed out (very helpfully) here, if you're not 100% sure, then include a disclaimer. (If it seems ironic that we should be humble and display hubris at the same time, that's just how life works sometimes.)

        ...All the world looks like -well- all the world, when your hammer is Perl.
        ---v

      I agree with Abigail ;-{) Blackadder
Re: (fireartist)Newbies, trying to help, and where to draw the line?
by fireartist (Chaplain) on Sep 05, 2002 at 14:38 UTC
    Having gone through the same experience of posting an answer to later find it was incorrect, I've developed what I think is a reasonable approach.

    If you're not 100% sure then (when possible) test it yourself before you post.

    1 of 2 things may happen:
     1 - You come back to give the answer and find that someone else has already answered it.
    No matter - you've learnt something new today and are better prepared to give advice in future.
     2 - You come back to give your answer - the query's still unanswered - you can give a good answer and be assured it will be correct and useful.

    /me let's put this in practise!
Re: Newbies, trying to help, and where to draw the line?
by Molt (Chaplain) on Sep 05, 2002 at 14:13 UTC

    Personally I'd recommend that you posted, even if you do manage to get a solution which others later correct. Quite often on here I've seen someone post something and thought 'Yes, that's how I'd do it too', only to then see problems others have pointed out with the solution. It's always useful to learn from the side-discussions that spring up.

    It would probably be a good idea to say you're not absolutely certain however, and preferably test your solution with a bit of test data if you can though.

    Well done for the relaxed attitude about XP too!

Re: Newbies, trying to help, and where to draw the line?
by moxliukas (Curate) on Sep 05, 2002 at 14:11 UTC

    I think it is really OK for anyone who think they know the answer to help, even if the answer is wrong. Wrong answers are usually flagged here by some more experienced monks replying to these answes and explaining why this is a bad solution. I think it really helps not only for the newbie who tries to participate but to the whole community as it shows what must be avoided and what mistakes you might make solving a particular problem.

    Of course there are also good answers that newbies produce and this is surely very welcome

    Update: After reading Abigail-II's post I must say that I partly agree with him. I think the person answering should warn that s/he is not absolutely sure about the solution. At least that is what I am doing when I am not 100% sure (or even if I am pretty sure but I can't test if it really works)

Re: Newbies, trying to help, and where to draw the line?
by ignatz (Vicar) on Sep 05, 2002 at 14:35 UTC
    There are sins that even the best amongst us are capable of making:
    • recommending something without having used it.
    • posting an answer without testing that it works.
    If you avoid these things and think that you can help, why not?
    ()-()
     \"/
      `                                                     
    
Re: Newbies, trying to help, and where to draw the line?
by cLive ;-) (Prior) on Sep 05, 2002 at 19:53 UTC

    Well, I starterd reading this thread in complete agreement with Abigail, but now I've thought about it a bit, I think the rule should be - post a reply if you're pretty sure you're right.

    And if you are wrong, go back to your post and edit it, using <strike> tags to cross it out. This ensures that no unsuspecting users will take the wrong advice in future if your post pops up as a search result. The last time I was totally wrong I learnt a valuable lesson - I don't think I'll ever forget how || and or work again!

    Don't take put downs as personal - some people here do lack in the tact dept sometimes, but make up for it by being very right. Learn from your mistake. And next time someone asks, you'll know :)

    .02

    cLive ;-)

    --
    seek(JOB,$$LA,0);

Re: Newbies, trying to help, and where to draw the line?
by sauoq (Abbot) on Sep 05, 2002 at 20:28 UTC

    I think posting is generally better than not posting provided you do so responsibly.

    Even I 1 try to:

    • Read the question twice.
    • Read the other answers.
    • Post when I think I'm right.
    • Test my answer to the extent possible.
    • Indicate my confidence in my answer.
    • Update when errors are spotted.

    Although you avoided the question of node reputation, I think it is worth mentioning, particularly in light of some of the responses which claim incorrect answers decrease the value of this site. Downvoting incorrect answers and upvoting correct ones helps others.

    I think this was an excellent question, by the way.

    1Intended to be a good natured poke at merlyn's reply.
    -sauoq
    "My two cents aren't worth a dime.";
    
Re: Newbies, trying to help, and where to draw the line?
by danger (Priest) on Sep 05, 2002 at 15:58 UTC

    There are two sides --- as Abigail-II mentions, incorrect responses require additional resources for correction and run the risk of the answer being used before it is corrected. That, of course, applies to all incorrect --- or suboptimal --- responses, not just those posted be relative newcomers.

    On the other hand, as moxliukas and Molt mention, many times an incorrect or suboptimal response will generate corrective followups that are more generally instructive to more people in the long run than a simple correct answer alone would have been.

    Personally, I fall into the second camp. That doesn't mean I support total guesswork, or posting things that haven't been at least minimally tested --- but I do not think 100% certainty should be a requirement for answering. About the only thing I am 100% certain of is my own fallibility.

Re: Newbies, trying to help, and where to draw the line?
by kodo (Hermit) on Sep 05, 2002 at 14:18 UTC
    Well I think it's pretty simple:
    If you think you know the answer, and you know that it's a correct one post it.
    If you are not sure, don't post it or add a comment to it but only post if noone else does in quiet a while because it's likely that someone with more experience posts a better/correct/more usefull answer than you would and that can save the questioner lots of time...

    giant
Re: Newbies, trying to help, and where to draw the line?
by Django (Pilgrim) on Sep 05, 2002 at 15:00 UTC

    I think in most cases a straight forward, perfect solution isn't the best answer one could give, because this would solve only the specific problem. Instead you can learn a lot from seeing different peoples approaches, because they are NOT perfect and others can point out the weak spots. Especially for a newbie (like me :), this is a powerful way of learning: try to understand the problem, offer your solution and compare it with others. Of course multiple, partly incorrect answers create an overhead, both for the one who asks and those who reply, but isn't the main purpose of this site to learn from each other, rather than just to solve problems? If you think your answer will work, try it. If you're too uncertain you could also keep the answer to yourself and compare later, or post it with a big questionmark.

    ~Django
    "Why don't we ever challenge the spherical earth theory?"

Re: Newbies, trying to help, and where to draw the line?
by abitkin (Monk) on Sep 05, 2002 at 20:43 UTC
    Although, I would be the first to post the incorrect answer, I think it's still a good idea. As I've seen in the CB a number of times, first it allows you to check your knowledge, as the masters pat you on the head and say, "No no.. Do it this way because of x." and often times it stimulates ideas.

    I do agree, that you need to say this is not tested, or to the best of my knowledge, thus qualifing your statement. Though still, I feel, it is helpful to post what you know, and maybe; with what you say, and what the person who's asking the question knows, they may be able to solve their own problem (a win all around.)
Re: Newbies, trying to help, and where to draw the line?
by Marza (Vicar) on Sep 05, 2002 at 16:31 UTC

    Ahhh Brother, Welcome to the PerlSnobs.

    As you will see there is a level of arrogance by some of the members.

    Abigail-II? Come on!!! you should only post if you know the answer is right? People tend to think they are right when they post. This place was supposed to be about learning. People do learn from their mistakes! Well some do! ;-) A great way of learning is having your "answer" corrected. I have learned slicker approaches by posting "incorrect" ways of doing things.

    So Nemp my advice. Trust your instincts. If you feel you are right. Post it. You answer will probably not be the best way of doing it(which some here would declare as a wrong answer), but if it works it is still right. The others will post their "corrections" and you might learn from them.

    If you feel you are guessing, then post with a disclaimer. It will start a discussion might teach a few things to others.

    Just my .02! I need coffee!

Re: Newbies, trying to help, and where to draw the line?
by Spenser (Friar) on Sep 06, 2002 at 05:38 UTC

    Darn!  I hate when I spot good discussions like this after a dozen or so responses are already given.  All the best answers have already been posted.  Nevertheless, here's one minor addition because I can't resist the topic since I've been clobbered for weak answers and given nothing for what I thought were good answers and knew to be working answers.

    In Super Searching for ideas and solutions to problems that I figure must have occurred and asked about before, I've run across answers that were either wrong or not understandable by me given my level of experience at the time.  When I read an incorrect answer and don't know it to be wrong (per se), I don't memorize the code and then go out and enter a Perl contest.  I copy the code with some modifications to integrate it into my script and then watch it fail when I test it.  I then play with the scrap of code to see if I'm integrating it improperly.  After a few failed attempts, I usually just delete the uncooperative code and Super Search again.

    And when I ask for help by initiating a thread and receive unhelpful answers, I don't condemn the person trying to help.  I mean, I don't know the answer either--that's why I'm asking.

    The result is that I learn more from the process.  I learn how to recognize what works and what doesn't work and what won't work.  Suggestions with qualifiers as simple as, "try this" are understood not to be guarantees.  And I think that they don't require the poster to warranty the node by making adjustments to the node, unless the poster wants to do so out of personal pride.

    Okay, there's my say.  I really would have had lots more good stuff to say if y'all hadn't beat me to it.  I've got to check this thing more often.

    -Spenser

    That's Spenser, with an "s" like the detective.

Re: Newbies, trying to help, and where to draw the line?
by Felonious (Chaplain) on Sep 09, 2002 at 00:42 UTC
    Well, it seems that the general consensus is that you shouldn't post unless you know you're right. And, they have a valid point. Your wrong answer might lead the questioner astray. Moreover your answer, if mistaken for wisdom, may spread like a cancer infecting program after program with bad code. Yes, this really happens!

    The reason this happens is because, often, bad code runs. It compiles without error, often without warnings, and produces the required result in the situation offered. If it didn't, it wouldn't spread very far. The result is that security suffers, modules are poorly written and widely adopted forcing everyone else to hack their own work to accomodate it's mistakes, and programming gets a little harder for all.

    It does happen, but if you refrain from posting can you prevent that? I don't think so. The above happens not simply because a wrong answer was given, but because no better answer was seen. Some piece of crucial knowledge was not made available (or came too late) that could have lead to a better understanding of what is involved. Thankfully though, PerlMonks is a community with a deep talent pool at it's desposal, and we can always refer back to the wisdom from the past. Wrong answers usually lead to a correction, with an explaination of why it needed correcting. And, in my humble opinoin, more is often learned from these corrections, than from the correct answers themselves. These discussions give us things a canned correct answer cannot, insight into the experiences of others that lead to better programming.

    Yes it would be more concise and efficient if the best answer was always the first given. But, to me the best answer should be a complete answer, including the why(s) and not just the how(s). In my experience this is rarely done though. Only in the messy fray that ensues after a wrong answer (and usually the more wrong the better), can you seem to find this.

    So post. Test first and think through your answer. If you're not completely sure, say so. Those are your obligations if you choose to be helpful. But don't worry. If you're wrong, your answer might destroy programming as we know it, but it's more likely that your answer will infuse more knowledge into the discussion than would have otherwise surfaced. You, as well as others, might learn something from it.

    -- O thievish Night, Why should'st thou, but for some felonious end, In thy dark lantern thus close up the stars? --Milton
Re: Newbies, trying to help, and where to draw the line?
by Necos (Friar) on Sep 06, 2002 at 03:51 UTC
    I know it's been said 2 ** 4000000 times, but I'll say it again. If you think you know the answer, just be sure that you state that you're somewhat clouded as to whether or not your suggestion is correct. To give you an example, in this article, I mentioned something about Config.pm, of which I was not totally sure. Abigail was quick to point out that what I said is both right and wrong ( use Config; will work if the @INC is compiled in the perl executable correctly). It was a slight misunderstanding on my part (since I've only dealt with pre-compiled binary versions of Perl).

    Yes, I was somewhat embarassed about being wrong. But, on the other hand, it was a learning experience for both the poster, as well as myself. Sometimes wrong answers can splinter off into a really interesting discussion. Just be honest about your knowledge of Perl and try to help where you can.

    Theodore Charles III
    Network Administrator
    Los Angeles Senior High
    4650 W. Olympic Blvd.
    Los Angeles, CA 90019
    323-937-3210 ext. 224
    email->secon_kun@hotmail.com
    perl -e "map{print++$_}split//,Mdbnr;"

      Huh. I don't think it's neccessary to say that you could be wrong. I think that the ability to be wrong is fundemental to being human. Even a Saint can be wrong -- even if you ask the Catholic church. In fact, it is abilty to be wrong that defines the soul, according to many religious philosiphers.

      Anybody can be wrong. And I think, realisticly, very few answers to most questions contain tested code.


      Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by responing to this node).

Re: Newbies, trying to help, and where to draw the line?
by RatArsed (Monk) on Sep 06, 2002 at 11:46 UTC
    My take on this is to put an answer, if you believe that it is a correct answer. You'll probably learn more by being corrected, than just sitting quietly in the corner.

    Lets face it, at the end of the day, everyone makes some mistakes, and anyone who claims otherwise is just lying to themselves. so, on this rather random logic, if we all make the odd duff answer, we shouldn't be penalised for it.

    It's also worth noting that while someone may be a Perl newbie, they may have a vast knowledge of a.n.other language, or they may have a wonderful skill of being able to translate algorithms into implementations, if only as pseudo code. The point here is that everyone does have a strong point, and that everyone's input can be useful - even mine :)

    --
    RatArsed

Re: Newbies, trying to help, and where to draw the line?
by mojobozo (Monk) on Sep 06, 2002 at 16:33 UTC
    If I may interject a small amount of hubris, here's a node that I responded to (twice) earlier today in which I tested the code before posting and then added the appropriate qualifiers: Returning Values from Subroutines.

    Not trying to sound snooty, but it did gain me some XP (most likely from the awesome code, than from the awesome posting style :ž).

    Talk about hubris!
    _____________________________________________
    mb
    word (wūrd)
    interj. Slang. Used to express approval or an affirmative response to
    something. Sometimes used with up. Source
Re: Newbies, trying to help, and where to draw the line?
by feloniousMonk (Pilgrim) on Sep 10, 2002 at 14:24 UTC
    The way I handle this, is if *think* I know the answer but am not 100% sure, I will
    test it out quickly if I can. If it works for me and I can't find an obvious flaw,
    then I will still post with a warning like "I think this works"

    Nothing is perfect, there will always be wrong answers, and
    they will be used. But I don't think this forum is broken into 2 distinct groups
    of "Teacher" and "Student", I think we are all learning so if an honest attempt is made at
    helping then I think there is value there. Plus, I know if a flawed answer is posted, chances are
    someone will yell at me and I will learn too.

    I remember a problem I asked about over a year ago - a bunch of the first
    answers were wrong but shielded with the "I think this may be right" warning...
    No, they were not right but the ideas presented lead me to find a correct solution.
    Without those "wrong" answers I would not have solved the problem.

    So there's my 2 cents, YMMV :-)

    -felonious--