During my time on Stack Overflow I've noticed a divergence of sorts when it comes to how more experienced developers answer questions from people who have no background in software whatsoever. Let's assume the newbie has asked a question more specific than "How do I start learning to program?" It seems that we fall into two camps: the first directly answers the question being asked and leaves it at that, while the second attempts to explore the deeper topic of proper software engineering within the context of the question.

Which should we be employing? Take a look at this question, for instance. It certainly is easy to point the new guy to a book on how to write code for Android and how to write game code for Android, etc. However, are we really doing him a favor by leaving it at this? Shouldn't we be trying to explain that it's not just about writing some text in a file and making it go? In my opinion, we should be pointing users with no development background to resources that will teach them not only the specific development skill they want right now, but also the theory behind it so they can become productive members of our community.

I'm quite curious to hear people's thoughts on the matter.


People that honestly want to learn and improve themselves ask intelligent questions. Even through a language barrier, you can often notice someone who is just as interested in understanding their problem as they are in fixing it. When you encounter these people, give them as much knowledge and insight as your time and inclination permits. Remember, it's not just the question author that you'll be helping.

Then, you have those who simply don't care why something is happening, they just want their code to run as quickly as possible. They won't be thankful for the explanation, they'll be thankful that no more effort is required on their part. These "help vampires" will continue to feed on the motivated until someone sours the proverbial milk. Don't waste your time on someone who doesn't appreciate it.

In the middle of that, you get the rare exception of someone who really does want to learn but simply can't articulate their problem. Some people need to initially ask what to ask because they are intimidated by a mile long stack trace.

It is hard to write some kind of guideline, but you can identify the vampires by some (or all) of the following characteristics:

  • They don't read, reading is like sunlight to them. They start with the minimal effort required and work their way up from there. If you feel like the asker has put most of the responsibility for solving their problem on you, you're dealing with a vampire.

  • You rarely see the word why come out of a vampire, usually it's what or how. Words like "should" tend to solicit thought provoking responses which are painful to help vampires.

  • Vampires usually have a heightened sense of urgency, after all - they're hungry! If most of the question is an explanation as to why humanity might end if they don't get an immediate answer, you're dealing with a vampire.

  • Help vampires are surrounded by the carnage of under appreciated wisdom and knowledge.

Your time and expertise are your gifts to give. If you think that you can help someone while teaching them something, spend as much effort as you'd like. If some background helps to illustrate your point then go ahead and provide it.

Just spend your time on those who will likely take something more than a 'quick fix' away from the experience.

There are easy questions from seasoned programmers, many of them trying to debunk a regular expression or troubleshoot a memory error. But, those really don't fall into this particular category.

| improve this answer | |
  • 1
    +1 for a good laugh. Also, couldn't help it: slash7.com/2006/12/22/vampires – Matt Ball Mar 9 '11 at 4:56
  • 1
    @Matt - I would have just linked to that if I didn't spent the last week griping at people to stop posting answers that depend heavily on links without providing a summary :) – Tim Post Mar 9 '11 at 5:38
  • I really like the vampire spin you took on this. It's totally true! I guess part of our jobs as question answerers is to be able to tell the difference between a vampire and a human. It is always annoying seeing question answerers earnestly answering a question asked by an obvious vampire. – Marc W Mar 10 '11 at 20:26

The specific question you linked to is a bad question: you may be inclined to forgive it because he claims to be a newbie, but it's still such a bad question that it's hardly a question at all.

"I just started work ... I'm not helpless but want help ... give me some tips or resources on basic programming."

There's no actual question mark. The best/only possible answer would be a link to, I don't know, Thinking in Java or something like that. I'd be inclined to close it as "Not a question ... difficult to know what's being asked", and add some helpful hyperlinks as comments (not answers) to the OP, and/or an invitation to return if/when he has any specific question.

The FAQ says, "Stack Overflow is for professional and enthusiast programmers": which the OP arguably isn't, if he hasn't yet found his first, most basic programming tutorial. I wouldn't know how he knew enough to decide to install Eclipse: but that's not my problem, as I said, I reckon it's just a bad question or a non-question.

| improve this answer | |
  • You have a point about this particular post, but I think in general this is still a valid concern. Should we really be writing off people with no programming background because they aren't yet professional, nor skilled enough to be considered enthusiasts? – Marc W Mar 9 '11 at 2:44
  • 4
    I know people with no programming experience who could answer that question. It's not about the skill or knowledge of the programmer but instead his/her ability to think for him/herself and go do some research. – jmort253 Mar 9 '11 at 2:57
  • 2
    @Marc I'd like to reply, "No we shouldn't write off people; but we should write off questions that aren't questions." The basic question i.e. "What book should I read to learn Java (or whatever)" has I expect already been asked and answered. – ChrisW Mar 9 '11 at 11:17

If it helps,
When I ask a question about some code I made (generally it contains an error), the first thing I'm looking for is how to fix the bloody thing (I usually spend a couple of hours beforehand trying to get it working, and by then I'm frustrated).

However, after someone helps me out, I start asking question after question along the lines of "Why do blah rather than blah?" and "What if blah happened?".

I've learnt about 6 high level programming languages now, yet I still feel about 2 inches tall compared to most of the people who answer my questions. Because of this, it would be great if all answers would not only address the issue, but explain why they did certain things and what I did wrong.

So, in short, just the answer is never enough for anyone who is actually enthusiastic about what they do.

| improve this answer | |

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .