Power to the people

Right on!

Another choice of software

I think one of the main problems with this sort of thing would be how much knowledge the author of any node will assume the reader has. Something like 'linked lists' could really be anywhere from the third to the fiftieth tutorial a person could study, depending on how the author designed it. I suppose, however, that you could allow some sort of difficulty scale, possibly both set by the author of the piece as well as everyone who views it. Or perhaps force people to specify in the tutorial itself specifically which other tutorials should be required reading (with links or whatever) before attempting this one.

Also, there's the tendency of programmers to have screwy little quirks in their coding style. Even if you enforce strict guidelines with indenting, formatting, etc., there's the problem of how different programmers tackle different tasks from an actual functional standpoint. This can really vary a lot in its severity as well, from programmers who prefer to deal with text-type data as something structured like an array (probably coming from a C-like language) versus programmers who prefer to deal with it as actual strings (probably coming from Perl or another language with powerful string tools), to entirely different programming paradigms, like whether or not to use C++ objects as opposed to simple functions. A person reading a set of tutorials in which all these variables are jumping wildly around the place could definitely have some difficulty.

And, at the same time, you'll be hard-pressed to get the programmers to stop doing what they're doing, assuming you even can. "But C++ is an OO language, why shouldn't I use classes", "C++ doesn't require me to use classes, why should I have to?", etc. And like I said, a lot of people probably couldn't drop the way they code even if they tried, it's just how they've learnt to think in programming terms. But then, *should* you be trying, with some base-level guidelines for things like not using OO when not necessary? It might even fragment a tree into "Bill's OO C++ tutorial set" and "Bob's old-school C++ tutorial set", at which point you're really not gaining much in a unified programming guide sense. I don't really know how you're going to solve this one.

Some of what you need -repost as topical

This is an interesting Idea, and one I have thought about also - though not just for teaching programming - here are some things I think such a system needs

Users of such a Scoop site would not submit Articles, they would submit learning objects - the site must be set up to allow a user to submit these in some standard form without learning exhaustive sets of standards

The Scoop system needs to be arranged using metadata that will appropriately link the various learning objects that are submitted by users that would have some interoperabillity usingIMS standards for example.

There needs to be some kind of self-testing system to give the user feedback about how well thay have learned a topic.

There has to be a distinction somehow between teacher and learner. To me this would be one of the most difficult parts, because someone could be a teacher for introductory things ( like Using HTML) and be a learner for more difficult areas (like relational database programming, or Quantum mechanics) at the same time there is a very important distinction between the comments/ratings from a students, and from an instructor.

The distinction also needs to be made for interactions between users, so one knows whether they are student - teacher or student - student or teacher -teacher

Actually, I don't like the teacher - student distinction at all, maybe there should be expertise levels or something for users - seems more democratic somehow

One last item, there would need to be a start up period when only content creators would be using the site - until a core set of material was together, and made ready to use