That said, students pick it up quickly, and are very satisfied with their new skills. I can't wait to get into actual programming next week.
Computers don't work like that today. Installation and configuration of various dependencies are a real challenge when learning.
This is especially true when trying to teach kids - we like to think they're all computer geniuses now, but really a lot of kids don't seem to have any idea of how to navigate a file system. They're hooked on installers.
You might be interested in Yehuda Katz's project, Tokaido.
http://yehudakatz.com/2012/04/13/tokaido-my-hopes-and-dreams...
To your first point, I really wish people would make virtual machine images with dev environments already set up on them.
I think this is actually often more of a problem in the long run, as it just pushes the learning of how RoR interfaces with the rest of the stack to later. If you're seeking to teach someone how logic, program control flow, and separation of concerns work (as the author did by abstracting the "grunge work" as he calls it), why not pick an environment a bit more bare-bones?
I see the merit in allowing someone to get something up and running rapidly, but I think they may miss important concepts when learning in an environment that favors convention over configuration.
He's not missing important concepts but deferring important concepts to learn other important concepts that lead to progress today.
You end up paying back that deficit one step and one layer of abstraction at a time:
Some of Brian's biggest forward mental leaps came when he took
a step back away from the day-to-day project grind, learned new
concepts in a course or from a book, and then thought about how to
apply them to SwearBuy.If your goal is to tinker with a new language, or a new tool, it would be really nice to start from a working example that you can fiddle with, rather than being stuck with the sometimes arduous task of configuration.
If you view programming as a craft, having mentors/coaches/peers definitely helps you improve much faster.