There have been a few questions on here in the past about whether there is a place for tutorials/"how to" articles on Stack Overflow (for example, here and here). But I didn't see anyone make a strong case for embracing the creation of tutorials on Stack Overflow, so let me make a brief attempt...
Why should we host tutorials on Stack Overflow?
- If I'm looking for a tutorial on a particular topic (for example, data binding in WPF), I will often do a web search with keywords like "Getting started" or "tutorial", but what comes up is often a mixed bag. I think it would be great if I could come directly to Stack Overflow and search for
[tutorial] [wpf], looking at the upvotes to judge easily if it is going to be worth my while.
- When I solve a problem myself, I often write up how I solved it and blog it, if nothing else so I can google for my own answer in the future. It would be nice to be able to put these mini-tutorials on Stack Overflow, but I don't at the moment since it seems to be against the spirit of Stack Overflow to post a fake question just so you can answer it yourself moments later.
- I also sometimes write mini-tutorials on the correct use of an open source library. Again, they could easily be presented in the form of a "How do I..." question with a tutorial style answer.
- There are many subject-matter experts here on Stack Overflow who post articles on their own blogs or on sites like The Code Project. That is of course fine, but would Stack Overflow not benefit from being the host of such excellent material?
How could it work on Stack Overflow?
- Have a [tutorial] tag. People tag a question with this if they are either seeking a tutorial type answer or proposing to write a tutorial themselves.
- Voting up a question with the [tutorial] tag means "yes, the Internet needs a good tutorial on this topic"
- The question asker would be at liberty to answer with their own tutorial, but it would also be fully open to the community to provide rival better tutorials.
- Alternatively the question asker could create a community wiki answer, inviting others from the community to enhance it.
- People could also answer with a link to a good tutorial elsewhere online, which, if it is good enough, can be upvoted indicating that Stack Overflow doesn't really need to provide an alternative.
- You could have a period where answers couldn't be upvoted but only commented on, allowing tutorials to undergo a few rounds of revisions before being voted on by the community.
Are there any potential issues?
- The answers could get very long, which might require a "read more" link at the bottom of answers (I don't know what the Stack Overflow answer length limit is at the moment)
- Good tutorials often come with sample code. I don't think it would be a good idea to introduce attachments to answers, but we could encourage people linking to small projects on GitHub or similar. In fact, if Fog Creek Software were willing to let each Stack Overflow user create mini-repositories on a cut-down version of Kiln it might be a great marketing opportunity for them!
- It could be frowned upon as an alternative route to gaining reputation points that doesn't require you to answer anyone's questions but your own. One solution is simply to say any [tutorial] tagged questions and their answers are automatically community-wiki.
- There might be a risk of a proliferation of low quality tutorials on topics not really in need of yet another tutorial (I won't mention any site names). I personally think the voting system on Stack Overflow would handle this though.
Anyway, is this just a stupid idea, or would it benefit Stack Overflow? I can always keep blogging my own tutorials elsewhere, but I'd be interested in what people think.