Hacker News new | ask | show | jobs
Anyone Can Ride Rails - should I write this book?
9 points by AstonJ 4991 days ago
I was all fired up to write this, but have started to have second thoughts. What do you think - should I keep going?

Please be as frank and honest as you like. I will warn you in advance though that non-Rubyists might find my tone a little nauseating because I speak highly of Rails and Ruby - not just because I'm a genuine fan but because I see it as absolutely pivotal to keep my readers motivated and excited. (That was certainly what got me through all the books and resources when I was starting out, so apologies in advance for that!)

You can download what I have written so far from here: http://astonj.com/anyone-can-ride-rails.pdf

12 comments

I think you should keep going. In my opinion any materials that make it easier for beginners to get started on programming are a net benefit to society. Over the coming years I think there is going to be a divide between those that can program and those that can't as technology continues to be an ever increasing part of our lives. I am in full support of anything that helps break down the barrier to jumping in and getting started.

Great start and I look forward to seeing the finished version. Keep us updated on your progress.

I completely agree with you! I think programming has become a lot easier in recent years, with the advent of languages such as Ruby and the sheer number of well thought out learning materially, particularly centring around good programming practises. And of course thanks to frameworks like Rails that do a lot of the heavy lifting.

Thanks for the comment and support!

A few observations. One, you haven't written that many pages, in fact you've written very, very few pages save for the preface and the like. This isn't an issue on its own, except theres no Table of Contents so it's hard for me to see where you are going to take it from here, or in other words what your vision is. The obvious result of this is that it's pretty hard to provide feedback. The flip side is of course, that you've demonstrated enough desire and initiative within yourself to endeavor to start the book, so unless you have a serious reason to stop, maybe forge ahead and try to finish what you started.

One other thing that I just want to put in your head, I'm not sure if I'm even going so far as to suggest it, is the possibility of flexing scope to write perhaps a 50 page e-book, not dissimilar to the Sacha Greif ebook (http://sachagreif.com/ebook/) but for getting from zero to the next book on Rails for absolute beginners. The benefit of this would be that you could probably spend about 20 hours writing it (I'm pulling this number out of my ass, so I could be waaay off about this time estimate) and therefore you've risked a much shorter amount of time, which I'm assuming is your main concern.

Hi, thank you for the feedback.

I started writing the book on the weekend, and have tried to include details about the main concept and format (it's going to be split into three books). As it's early days I've only really touched on what will actually be included, but my thoughts so far are along these lines:

An introduction to Object Oriented Programming | Ruby basics | -why ruby | -datatypes | -variables | -classes | -etc | An introduction to Rails and the MVC architecture | -why rails etc | A Ruby on Rails tutorial - building your first app! | -1 | -2 | -3 | -4 | -etc | Using Gems | Using Git | Deploying | An introduction to Test Driven Development | -------? | -------? | -------? |

Originally I sought feedback from my friends, and as that's been very positive I thought it wise to get opinions from a wider audience, such as on HN.

Thanks for the link to the Sacha Greif book - I will definitely check it out!

I'm glad you start from a 'what you'll need' point of view. This is often missed in most books where they just start with a code 1+1 example.

If you are aiming for total beginners - as in, new to programming and not just new to Ruby/Rails then you might have to re-word your About this book section.

You mention TDD, Git, 'default Ruby stack' within the first 8 lines of the book. While these are important points regarding the book - they only make sense to programmers of some kind.

I think if you give away a sample chapter of your book then this will be the first thing they read. You've got to convince the new folks you'll look after them & that they will actually get as far as building their first app. You may want to consider adding a book subtitle. I presume the readers you want to attract might not even know what Rails is! Maybe something like - Anyone Can Ride Rails - A fresh programming guide for enthusiasic beginners.

I like the informal tone as it's reassuring. I also second the what is Ruby/Rails & why should I use them, what can I build with it etc?

Hi Helen - thank you for the feedback, you make some great points!

I definitely need to iron out who the target market is, but for the time being I have expanded the note to include "(though you are introduced to these topics later – so don't panic if you don't know what they are just yet)."

I think I had envisaged that people coming to this book would have already made their minds up about learning Rails and perhaps already looked at some of the other books but felt a bit out of their depth - so would have probably come across some of the terms. Hence I though that I'd keep the more in-depth explanations to their respective chapters. But yeah I totally see what you mean so I may have to rethink that! Thanks again for the feedback.

Hey Aston,

Glad to be of help. As a side note did you use a template for your ebook at all to get started? The headings look great & it has a nice flow, thanks.

Hi Helen, I didn't use a template - it's just a bog standard Open Office document and exported as a PDF :)
I don't want to discourage you, I'm just gonna give you my honest personal thoughts. I think there is a lot of this kind of stuff on the web already. What I think there is less of (maybe there's also less demand for it), is deep rails or ruby VM type stuff. I do most of my programming in c/c++ though (so I'm no ruby expert) and whenever I need to pick up a scripting language or framework like rails, usually I try to grab something that has maximum code, with bar minimum and to the point explanations, and get annoyed whenever anyone talks about intro to OOP or starts explaining functions, variables, etc. So obviously, I'm not your audience for this book.

Having said all that I don't want to be a downer here, I think its great you're writing a book and possibly getting people interested in programming :)

