Wednesday, January 7, 2009

How to ask ‘intelligent’ questions in forums and discussion boards. ... & get the information you want..

  • People don’t like being take advantage of.
  • People like helping.
  • You get back what you give out.


Those three lines sum up all I will talk about here.


Whenever a student asks me a question a little filter system runs in my mind: It goes something like this:
‘Have they put in a fair effort ?’
Are they just using me to because they are too lazy to lift the spoon to their mouth ?’
If I get the feeling that some effort at finding an answer and some thought has gone into the problem, I will answer it.

If I get the feeling that the question has been dashed off in a great hurry without much thought or effort I’ll simply ignore it, or I might write an article like this instead.


If you are ASKING a question:

You are asking for a favour, the forum does not HAVE to give an answer, they don’t OWE you anything.

The people who answer do so out of goodwill, from the goodness of their hearts.

They are not stupid and they don’t like being taken advantage of.



Therefore:

Make it easy for them to answer you.

Thank them.



If you are ANSWERING a question:

Reward genuine effort, ignore everything else.

Remember the questions you once asked.

If you want tell someone where to go: don’t !



A famous hacker guide on how to ask questions
http://www.catb.org/~esr/faqs/smart-questions.html



On a discussion forum:


When posting a question:

Use a descriptive subject line for your posts :-)



Don’t do this:

Q: “help, my code won’t run”

A: do you want me to play twenty questions and tease out the problem for you ? If you can’t be bothered thinking about the key issue you want help with I can’t be bothered reading past your subject line.



The twenty questions game:

“What is wrong with your code dear ?”

“Every time I run my code I get an exception and the system crashes”.

“What did you do just before the problem happened?”

“I don’t remember”.

“Can you go back to a previous version?”

“I don’t remember what my previous version is”

“How about chopping out the most recent code and seeing if the problem still continues?”

Etc… Unless the person answering is being paid a huge rate by the minute the conversation will probably never get this far in real life.



Most self-respecting programmers won’t bother to extract the key question from you, you have to give them the core problem in a clear and precise a way as you can. Convince them that you are worthy of an answer. It’s not really that hard.



Do this:

Q: “ modulus operation for hexadecimal base conversion gives random results ”

A: this shows some thought, and tells me what we are dealing with. An experienced programmer immediately clicks through her list of common mistakes using modulus. It only takes a quick read to identify the issue and voilá the problem is solved !



Q: “After encapsulating the complex number addition in a function the program crashes every time a negative real number is passed. I’ve tried XYZ”

A: This question shows some thought, effort and is clearly expressed. It sounds like someone I want to help.



Posting questions summary:

tell us what you have done so far, what you tried, and what you really need help with.

- what errors did you get ? what was the error message ?

- what exactly did you enter ?

- supply relevant information - your code, just the RELEVANT bits... . if you don’t want to wade through pages of someone else’s code don’t send them pages of your code.



Golden rule before you post a question:

Put yourself in the shoes of the person reading your question.

Read your post and imagine how you would feel if someone asked you that question.



BLANK general questions that sound like the questioner wants others to do the work

for him and that does not get much response.



SOME kind of attempt at an answer is a good idea and means that others are much more likely to want to help you.





How to get useful help:



Read this: http://www.catb.org/~esr/faqs/smart-questions.html

Really I mean it, read this, not just for this course, but it is a wonderful hint sheet on how to get what you want in life GENERALLY, not just on a discussion forum !



Do the following:

- say what you tried.

- what did you get ? what is the EXACT error message ?

- give code, but ONLY relevant code, give enough to give me an idea, but do NOT dump the whole file into an email and hope I will have time and inclination to sort it out for you. I won’t. I’ll help if I get the feeling you have made an effort to present your problem clearly and you have tried the logical next steps.



Most people are happy to help if they see that the person is genuine and has tried the help himself.



A humourous look at how to ask good questions here: stackoverflow.com/faq

Favourite programming cartoons stackoverflow.com/questions/84556/whats-your-favorite-programmer-cartoon

What not to do:



A real example:

