Stack Overflow is great resource to learn. For both someone asking a question and answering a question. Posing a question let you reflect on your problem. A lot of the questions started are never submitted because the act of posing a question helps solving it. Answering a question helps to stretch your knowledge bit by bit. You may answer questions directly but sometimes you know only 75% of the answer. Now you have to stretch your knowledge a bit to be able to answer it and you'll learn something on the way.

This is the positive side of Stack Overflow; on the other hand Stack Overflow is not good enough for systematic learning: I want to learn more about X!. You'll find something about everything, but it's not efficient. The knowledge that is in Stack Overflow is not refined in a way to allow this.

This is unavoidable for a site that wants to help users with immediate answers to their problems. The knowledge amassed is only a by-product of this process. Nonetheless it can be put to another use with some extra effort.

This is the basic idea:

Select and revise Stack Overflow questions and answers to allow efficient learning.

Stack Overflow question and answers cannot replace text books, articles or blogs, but can provide exercises for a given topic. We learn by application of the ideas presented in these other formats. If you dust off your TAOCP there are always exercises after all the theory. The exercise part is where the learning starts by reflections. Before that it's just following a beaten path: "Oh yes it's this and that and O(n)".

Given some effort it is possible extract high quality exercises from Stack Overflow:

  • Select good questions (probably < 20% for this purpose)
  • Select the best answers
  • Assign some grade of difficulty (to create some order)
  • Add additional tags (when the tags are missing or to not fit into the structure of the anthology)
  • Optional - Revise the question and answer
  • Optional - Add missing questions and answers

The biggest advantage is that the posed questions are real world problems. This is a big factor to motivate learning.

There could be some feedback into Stack Overflow in later steps. Stack Overflow is really complicated enough but some form of quality improvements may be desirable. Wikipedia added some quality improvement measures later in the project after it gained a critical mass. It may be nice to see high quality content highlighted in Stack Overflow, but it is not essential to the anthology idea.

The best way to start and see if this idea works is to take a tag with few questions (less than 1000) and categorise all of these questions. The target would be to extract ~100 questions. Some software is needed to support this. Development could start with a limited set of edit tools to select questions, answers and add tags. For learners a page to browse the anthology with direct links to Stack Overflow is enough to get started.

Is this a bad idea or would you like to work on this project?


2 Answers 2


I don't believe this would really provide a good way of learning. To my mind, books are the best way of learning systematically. (I'm biased as an author, admittedly.)

While much or indeed all of the information presented in a book is usually available online, books provide precisely the systematic approach you mention. They are designed so that you can build up your knowledge. A good deal of time is spent working out the order in which ideas should be presented etc. This doesn't naturally come in the form of questions which developers would generally ask.

If someone wanted to learn C# from scratch, I doubt that I could piece together questions from Stack Overflow to provide anything nearly as effective as a well-written book. This doesn't detract from my view of Stack Overflow as a wonderful source of information - but different requirements (learning systematically vs finding out about one specific question) are best met by different solutions.

