Greetings monks, very happy to be back after a two year long absence :D.

So, now that I've been at this a bit longer, expanded my knowledge a bit and widened my skill set, I've returned to find it seems that even though there are a handful of questions I can answer confidently, I still feel completely unqualified to answer about 80 - 85% of the questions I see posted.

Of course there have been several discussions about the best way to thank the monastery for such wonderful insight and instructional answers, and most veteran monks agree that the best way to do that is to give back to the community by donating your time to answer questions as others have done for you.

OK, so here's my point, I see lots of posts that I maybe could give a half way decent answer to, but I usually refrain, because I don't want to cause more confusion and because I know there are about a million monks more qualified to answer the post than me. Lately I'm wondering if I should go ahead and learn a little bit more, give a little back to the monastery and try my best, or if I should refrain unless I'm pretty sure I know what the $#!& I'm talking about? What do ya'll think? Is it a waste of time to try and answer posts you're not extremely well suited to be answering, or, in the spirit of trial & error and supportive contributions, would you recommend that I just cowgirl up and get to answerin'?

UPDATE:

Wow, terrific responses, monks, thanks. See, this is why I love the monastery so much that I over-dose on all my latest O.C.D. tendencies worrying about things like whether or not to answer posts, because the amount of dedication, time and effort given so freely is absolutely INVALUABLE.

Also, ironically enough, there was a typo on "trial & error", which I remedied.

/me is so happy to see responses she closes eyes and momentarily enters an imaginary "koolgirl and the Perl factory" world, envisioning herself afloat a river of syntax, with choclate-covered scalars floating by...

You provide exactly the answer the OP needs in a way they understand and make their day

You provide a completely rubbish answer and get a series of replies telling you about it

You provide a 'me too' answer that is ignored by pretty much everyone

In case 1 you have indeed given back to the Monastery in the best possible way.

In case 2 you end up learning something, and very likely it is a common mistake so those who come across your answer in the future benefit from it. You still give back to the Monastery, and learn something important along the way. Actually this is a pretty good way of giving back too!

In case three it's not apparent that you have made much difference, but even in this case it's likely that there has been a benefit - see below.</c>

To answer a question well can often take reasonable effort. You have to understand the question and very often that means considerable skill at reading between the lines. Often you need to take the OP's code and munge it into a form that you can actually run. You may even have to invent some sample data or do other similar things to get a good understanding of the question. All this effort is great for exercising your Perl and analysis skills. Along the way you may end up installing a module you've not worked with before or using a feature of Perl that you hadn't played with previously and discover a new tool. Very likely you will end up consulting some documentation along the way, so regardless you are likely to learn or refresh something.

In all three cases just the process of doing the groundwork before providing the answer will improve your skills as a programmer and your Perl knowledge. I guess this goes to highlight that one of the best ways to learn is to teach.

I'd recommend you go ahead and answer. What you think is 50% of an answer may be 100% (or it may be 5%) -- no one will ever know unless you post. Failure should not be avoided. If you're on the right track, actively participating in the discussion is great. If you're on the wrong track, getting off that track early is probably best. I've had a few 'oh crap, what was I thinking' posts -- it's no big deal.

Before I post a reply, I perform some type of research to bolster my answer. If the OP provided code, I download it and try to run it to understand the issue in question. I will also read the relevant docs (perldoc and/or CPAN). 99% of the time, I provide at least one link to the appropriate docs. This gives me confidence that I have put forth a minimum amount of effort to understand the question and, hopefully, provide a helpful response.

Have you ever heard a teacher tell her class, "I've learned so much from you kids."?

When you see a question don't look at it as whether or not you know the answer. Look at it as whether or not it's interesting to you. If it's interesting, do some research; read the relevant POD, put together some test snippets, come up with a solution, pull out some of your books and investigate. The more you do that, the more you'll get to a point where you either know the answer or know where to find it quickly. Pretty soon you will be coming up with the answers quickly enough to be able to respond to questions here, and you will realize that you're learning as much from researching and responding as you did by studying alone.

That's part of what the Monastery is about; interactive and collaborative learning. No one person here could push Perl knowledge forward as much as the collective all working together and learning from each other along the way.

Oh, and occasionally you'll get it totally wrong. I once read somewhere that if you post the truth nobody pays attention. If you get something wrong suddenly all the experts take notice. I wouldn't make that the goal. Do your homework first. But it happens, and when it does people will correct you. If you take it in stride with good nature, it's quickly forgotten. ...and 20 people who almost posted the same wrong answer breathe a sigh of relief that it was you and not them. ;) We're all learning here.

and 20 people who almost posted the same wrong answer breathe a sigh of relief that it was you and not them.

lol, I believe that's called "taking one for the team"; which inevitably, in a collective effort, someone usually has to do, of course I would be more than honored to "take one for the Monastery", so long as my XP didn't suffer too much ;P

To those advocating to hold your tongue if you don't know the answer to a certainty, a pox. Seriously, my questions receive so few answers, and the answers I do get are incorrect so often (not necessarily usual, but often) that anyone advocating a reduction is doing everyone a disservice. Often an incorrect or incomplete answer gives me enough to go on to make progress or outright solve the issue.

What you have to offer may not be complete or correct. But it may provide another way of thinking that helps someone who reads it. It may be corrected by others, which, in turn, helps both you and the original poster. And it may actually be complete and correct.

If you're unsure, say so. There's no shame in learning, and no shame in not understanding fully. Simply be truthful. "I'm not sure, but my understanding is..." There are plenty of monks more than happy to correct your understanding if it is incomplete.

