Being Helpful to Others in the Channel
Tips for being helpful to others in ##PHP
The following is meant as a guide to cater to those individuals whom contribute to the channel by helping others. Being helpful to others in the channel, as well as being in good standing with the majority of our users, is an important part of making ##PHP a quality resource. Remember, this document should serve more as a reference for tips and guiding-points rather than a set of strictly enforced rules. We hope that ##PHP is a resource for giving and getting help with the PHP language, but we also hope to be as courteous to others as possible in the process. No one should feel oppressed or antagonized in the channel just because they aren’t knowledgeable. The general ideology is that you are not required to provide help at all, but if you would like to contribute it is more helpful that you don’t contribute with negativity where possible. Remember that the burden of help is shared between those asking for help and those providing help. So be respectful above all.
Below are a few examples of when you probably should not jump in to the conversation:
(a) you do not know the answer to someone’s question - we don't need a dozen people stating they don’t know something
(b) you feel that the question has already been sufficiently answered
This would be the opposite of when a question has gone unanswered or when the answer provided may have been inaccurate or incomplete. Adding to the discussion benefits all parties involved, because if someone else in the channel has the same question they would probably benefit from getting a more complete or accurate answer out of the discussion as a group.
(c) the person asking the question is being belligerent or particularly aggressive towards you
(d) the person is asking for you to do their work for them instead of asking for direction or assistance - we sometimes refer to this as spoon-feeding or hand-holding
(e) the question this person is asking is considered off topic and should be directed to another channel or resource.
We cannot support every aspect that ties into PHP. Unfortunately, this includes third party stuff like frameworks, editors, IDEs, APIs, and libraries. Just because you are doing something with PHP doesn't necessarily mean it is supported by ##PHP. We aim to support helping you write code in the PHP language and not support everything that ties into PHP. This would account for a huge array of things and it would be too problematic and noisy. Just try to remain objective above all.
Since this is all voluntary we don’t expect that you will hold someones hand and walk them through everything step-by-step, but it is note-worthy to say that this shouldn’t result in altercations by berating someone who’s asking for help - even if you feel the problem is simple or “noobish”. Not everyone is an elite PHP programmer and we were all a novice at some point. It is important to keep this in mind when helping others and demonstrate patience and a willingness to be helpful at all times.
The following should also help serve as areas of guidance for keeping your cool when helping others.
Don’t assume you understand the problem right away
It’s a good idea to ask some questions first when you are unsure of what the person is asking or where clarification is needed. You may need to look at the code (so ask for a pastebin - but do it politely). Try not to use retorts like “Well, we can’t see your code, now can we?!” Some people just don’t know how to formulate the question in a way that will get you to understand their predicament. Others, may not fully understand their problem themselves. So if even you help someone understand their own problem better or come to a mutual understanding of that problem together - it’s far better than just blurting out solutions.
Try not to start off with things like “Well, that’s stupid...” or “Why would you do a stupid thing like that?” Sometimes this can put people in a defensive mode and they will guard themselves against any solutions you offer up even if what you’re providing is the correct solution.
Make sure you aren’t oversimplifying the problem
Sometimes we don’t see the whole picture. So it’s important to recognize that others asking for help may have already dumbed down what the problem is before turning to ##PHP for help. This happens more often than we think. Some of us are so used to answering the same questions that we automatically assume everyone is asking the same question and jump out with cookie-cutter answers or solutions. If someone says “That doesn’t solve my problem...” or “I’ve tried that already...” simply digress and try to get more information. Sometimes, it is in-fact a mere over-sight or something silly, but that’s OK. The burden of solving the problem is both on the questioner as well as the questioned. So try to workout the solution together rather than becoming a mere dictator trying to look down on people.
Allow others to contribute and don’t get in a quarrel while helping.
There are times when other people will try to jump in with answers or solutions of their own. That’s OK. It is good that we try to contribute and sometimes our intentions exceed our knowledge or understanding of a particular matter. If you happen to cross paths with others just focus on the person that actually needs your immediate help. Try to refrain from getting into a debate with others over which solution is best as this can make the person who’s actually asking for help feel left out or forgotten about. There’s no harm in trying to correct any misconceptions or misunderstanding someone else may have inadvertently interjected, but it’s possible this may just prove more problematic than helpful. The reason we try to correct others if they do contribute bad solutions is so that if anyone else is in the channel reading and has the same problem they may get the best information. Remember, what we try to offer in ##PHP is considered the best standards/practices and it’s still every one's responsibility to know what’s best for their particular project or software.
Try to give direction not write a book
This might actually be a lot harder than it seems. When people generally ask short questions like “How can I iterate through a delimited string?” we might jump out with an answer like “Use explode!” but that person might actually be trying to do something else like figure out the foreach construct or perhaps they just need more information on how the explode function works. So it might be more helpful to point them to the manual (so that we don’t have to repeat or copy/paste tons of information - otherwise we’d be writing a book). If you feel it’s also helpful to point out specific examples or parts of the manual page that will aid in their specific problem, or answer further questions they may have, then be sure to do that. People will appreciate it more when you are offering guidance that lasts. People can turn back to the manual or the examples/resources you pointed them to later - if they need it. This is a lasting sort of direction. Others may just want a flat answer.
Just don’t force people to read an entire book or go through a cumbersome process in order to find a simple answer. This can be equally as frustrating to both parties. If I ask you for a function that can return a sub string (or part of a string) it’s easy enough to point me to http://php.net/substr but don’t point people to http://php.net/ or http://google.com/, because they very well may be more irate with you than if you simply didn’t answer their question.