I recently started taking Stanford's CS106A class online, and its the only thing that's really clicked for me so far. The first few weeks teach you the same thing as other guides, but they create an introductory program for you to test out the basics, and help you learn the methodology of programming.
From there is where I realized what's lacking in most "learning-to-code" intro courses: they'll give you the tools to code, but don't help you learn the methodology of coding. I realize now its a very different mindset, and if you don't actually solve problems with those tools, its difficult to learn conceptually.
Hopefully CodeAcademy can crack this issue of helping people learn how to think like a programmer, and not just show the tools that programmers use essentially.