I have to say, as a "business guy" cofounder who is finally pushing out his first apps, that starting with Codecademy is probably the worst way to go about things. I don't know how many times I started different Codecademy courses and ended up saying, "OK, I can create a loop... now what?" That is decidedly not the first step in learning how to program.
The first step is learning how to use the command line, getting a text editor, linking those two, and figuring out how to push something live. You can code loops all day long, but until you have any practical implementation of that (i.e. building even the simplest of apps and pushing it live), coding will feel abstract and unreachable.
If I were to start over (I'm learning Ruby/Rails) I would start with a tutorial (Michael Hartl's rails tutorial, Treehouse or One Month Rails), but really I would use them all at the same time, because their emphases are different and each picks up on parts that the other leaves out. Only once I had "finished" a couple of apps following the tutorials (which cover everything from getting a text editor to using github, pushing to Heroku and connecting Heroku with a DNS) would I go back to Codecademy and learn Ruby. The context of knowing what you can actually do with those snippets of code is incredibly important.
And yes, as others have pointed out, building a simple rails app and putting bootstrap on it is not the goal of programming, but knocking that process is like saying "You shouldn't learn to count on your fingers because really you need to multiply."
Agree with this wholeheartedly. I started learning C++ back in 1997 with "Learn C++ in 21 days" and other books. I quickly got burned out with building simple print out programs and over the past 16 years have started different languages in fits and starts.
There are so few one language projects that are worth using, that the single language approach seems really outdated.
To me a much better approach would be to have learning structured around a specific project type. In general projects fall into only a handful of categories so I don't think it would be terribly hard to structure. For example "Web commerce" (Javascript, CSS, HTML5, mySQL), "Machine learning" (Python, Java) etc... You wouldn't learn all the details of a language up front but you would get to your goal more quickly and have a framework/template for future projects.
The first step is learning how to use the command line, getting a text editor, linking those two, and figuring out how to push something live. You can code loops all day long, but until you have any practical implementation of that (i.e. building even the simplest of apps and pushing it live), coding will feel abstract and unreachable.
If I were to start over (I'm learning Ruby/Rails) I would start with a tutorial (Michael Hartl's rails tutorial, Treehouse or One Month Rails), but really I would use them all at the same time, because their emphases are different and each picks up on parts that the other leaves out. Only once I had "finished" a couple of apps following the tutorials (which cover everything from getting a text editor to using github, pushing to Heroku and connecting Heroku with a DNS) would I go back to Codecademy and learn Ruby. The context of knowing what you can actually do with those snippets of code is incredibly important.
And yes, as others have pointed out, building a simple rails app and putting bootstrap on it is not the goal of programming, but knocking that process is like saying "You shouldn't learn to count on your fingers because really you need to multiply."