What I've found is that the fastest way to learn something is to teach it. This is not the other way around. It is not that you need to learn something to teach it, it's that you need to teach it to learn it. I "taught" C++ and STL to fellow students in university. Not a course, but to help teammates on our projects. After sleeping through my Digital Signal Processing course, I practically taught it to fellow students in the days leading up to the exam - they attributed mere passing to my teaching, I attributed my 8 (on a Stanine scale - "A-") to teaching them, and having to deal with all of their questions, not just my own. And that's what this site is for - I was "pretty good" at perl when I joined in 2005. I think I'm "much better" now (feel free to form your own opinion, I'm sure others have :-> ). I ask questions when I'm at an impasse. I answer questions to hone up and reinforce it.

Please. You'll be glad you did. :-)

Fair warning, though. Poxed monks may give you --'s when you get it wrong. You might lose a few XP here and there. Don't sweat it. Er... I mean, don't sweat it. :-S The XP you gain will more than outweigh it, especially over time. And it'll be a shorter time if you involve yourself than if you don't.

Update: clarification italicised above, as it seems chromatic may have taken it too literally.

To those advocating to hold your tongue if you don't know the answer, a pox.

Goodness, no.

Just about the last thing a novice needs is to be buried in an avalanche of conflicting responses with no way to judge what's correct just because people feel like it's okay to guess at answers. I can talk a good game about the internals, but when someone like Dave Mitchell posts, believe him and not me.

Updated original node just slightly. Although I'm not sure that your opposition changes anything. After all, we already get monks responding with bad and/or incorrect and/or incomplete responses. We get monks asking bad and/or incorrect and/or incomplete questions. (Incorrect questions? Sure. Think XY Problem.) Waiting for perfect questions and perfect answers is just not going to work. Sometimes that incomplete question needs answers requesting clarification. Sometimes incomplete answers provoke more complete answers that may not have come if it weren't for needing someone to correct.

How is a novice supposed to know who to believe as it is? We have nothing but the meaningless XP to gauge how helpful someone is/has been. Of course, by that alone, novices may already believe you over me (probably good), and either one of us over TimToady (probably not so good). If they ignore the XP, perhaps they'll look at the actual text and evaluate for themselves. Will they try a few wrong things? Sure. That's not the worst thing that can happen. The worst thing is probably having your thread completely ignored instead of resurrected by a wrong response.

Perhaps that's merely my take on the subject. I generally prefer answers that might lead me somewhere than silence. The answers might be rough, but perhaps someone else will come along and polish it into a fine diamond. Or maybe it'll remain a turd, but at least the Mythbusters have proven that you can, indeed, polish a turd.

We have many non-native-English speakers here, and by saying: "I'm not sure, but if by x you mean y, then maybe you should try z..." you might just have stumbled upon what the OP was trying to get at.

Don't fear being wrong. I religiously upvote nodes containing <strike> and words to the effect: "Nevermind, I completely misread the question..." because it took guts to admit that. Everyone occasionally suffers from methane on the brain (aka brain farts)!

As others said - if you are not sure and there are enough answers from other monks then you probably shouldn't. But if you want to answer and you aren't sure, then say so in your posting. I've been reading and posting in perl forums and usenet for years, and I'm sure I have given wrong answers in that time (I hope not too many *cough*), but I usually try to make it clear in my postings when I'm only guessing.
There are types of questions where you can simply try out if your answer is correct, but there are many things also you cannot try because it depends on the system, on other software you don't have and so on.
There will be other monks reading your answer and perhaps they'll correct it. If you feel that you are corrected too often then think a bit longer before posting ;-)
In any case, try to get as sure as possible, and you will continue to learn, whether you answer or not.

If the answer you intend to give is (a) correct in your opinion - at least as far as it goes - and (b) not repeating something already said, give it. Don't be afraid of giving incomplete answers, as you're likely to learn something. In reply to What did I vote for?, for example, I gave a reply that was shown to be incomplete and was not the only one to learn something new. If you know it's incomplete, state what you know to be missing.

If you don't know whether a potential answer is right, then I would advise much greater reticence - at least, if you're trying to answer one of my questions! :-) If no other answers have been proposed, I would still go ahead in your place, but would put in lots of caveats so that you don't send anyone off uselessly shaving yaks.

I sometimes find that, after researching the answer or trying some test code, I do not have anything useful to add to what's already been presented: in these cases, I have invariably learned something myself.

Don't answer, unless you know something is correct. If you don't know, think of the original poster - (s)he knows even less.

No answer is better than an incorrect answer. Really, it's better to know that ones question hasn't been answered then not knowing whether an answer is actually useful. It also means that other people can spend answering questions instead of correcting incorrect answer.

And don't worry questions will get unanswered. They won't on Perlmonks - after all, most people here don't have the doubts you do - they just answer whether it's drivel or not.

Please do. The mere fact that you're asking this question shows that you will try to give useful advice. If you really can't help, well, refrain, but sometimes all we need is a push in the right direction before we can solve our own problems.

I can attest to the learning-from-answering-not-quite-correctly. Not with Perl really, but when I was learning front-end, it was more anonymous and lots more bad advice... but the crusties were always quick to ignore the OP's question for a moment to point out why some other answer was wrong... and what the right way would be. I've learned as much from crusties explaining what's wrong with other answers as I've learned from correct answers themselves. Especially if the wrong answer was mine!

I like the idea of waiting a day if it's really comfortable, and then giving it a try if none of those who know everything got to it. :)

If you are unsure because the OP was ambiguous, then post with caveats. If you're not sure about it from a technical standpoint, the don't post. As others mentioned, if the post goes unanswered for a day or so, then go ahead and post with caveats/disclaimers.

The worst possible thing you can do is post both technically accurate answers to simpler questions (or on subjects you are much more familiar with) and ones you have little clue about. Because the Monks that have begun to rely on your correct answers will believe the ones that you have no clue about as well.