Q: " i get error "invalid variable " and don't know what it means ? how do I compile to get it working ?can u help? "



Well yes, I "can" help.

Next question?



The kindest answer would be simply to send them a link to this page. http://hycoteaching.blogspot.com/2009/01/how-to-ask-intelligent-questions-in.html

If you get a link like that, then please read and take notice J .



For some reason bad spelling, sloppy grammar often go together with lack of effort and careless thinking. Whenever I see bad spelling, sloppy formatting and fuzzy grammar I lower the effort I put into my answer by 70%+. It may not be fair and it may not be a logical response, but it is how much of the world reacts too.



Another real example: (names changed)

On Wednesday, 12 October 2008 at 04:01 pm, "Mr Speedie" wrote:

hii, i'm having some problem on lab 4.

First, for the decoded part, are we just separate into three in a group from the begin even the strlen of parameter is not multiple of 3?

Second, how can we separate the parameter into 3 in one group?



Hi Mr Speedie,



- ask at the discussion board,



- have you asked a tutor in your labs ? What did they say ?



- come to Wed 12;30 help session.



- talk with friends...



- when you ask questions like this: it would be good to show some effort: what have you tried yourself ? your question is TOO general.

Even for discussion board: show what you have tried, show what you think, then ask for confirmation.

It sounds like you are asking people to do the work FOR you. That never gets much of a response....



- when you have tried the above and have some code of your own to show, let me know :-)



good luck



Mr Grumpy.





How much time would you spend answering a question that looks like it was dashed off between a browser refresh cycle ?





The same principles that apply to getting help with programming and coding apply to the rest of life:



Example email from a student to a lecturer.



...my report mark is too low could you please reconsider ?

thanks.

J. Student



This is what the lecturer would have to do to answer such an email:



1) Lecturer has to forward email to tutors and ask who the tutor was: “is this student in your lab class ?”



The student simply did not put herself into the shoes of the person who was receiving this email) -> result: student collects 3 virtual negative grumpyness points



2) the lecturer usually has many different courses, it would save time and effort to clearly say what course the student is in. Having to hunt around for student numbers and searching spreadsheets means the student collects another 3 virtual negative grumpyness points



3) no history of what the problem is: it would be nice to know if there was anything unusual about this request, (there often is and it takes a lot of emailing back and forth to dig it out)

“Why do you think you deserve more marks ?” etc…etc… etc.. 3 more emails.

-> result: student gets anther 3 virtual negative grumpyness points (in the mental counting system)



4) Tell the lecturer if you have dropped a copy in the digital drop box, perhaps attach a copy to make it easier to see. Each time a person has to hunt around a database or a Hard Drive the chances of you getting what you want drop.



Ok you get the idea by now, I'm sure.



The basic principle is: if you want something from someone and you rely on their good will then make it AS EASY AS POSSIBLE for the person to give it to you.

How ?

Show that you value the person's time by



+ Supplying all relevant information: student number, course, tutor name, exact clear description of problem

Don’t make them play detective.... they may not bother to answer you.



+ Show respect, it won’t hurt and might even help J



+ Put yourself into the receiver's shoes and imagine what they might want to know, do your really think they will increase your mark just because you ask ? OR do you think they might like to have a GOOD reasons ??? ........... )



These are basic simple tricks and tips you can use in any situation in life where you deal with a bureaucratic rule based systems (University, Government, Companies... cubicle life a la Dilbert www.dilbert.com ).



Surprise surprise: Lecturers actually DO want to be fair to you, and do the best for you.



From now on, if someone emails me with some cryptic kind of message I'll reply with a link to this page and let you figure out what might be missing :-)



Heiko



Dilbert:

http://www.dilbert.com/comics/dilbert/archive/dilbert-20061105.html


© 2003-2009 heiko rudolph

Sometimes the threads on the loom suggest the picture to come. Then we know that our children-to-be Hope for us in the bardo. For them we weave until out arms grow tired.

from: The years of Rice and Salt - by Kim Stanley Robinson

No comments:

Post a Comment