
Caveat: I'm not a developer, so my comments about learning how to program should be taken with considerable skepticism. But I have some opinions based my effort to learn.
For me, programming syntax is less a problem for me than poorly organized code, poor grasp of problems and poorly thought out solutions. Design is a subtle and important topic that does not lend itself to the shorter coverage typical of internet material. Book-length immersion in the concepts is only a beginning to an understanding. So I think your "internet only" restriction is a severe constraint.
But it isn't as if there are many design books for beginners. These generally target people who've mastered some languages and know the design-problem space. "Pragmatic Programmer" was a big help.
I have found test-driven development an enormous help. It feels cumbersome, but you always know what problem you're trying to solve. "Test Driven JavaScript Development", Johansen, is an excellent overview of the approach. I'm also trying to work through Beck's "Test Driven Development By Example" doing the exercises in Ruby, but it's a side project that hasn't gotten much attention.
I repeat: I'm not a developer. Hopefully this is thought-provoking, but I'm no authority.
"Test Driven JavaScript Development", Chris Johansen, might serve. Not many exercises, but it walks through some of the core JavaScript principles, using tests as a learning / exploring device. "Here's a test showing how the << this >> keyword works."
It also walks through several examples of test driven development, touching on design principles as it goes. It does a great job of walking through the practicalities forcing some design choices, and the implications of the alternatives.
I came away from this with a much better grasp of JavaScript, development process, and design principles generally. I don't think I've gotten more from any single book.
But I'm a newbie still trying to learn these things. More experienced folks may find the book tiresome.
http://www.amazon.com/Test-Driven-JavaScript-Development-Dev...
Not out yet, though.