And Help You I Shall!
My previous post on constructing meaningful questions was inspired by years of frustrating experiences on forums and bulletin boards, but it wasn't until I had a chat with me ol' mucka Dan that I realised that there are actually quite a few cases where good quality questions are given inappropriate or completely misleading answers.
The intent of this post is to cover that side of the argument. How do you give a meaningful answer to a well constructed question?
I'd like to start by sharing an example of a recent forum thread that I saw which highlights the issue nicely.
Asker: I've recently been given the task of creating a C++/Win32 version of application appname. Unfortunatley I've never written any Win32 code before, so I need a few pointers to get started. Can someone please show me an example how to create a Window using Win32 and C++?
Answerer 1: Download .NET and use managed C++ to create your form.
Answerer 2: I use allegro for everything, and I think it's great. Download allegro and use the tutorials.
Answerer 3: Managed DirectX extensions make it easy to GUIs, try using that.
Answerer 4:Using Win32 is a pain, why are you using it? Why not use Java?
Answerer 5: If you're going to use a graphics API then you're better off using something like SDL which is cross-platform.
Is it just me, or are all of those answers total and utter shit?
The bloke who asked the question clearly wanted an example of window creation using the Win32 API and C++. What did he get in response? Recommendations for 5 other technologies that people like to use for their own projects. Not one meaningful answer.
As far as I'm concerned this is the same as having someone ask "I'm really in the mood for fish and chips, does anyone know a good shop to get some?" and have a few people respond with "Well, if you're going to eat food, then you should consider a Thai Green Curry with Lamb" or "When I eat, I like to have lots of sugar. So go to Dreamy Donuts, and try the super heart-stopping, 3-hour-old, artery-blocking cardboard donut. It's fantastic!". WTF has that got to do with fish and chips?!
One of the universal issues we face is the fact that people do not have the ability to read the question. It's something that people have had a problem with since the early days of school. They fail to read the question properly, and instead come up with their own version of the question that isn't the same, and hence their answer is poor.
In the case of coders, there's a bit more to it. People like to preach and evangelise technology, languages or applications that they like to use, as it makes them feel good. Most people like to push form threads and conversations towards a topic they consider themselves to be experts in because it gives them the chance to get on a soap box.
Now, I'm not going to say that I don't get on a soap box, because I quite clearly do!
But the point I'm trying to make is that people who ask specific questions deserve specific answers. So here are my rules of thumb for answering peoples questions.
- Read the question. Then read it again. There is no way you're going to be able to give a meaningful answer to a well constructed question without fully understanding what's being asked. Try to adhere to the golden rule of answering questions: If all else fails, READ THE QUESTION.
- Answer the question, but don't post the response. Answers to questions are like solutions to problems in development. Your first iteration is going to be a solution, but it's not going to be the best solution. Reread your answer. Scrutinise it. Look for as many holes as you can find. Any that you miss will be picked up by someone else!
- Rewrite your answer. After you've answered, and you've found the holes. You'll no doubt have to rewrite it. Make sure you use grammar, punctuation and well constructed sentences. Try to keep sentences as short as possible. Be as clear as you can without being verbose. Provide examples of code or references to cases where your view has worked in the past. Provide links to documentation to support your answer.
- Direct your answer at the question! Make sure that your answer does actually answer the question. Make specific references to the parts of the question that you're answering and point out how it's of benefit, or how it actually relates to the problem.
- Don't evanglise your favourite technology. If you come across as an evangelist, then people will tend not to take your response seriously. It's easy to see whether someone has an open view, or whether they're biased towards something they have a passion for. Don't be a preacher!
- Don't answer if you don't know! Lots of people seem to put their $0.02 into the conversation even if they don't know what they're talking about. It's quite simple: if you don't know the answer, do not respond to the question. You won't be adding anything of value to the discussion and you'll end making yourself look stupid. Instead, you should monitor the thread and wait for someone else to respond. Chances are you'll end up learning something!
Thoughts?
-
OJ
-
Moffmo
-
ryan