EDIT: I hadn't seen "Stackoverflow question and answers cannot replace text books, articles or blogs" in the original question. However, I'm still dubious about the idea of the project as a whole. I think I would rather complement book learning by encouraging people to read questions that interest them and try to answer those questions.

  • Normally, CS books don't have a TAOCP-style exercise section. I suppose, it's hard enough to finish the book let alone come up with a lot of useful exercises. A SO companion anthology can help here to check what you have understood. Commented Feb 21, 2010 at 12:21
  • 2
    Have you tried learning a language you don't know at all from SO? If not, try. It's impossible. Commented Feb 21, 2010 at 14:44
  • The goal is not to replace books but to complement them. ("Stackoverflow question and answers cannot replace text books, articles or blogs, but can provide exercises for a given topic.") I did not suggest to learn with SO questions only. This will not work as it would not work to learn with theory only without some form of exercises. Commented Feb 21, 2010 at 16:37
  • @Thomas: Yes, I hadn't seen that bit. I'm still not sure about the project as a whole though, to be honest.
    – Jon Skeet
    Commented Feb 21, 2010 at 18:42
  • "Read questions that interest them:" Part of the problem is how do you find questions that are of interest and have a certain quality among 60k C# questions? Is search the only and best way in all circumstances? Browsing by tags for example is not usable at this scale. Commented Feb 22, 2010 at 8:34
  • @Thomas: I'd encourage people to just watch new questions in the tags that interest them, if they're popular tags. There's enough interesting new traffic to keep people busy, I suspect...
    – Jon Skeet
    Commented Feb 22, 2010 at 8:40
  • @Jon there is quality content on SO that is not necessary going to repeat itself in that detail and depth. Exploring other means of accessing that content other than SO's front page and tags could turn out to be very interesting.
    – Pekka
    Commented Feb 22, 2010 at 14:19
  • @Pekka: I can just see it being an awful lot of work for relatively little benefit. I could be wrong, of course :)
    – Jon Skeet
    Commented Feb 22, 2010 at 15:48
  • @Jon you may well be right. But (as you can see from my answer) I find it intriguing enough to try something in the field once I have some spare time. We will see whether anything comes out of it!
    – Pekka
    Commented Feb 22, 2010 at 20:12

I find the desire to "do something" with the SO knowledge pool understandable - there are hundreds, if not thousands of invaluable gems in SO's pool of questions and answers. Gems not only because questions are well and correctly answered, but more importantly because dozens of people have looked over the information, corrected it, and added additional pieces from their own experience.

Before I found SO, the User Contributed Notes in the PHP manual were, the best example of this kind of knowledge accumulation I knew. Every function has hundreds of comments with real-world information like "took me days to find this out, on OS xyz, this fails if abc is not installed and a is b". (Examples here.)

That said, I agree with Jon in that the content here is not really made for systematic learning. That's what a classic book is for.

What I would find interesting to see are sort of on-line, editorial approaches - technically just simple hand-picked link lists, really - that highlight the best questions (and of course answers) from certain fields. For example, every PHP related security question has an answer on SO - you just need to fish them out, and compile them into a list to have a great compendium - not for systematic learning, but as a "cheat sheet" to look up.

Edit: Having re-re-read the text carefully, I can see more ideas I like, albeit still not under the "systematic learning" umbrella. But maybe that is a question of perspective - I am self-employed and currently under a lot of pressure to get things done, which decreases interest in learning altogether new things. In that situation, what I am most interested in is what I mean by "Cheat sheets." Quick, complete info drenched in expertise. But that doesn't have to be the only way to work through SO's knowledge base. So @Thomas, as far as the idea of building "link lists to SO questions" (in want of a better word, you know what I mean) paint me very interested in general, albeit with the aforementioned different perspective, and very little room for any sizeable contributions until the end of this year. I could, however, imagine the technical end of this could be quite easy to achieve in a Wiki maybe.

  • I did not think of a printed books. "Hand-picked link lists" could be better metaphor than anthology that has a connotation of a printed book. Commented Feb 21, 2010 at 16:42
  • @Thomas I misunderstood that, sorry. I edited that part out.
    – Pekka
    Commented Feb 21, 2010 at 17:01
  • @Thomas I added a paragraph to my answer.
    – Pekka
    Commented Feb 21, 2010 at 19:01
  • A wiki is a possibility to get started. In the long run better support is needed to cope with the amount of questions per day. To get started you need a critical mass of supporters. Commented Feb 22, 2010 at 8:39
  • @Thomas do you have plans / sketches on what such a Wiki would have to be structured like?
    – Pekka
    Commented Feb 22, 2010 at 9:05
  • Not yet. I have some ideas about the structure, though. I see multiple orthogonal ways to tag the content: difficulty (beginner ... expert ... research problem), field of CS and implementation/platform. Commented Feb 22, 2010 at 11:32

You must log in to answer this question.

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