The art of asking questions
This is the second part of a series about most important skills for developer. The first part, about searching for answer skill, can be read here.
Searching for the answer is usually the fastest way to solve a problem
But searching on Google might not be enough to find you the answers, you might be the first to encounter the problem, or you might be searching for the wrong keyword. Sometimes, you have to ask the questions, hoping that some one, some where does know about the problem, and is kind enough to spend some time reading your questions, and typing the answers.
We’re lucky because internet is full of people like that. But that does not mean you should not be good at asking good questions.
A good question is a question:
- Is easy to understand the problem is.
- Has enough information to solve the problem, or at least, issue good guesses. It’s important to include a full stacktrace of the exception, or the screenshot of the problem, or even better, both. “Does not work” is not enough. “Throws errors” is not enough. What does not work? What is the error? In most of the cases, a generic exception like
NullReferenceExceptionis pretty useless without the context, so make sure to include the stacktrace. You can – and should – remove any sensitive information which can give away your identity, our your business, but keep any technically significant information.
- Well formatted. I personally don’t like to read a wall of text without any format or proper indentations, and I assume no-one does. Remember, people are spending their limited, precious time, answering your questions for free, so make it easier for them to help you.
- That you actually did your homework, by trying/researching for results, but it didn’t work. What did you do, and what were the results?
Asking question is a part of learning process – and it make the community better as a whole. By asking good questions, you are also contributing to the community by helping the ones come after you – they don’t have to spend time to ask again, and can get answers in matter of minutes (or even seconds).
And remember to come back to give feedback on the answers, because, it’s important to not be that developer.
Just don’t make it “let strange people on the Internet do my homework, for free”.