I think "making things" is overrated. I think because the majority of people rely on computers to do things, from finding apartments to sorting data/information, that for beginners, it's better to "make your own life better". I guess it is non-trivial to realize how your day-to-day tasks in your professional life can be streamlined/improved by simple scripts, but no harder than it is to build a basic website that isn't amateurish.
And learning to code by reading a Rails book? Don't you have to know how to code before you build even a basic Rails app? Even average coders can't easily grasp all the concepts behind building a full-fledged web app, nevermind someone who barely knows what a for loop is.