Hi, thanks for the comment and encouragement!

If you're looking for books on the internals of Rails, this one could be right up your street: http://patshaughnessy.net/ruby-under-a-microscope

If you're looking for more general but advanced books there are loads of fantastic ones - some of my favourites are Eloquent Ruby, Design Patterns in Ruby, Metaprogramming Ruby and there's Crafting Rails Applications for Rails (though I haven't started this myself yet - but I hear it's very good).

Is your target audience absolute beginners to programming or experienced programmers who want to learn Rails?

One thing I Have never seen is a "why" you should learn Rails and what you can do with it. What kind of web apps can I build? What can I do with it? Why would I want to?

Personally, I don't go for the informal tone, but it wasn't over the top and many books tend to go that way so no problem.

I like that it seems you won't be preaching about side technologies like git or tdd. It is an added difficulty when people add extra complications to a book, especially an intro level book. My personal opinion, don't go preachy on formatting or style either, just use well written examples for people to learn from and they will pick up your style.

Thanks for your feedback.

> Is your target audience absolute beginners to programming or experienced programmers who want to learn Rails?

Definitely more the former. Although I do assume the reader is familiar with the basics of HTML and CSS given that Rails is a web framework, but neither of those should be difficult to pick up.

I like the idea of including something on 'why' Ruby and hope to tackle those when I come to the Ruby chapter - I should also touch on reasons for choosing Rails in the introduction to Rails chapters. The reason I didn't include any of that in the initial chapters is because I am assuming people have already made their mind up in giving Rails a go - but definitely see your point and maybe I could add a note to say that is covered in the later chapters?

Thanks again for your feedback - much appreciated!

I had similar thoughts on this. A lot of people express interest in learning how to program. The problem is that the majority of things out there are don't explain why, and choosing which language or framework to use ends up being a flip of a coin.

I know this is how I chose to start programming in Python back in the day. More or less flipped a coin between it and Ruby because there wasn't anything I could find that explained why one might be better or worse for what I wanted to accomplish.

Yes it can be tough - I agonised over Python and Ruby too, there was a lot going for them both, but in the end I followed my heart as I just felt more comfortable with Ruby :)

Thanks for the comment!

Why not see what the market thinks of your idea by trying the 'lean publishing' route? Check out http://leanpub.com as one [good] way to do it. It's working out pretty well for me so far. It would mean moving from OpenOffice to Markdown formatting, but the whole Dropbox + Markdown approach that Leanpub uses is pretty good and there is decent support for code blocks etc
That's a great idea - thanks! Will definitely check out leanpub.
I'm a RoR beginner with a little know-how from other languages like PHP and think you should also include some other interesting parts like Stackoverflow, GitHub, Heroku etc. There is plenty of stuff out there with no real description for a programming-beginner. In my early days I have search for a long time a good description for what a gem is. And this is only one example, lol.
Hi, a glossary sounds like a great idea - thanks for the suggestion!
Nice start. I think you should keep going. This might be helpful. http://techcrunch.com/2012/01/28/why-every-entrepreneur-shou...

What software do you use to write your book?

I started off writing in WriteRoom (I love the full screen mode) but then it started to mess up my formatting so I moved to Open Office.

Thanks for the comment and link, I'm off to read it now :)

Okay - if you are going for the absolute beginner market, then, in my opinion, you have too much front matter. I'm new to code, I want to build something cool - let me at it now, not 20 pages in.
I'm a ruby & rails beginner so I would definitely be interested in a book like this.
Awesome, thanks for the comment.
Whatever will be your decision, this is a great book title!
Haha thank you! I love the name too :)