In my experience, it is actually quite difficult to learn ANYTHING if you lack a definable goal. Where programming is concerned you need a project. Most of my learning is acquired through my clients constant requests: can you do this? Is that possible? etc.
Certainly, I do most of my learning on this forumn but only after I know what I need to do. I suppose its the old chicken before the egg dilema: do I start a project with no knowledge or do I acquire knowledge before the project?
What we need is a community project run by a analyst (with some time). The analyst defines the project and all its functions and then allocates the functions to a battery of coders. Each function will be graded for difficulty so that even beginners can have a go. There can also be a critiquing panel. The completed project can then be shared by the tek-tips community.
Just a thought.
Cheers