I'd say not bad for the initial draft. I don't really think it's for "anyone" though. It seems like it's written by a programmer for other beginning programmers. That's just my first review without going through it more thoroughly. Here's some feedback based on going through it real quick:
1. The main link leads to http://ruby.bastardsbook.com/about/ which talks about the book, but it took me forever to figure out that I go to the top where the little "Contents" link is to actually read the book.
2. I think you're whole first chapter with cut-paste could work, but I would provide the files. On a technical level there's all sorts of problems with cut-paste out of a browser and into code. It's rare but it's problematic, either by browser encoding problems or sloppy mouse usage. I'd set up a little .zip file with the code in it so they can just run it that way. Personally though, I find cut-paste has almost no value in actually teaching people to code, but I get you're trying to get them interested.
3. Your first real chapter, "Conventions" is just too much for most actual beginners. It is throwing in complicated inject calls, blocks, a really gnarly block of code that no programmer with any style would ever write, and other oddities. I'd recommend reworking this chapter so either it's at the end and is a capstone on "idiomatic" ruby style, or ditch the convoluted examples and keep it simple. Also, don't be fooled if someone who can already code tells you this is awesome. For an already capable programmer this is good, but for "anybody" this is just way too much and you'll lose them here.
4. You seem to spend a lot of time trying to convince the reader why they should learn to code. So far most of the material I've read has been the kind of stuff to pump them up and get them excited. Maybe you think that's necessary, but if that is your goal, then go back and rewrite some of your examples so that they're more accessible and people will think "oh man, I can totally get this!" Right now I think they would think "yeah! totally! oh wait, wtf is that shit?"
5. In the chapter on methods, why on earth are you showing them the C code to Ruby's implementation of puts? I really think that has no place in this book and wonder why it's even there. The link to the code isn't even valid anymore, which should tell you one reason why this is bad: Ruby's C code changes to quickly. The other reason is Ruby's C code is just bad. Not only are you overloading the student with C code in a Ruby book, but you're showing them very weird C code.
Overall I think you've got a book for programmers who want to learn Ruby, and not really a book for beginners or "anybody". Programmers would love this book because there's not many free good ruby books that are this extensive except for _why's (and that's crazy so many programmers can't handle it). You should basically consider making up your mind. Is it for beginners? Ok, then ditch everything complicated and redesign the order you teach things. If it's for programmers who can already code, then keep doing what you've got here. I'd place it at maybe intermediate programmers or beginners.
Thanks Zed for the criticism. You basically voiced what I was thinking as I quickly skimmed over old material, that a lot of it is overwhelming (especially when even I had trouble remember what was going on), and not in the good kind of way. But I guess I worried too much that things were too dumbed down and overcompensated. I definitely still have to find the proper balance between accessible and thorough.
As I mentioned in various scattered parts on the site, your LPTHY was definitely an inspiration. In fact I think I started writing this shortly after LPTHY came out.
Yeah, I think you just need to sit down and figure out who you're really writing it for. When I wrote LPTHW I had three or four actual people in mind and I kept laser focus on making it a book they could learn from. They weren't programmers at all, so that helped me make the book work for people who can't code at all. Figure out who it's for, then what you want them to be able to do when they're done, then focus on that. If the stuff you're writing doesn't help the target reader accomplish what you want then cut it.
Anyway, keep writing it and I'm following you on twitter so bug me when you got something you want me to read.
1. The main link leads to http://ruby.bastardsbook.com/about/ which talks about the book, but it took me forever to figure out that I go to the top where the little "Contents" link is to actually read the book.
2. I think you're whole first chapter with cut-paste could work, but I would provide the files. On a technical level there's all sorts of problems with cut-paste out of a browser and into code. It's rare but it's problematic, either by browser encoding problems or sloppy mouse usage. I'd set up a little .zip file with the code in it so they can just run it that way. Personally though, I find cut-paste has almost no value in actually teaching people to code, but I get you're trying to get them interested.
3. Your first real chapter, "Conventions" is just too much for most actual beginners. It is throwing in complicated inject calls, blocks, a really gnarly block of code that no programmer with any style would ever write, and other oddities. I'd recommend reworking this chapter so either it's at the end and is a capstone on "idiomatic" ruby style, or ditch the convoluted examples and keep it simple. Also, don't be fooled if someone who can already code tells you this is awesome. For an already capable programmer this is good, but for "anybody" this is just way too much and you'll lose them here.
4. You seem to spend a lot of time trying to convince the reader why they should learn to code. So far most of the material I've read has been the kind of stuff to pump them up and get them excited. Maybe you think that's necessary, but if that is your goal, then go back and rewrite some of your examples so that they're more accessible and people will think "oh man, I can totally get this!" Right now I think they would think "yeah! totally! oh wait, wtf is that shit?"
5. In the chapter on methods, why on earth are you showing them the C code to Ruby's implementation of puts? I really think that has no place in this book and wonder why it's even there. The link to the code isn't even valid anymore, which should tell you one reason why this is bad: Ruby's C code changes to quickly. The other reason is Ruby's C code is just bad. Not only are you overloading the student with C code in a Ruby book, but you're showing them very weird C code.
Overall I think you've got a book for programmers who want to learn Ruby, and not really a book for beginners or "anybody". Programmers would love this book because there's not many free good ruby books that are this extensive except for _why's (and that's crazy so many programmers can't handle it). You should basically consider making up your mind. Is it for beginners? Ok, then ditch everything complicated and redesign the order you teach things. If it's for programmers who can already code, then keep doing what you've got here. I'd place it at maybe intermediate programmers or beginners.