A Nice Idea, But Will It Fly?
To become an effective software developer, you have to do a lot of learning on your own time. Even if you're currently going to college or to one of the many six-month training programs, you'll find that most of what is being taught just leaves you with more questions than answers.
Although it would be nice to think that we can change the various software development training programs, I don't think that the structure of the various curricula will change anytime soon. They'll keep on teaching and wondering why the students aren't really learning what's being taught.
Your best bet is to find some sort of co-op work term or practicum where you can be part of a software development team doing real work. You'll learn more that way about what it really takes to deliver working applications than you can from any number of classes. Yes, you'll need to ask lots of questions and read small chunks from lots of books, but in the end you'll gain a deep appreciation for the fact that you too can learn to be a software developer.
If you can't manage to get work as part of a real project team, find something to work on that interests and motivates you. After all, as Eric S. Raymond suggests, "Every good work of software starts by scratching a developer's personal itch." In the same vein, I would suggest that we only really learn when we become passionately interested in a topic.
Software development is not a 9-to-5 career choice. Good developers are passionate about what they do and find it really hard to switch off at the end of the day. Getting in touch with that kind of passionate involvement is part of learning to be an effective software developer. Unfortunately, most classroom environments, whether "sheep dip" courses or college classes, are not very conducive to passionate involvement. After all, it's not very cool to become excited about what the teacher is trying to teach.
In the end, it comes down to the fact that you learn to be a software developer by actually doing software development. Toy problems don't count. What you have to do is work on a project you care aboutone that you become passionately interested and involved in. Once that happens, you'll discover that you can learn whatever you need to learn, and that learning a new programming language, while a time-consuming pain, is really quite easy.