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?