CodeAcademy seems to follow the Dijkstra school of CS teaching... start people off with the fundamental principles. Sounds like the logical way to learn, but maybe it's not the most effective.
There seems to be a gulf between "I know how for loops and functions work" and "I know how to use HTML, CSS, PHP and an FTP account to get a website working". People also complain that CodeAcademy spoonfeeds you too much - those of us who had to claw our coding knowledge out of shitty w3schools and tizag tutorials might actually have been more fortunate.
That's why I like Wordpress, or similar platforms. I've known a few people who accidentally taught themselves to code this way: they install Wordpress, then install a theme, then decide they want to tweak the theme and end up accidentally learning HTML and CSS. Then they start installing plugins, decide they want to tweak the plugins and accidentally learn Javascript and PHP.