In defense of doing it the “hard way”
accidentalninja.net
accidentalninja.net
This misses the point entirely. The way to become anything -- at least a good anything -- is to hard work and repetition. I can't tell you what to program. I can't give you sample projects based on what I did because why should you care enough about some dumb thing I made to extract meaningful lessons from it? Find something you think is neat or cool to make and make it.
When it comes to sports, or tradecrafts like carpentry/masonry etc., singing, painting, etc., it's understood the only way to become a professional is to bust your ass. It's the same way with anything in the world. There is no magic bullet. There's no wand you can wave or wish you can make. You just have to work. The number of people for whom this is a completely foreign concept is surprisingly large.
After 10 years of writing code, I felt that I had a basic understanding of how things were and what felt right and what didn't. Now on year 22, I feel I know what I'm doing but still tread carefully.
Another well-known rule of thumb is that it takes 10000 hours of practice to become good at something (e.g., programming, playing a musical instrument, etc.).
CodeAcademy won't turn anyone into a programmer overnight, though it might start someone directly down that path - there is a lot of good stuff in the exercises (even though in the end they are just exercises).
Personally, I had a couple of "Aha!" moments where the hands on nature and immediate feedback made something I had read about many times just click clearly into place (recursive functions and passing an object to a function).
The "official" pace of the course is probably a little slow - writing code a little at a time is the worst approach and the exercises really don't have enough meat to drag on for the many weeks of the official timeline (unless meaningful homework is added to the course - in which case it might drag).
It's a good project; it's not going to make someone immediately employable (particularly if it took them two months to complete it); and there is a lot of room for growth of the product.
Codecademy (currently) won't teach anyone to be an expert programmer, but they're just getting started. I can see it turning into something very useful over time.
The book presumably dealt with Ruby, the libraries, the agile process, but how did the author translate the interactions he had in his head into objects/procedures/whatever in the code?
Abstractionacademy anyone?
It's not the hard way, it's the right way to go about building something. You build your knowledge while you are working on your project and learn from your mistakes. This is how we all started and I suppose that the way to go about it has not and will not change for a while.
It's less daunting to do that once you have a better grasp of what programming means at least. Some people think programming is wizardry you do in front of a computer to make it do what you want.
CodeAcademy makes tradeoffs, so do Zed Shaw's Hardway books. Both however attempt to help people avoid paying the entire dumbtax in learning to program. I suspect that's what Ms. Benjamin strove for as well.