Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
'Learn Ruby on Rails' is free today (learn-rails.com)
172 points by DanielKehoe on Nov 29, 2013 | hide | past | favorite | 63 comments


It's been almost three years since I began spending nearly every available evening and weekend learning code and web dev. It's been a great adventure. However, contrary to the advice I was given I believe Ruby on Rails is not an effective place to start learning web dev, it certainly wasn't for me.

When I started, I had limited knowledge of HTML and almost no experience with CSS, Javascript, SQL or HTTP. I felt bombarded going through Michael Hartl's book (ruby.railstutorial.org), for example, trying to pick up all the concepts mentioned above plus the ideas of Unit Testing, ActiveRecord, the MVC paradigm, Rake, GIT, Migrations, layouts, partials and UNIX, to name a few. Nothing was sticking.

After now learning some programming fundamentals through an awesome Coursera course, learning C++ and Python to make small game mechanic, digging into PHP and launching a few fun websites, building a few projects with raw HTML and CSS while having lots of fun with jQuery and Javascript I feel I am ready for and can appreciate Rails. I'm now approximately 4-6 months from launching my first commercial product and this book will be perfect for my current purposes. I'm 25 pages in and can say that I love it's narrow focus (not including unit tests, for example) and also it's thorough explanation of all core concepts. I've backed the Kickstarter and can't to keep learning! Sorry for the long post HN! Long time lurker, big fan.


I agree with this 100% - I too had Michael Hartl's book recommended to me as I was just starting to learn web development, and I found it very daunting. One year later, I now understand a lot of these things with ease, but it definitely is not a good resource for those trying to get into web development.

I haven't checked out this book yet, and I suspect I probably won't get a huge amount out of it since I am comfortable digging into source code of whatever tech to understand libraries. I do think more good resources for learning web development is a plus though, so thanks to the author for making this available for free!


That's interesting to hear. I'm a system administrator and would like to learn web development. I was planning on starting with Rails. I know the basics of HTML and CSS and am pretty experienced with SQL. Do you have a route of learning you recommend?


If you have experience with SQL you might be far better off than I was. Try starting with the book in this thread; it seems like an excellent starter book and covers many concepts that frankly, myself and others had to piece together from Stack Overflow questions. The best advice I can give you is to start with a project; what do you want to make? If you're set on Rails, jump into Ruby using the nice online book Learn Ruby the Hard Way. Consider checking out Rails for Zombies for a nice, fun intro into Rails and then dive into the book listed in this thread. Best of luck! Feel free to reach out if you have any questions!


Thanks for the reply. I do have a couple pretty simple projects in mind. This may be the impetus I need to go ahead and get started. Thanks!


Don't miss the "name the cat" contest. On the cover of the book, there is a fluffy white cat who has no name. Rails developers are often playful and light-hearted. The book (and the cat) reflects that spirit, not just to make Rails less intimidating for beginners, but to give newcomers a feel for the community.

http://learn-rails.com/name-the-cat.html

You can suggest a name for the cat until the Kickstarter campaign ends, Saturday at 5pm Pacific Time.


Thanks for this. I already have tons of experience in Rails, but I learned by doing and not through a book so I reckon I have some holes in my knowledge here and there.

I'm experimenting with hybrid learning of both doing "learning by doing" by doing projects and "learning by the textbook" by getting the foundational ideas behind Ruby and Rails, and seeing if there is a benefit to combining these two systems, for my own purposes of learning languages and learning in general, and to have something to say to the many friends that I have that want to learn Rails :)

This looks like a pretty comprehensive beginner doc, so thanks for that! Backed it on KS.


Turns out I don't really have any holes in my knowledge that needed to be plugged from this doc, but this is a solid resource for those learning Rails. Very detailed.


Thanks!


This is a really good book for teaching beginners Ruby on Rails. But, in my opinion, what makes it stand out compared to a lot of other books on this topic is the following:

I'm using Rails for a few years now and I still have problems to figure out where to start when I have to explain it to somebody who doesn't know anything about it.

Many books just throw their readers into a topic. This causes a lot of confusion early on, which will (hopefully) be reduced while reading the book. I don't like that approach very much.

I think, this book here does it the right way: It first explains the web and by which technologies it is driven. Then it tells how Rails fits into the picture.

What I also really like are the short explanations of user stories, software development methodologies and agile methodologies. I think it is important that new developers have at least heard about those topics even though they may not know how to use them in the beginning.

Good work!


I started working with rails a few months ago. I skimmed the book in about 3 hours from start to finish while skipping the parts I knew I was comfortable with.

The book is really good and 100% worth reading if you're new to rails. I hope the author gets his money from kickstarter because he deserves it.


I backed the KickStarter near the beginning of this campaign to get access to alpha version of the book so I could review it for a few "new to web programming" friends of mine. I thought it was a really good resource for my friends that already program in something (say Windows Forms) and wanted to make the leap to doing web applications. Thanks Daniel!


Thanks, would it be possible to get it in MOBI format. (I have bad experience converting coding books in calibre)


second this - I would like all my books to be readable on the computer, phone and the kindle. PDF is really bad for this and would really prefer .mobi


The mobi version will come with the final release. I'm not happy with the formatting of the code samples in mobi so I'm looking for good production tools (I'm using the kitabu gem now).


I'm a backer of Daniel Kehoe's Learn Ruby on Rails ebook on Kickstarter. While I'm certainly not coming from a background of vast experience, I've tried other resources such as Treehouse (which is great by the way), it is VERY approachable and would lend itself to newbies and Product Managers who are learning to become more technical. After a break from Treehouse, I forgot most of the concepts as the stuff I learned had atrophied. When I needed to start fresh, and from a different perspective, his ebook is a great starting point for the absolute beginner.

I think it's awesome that Daniel opened up for people to download the ebook for free. I don't mind the $18 that I ponied up because I believe the value I've received is far beyond that.


Why in the book there is not even a paragraph on how to create an authorization system and session management?


Sad to say, based on my experience teaching weekend classes, it's difficult to introduce authorization or sessions in a book that's designed for beginners to read in a weekend. "Learn Ruby on Rails" is intended to prepare newcomers for more advanced books. Michael Hartl's book covers authorization so it is a good follow-on.


the largest barrier to entry for newcomers wanting to learn rails is getting a dev environment setup


Yep, installing Rails and setting up a development environment is the biggest hurdle for a newcomer. I wrote a stand-alone article that provides in-depth instructions for Mac, Ubuntu, and Windows. As a standalone article, it is easier for me to update (than if I were to include it in the book), plus it is available for free for everyone who needs it.

http://railsapps.github.io/installing-rails.html


I found Michael Hartl's Ruby on Rails Tutorial (http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#se...) to have a great walkthrough for the initial setup. I particularly like that it gets you up and running to Heroku before the end of the first chapter.


several of us kickstarted a rails.app, but it isn't done yet. They have the open source version up atm and some somewhat dated binaries. (I know a lot of us were hoping to never have to configure ruby again, as we only use it for cocopods an iOS development tool)

http://www.kickstarter.com/projects/1397300529/railsapp

https://github.com/tokaido/tokaidoapp

https://trello.com/b/ZPhBe7Fh/tokaido-app

Binary: https://github.com/tokaido/tokaidoapp/releases


This is where tools like https://www.nitrous.io are awesome. We just hosted a RailsBridge-type event and we used Nitrous. Highly recommend this for teaching.


Here's my article about getting started with Rails on Nitrous.io:

http://railsapps.github.io/rubyonrails-nitrous-io.html

Nitrous.io is a great way for any beginner to get started, especially for those using Windows.


Daniel, how far will you go with TDD on this book? What resource will you recommend to continue learning TDD after the intro in this book?

Will you consider writing another book in the same spirit as this one (for beginners & kept up-to-date) for rails with TDD?


TDD is one of the big issues in the pedagogy of teaching Rails. Teach it from the start (Hartl)? Ignore it (most lightweight intros)? Or find a way to introduce it without intimidating beginners? My approach (in a forthcoming chapter) is to encourage testing literacy, that is, to show beginners how to read test code and run tests, so they will be prepared for further study. Michael Hartl's book is good to read after "Learn Ruby on Rails." I also recommend these three books (the first is the newest):

* Aaron Sumner, "Everyday Rails Testing with RSpec" https://leanpub.com/everydayrailsrspec

* Noel Rappin, "Rails Test Prescriptions" http://pragprog.com/book/nrtest/rails-test-prescriptions

* Chelimsky and friends, "The RSpec Book" http://pragprog.com/book/achbd/the-rspec-book

Other resources? How did you learn TDD for Rails?


I didn't :)

I use Python/Django and thinking of learning Rails, preferably with TDD. Thanks for the list, I'm sure it will be useful!

PS. I backed your campaign.


The problem with teaching TDD is there are too many opinions. If someone wants to use assertion based testing and fixtures then learning rspec and factory girl in depth is not going to appeal to them.

A lot of the useful information on testing comes from figuring out how to do certain things that are very specific to the testing lib you use.


Thanks! I'm a Rails newbie and this seems to be extremely useful. :)


to be honest, this is a just ok book. For ROR beginners, stick with Micheal's tutorial. http://ruby.railstutorial.org/


Disagree, tried to get my brother to learn Rails using this tutorial and got stuck configuring Git and his remote Github repository. It introduces waaaaay too much information that a beginner doesn't really care about.

Git repositories, test driven development, etc are all things a beginner doesn't care about and doesn't really need to know about when starting out.


Just to clarify. My "Learn Ruby on Rails" covers git and GitHub. Readers tell me they like the "time traveler" analog I use to introduce git in a gentle way. My book is for beginners who want to learn real-world Rails, so it covers professional practices including git, user stories, project management, configuration, using APIs, and more.


I disagree, git nor TDD are hard to learn and it makes for excellent habits. There is a disconnect if a beginner doesnt understand the importance of both.

I can't think of anyone I've taught git to who didnt see how powerful and easy it makes life.


I recommend Michael Hartl's excellent book. For some beginners, "Learn Ruby on Rails" is a good "prequel." Not everyone is ready for Hartl's tutorial, especially if they've had little programming or web development experience.


Interesting that you mention that as that was going to be the next resource I was going to look into beyond using other supplementary resources like Treehouse and Codecademy.


I disagree. The concept of Railstutorial is to show how industrial strength rails programming is done (heck, Michael even adds indices to enforce uniqueness of the database level), so for an absolute beginner it is much better to do some ruby first (Pine's learn to program is best imo) and start with a rails book that does not bombast you with rspec and cucumber.


railstutorial was a great way for me to learn rails, and I had experience with several other languages, git, and knew a bit of ruby.

It introduces way too much for a pure beginner who knows little-to-no programming trying to get started. That said, I really don't think someone brand new to coding should learn RoR straight away.


for anyone who hate registrations for downloads ^_^ http://learn-rails.com/ebooks/learn-rails.pdf


Here's why I ask you to register to download the book:

1) After working on the book for six months, I'd like to be able to follow up and ask you to contribute to the Kickstarter campaign if you like the book.

2) You are downloading an advance edition of a book that contains code that is likely to change. Within the next week or two, I will release an updated version. I'd like to be able to notify you when the update is available.

3) I am only giving the book away for free for one day, to promote the Kickstarter campaign. If you are willing to provide your email address in exchange for a free copy of the book I am grateful. If you are not, Michael Hartl offers an excellent introduction to Rails that does not require registration or an email address:

http://ruby.railstutorial.org/


Yes, but why do I have to create an account? I don't want another one off account somewhere.


So they they can send you unwanted emails. There is no such thing as a free lunch. In order for you to get the book, you have to give away your contact information.


"They" is me, a solo author who gave up six months of consulting income to produce a book to help Rails beginners. Would you care to contribute to the Kickstarter campaign so the book can reach the people who need it? What do you wish to offer in exchange? How about even offering a thank you? Or do you feel you are entitled to enjoy my work, offering nothing in exchange, and encouraging other people to act with no respect or thanks?


I understand why you want an E-mail address in exchange for the book. What I don't understand is why, in addition to that E-mail address, do people have to create an account of some kind? Why not just the E-mail address?

The "Get the Book" page does not explain any of this, and left me puzzled as to what I was creating an account for.


Daniel thanks for the books its amazing and I will donate to the kick starter campaign in the near future. I cannot afford it at this moment in time as I am going through a bootcamp. Thank You Daniel


Thanks for writing this book. I'm not a Rails programmer but I'm going to take a look at it so I can help a little more with the Discourse forum code.


Just one thought... please use persona. No password anymore. Anyway, thanks for the hard work.


The information wants to be free!

Great books which do not need registration based shilling techniques for your hacking careers:

https://mitpress.mit.edu/sicp/full-text/book/book.html

http://www.paulgraham.com/onlisp.html

http://htdp.org/

https://gustavus.edu/+max/concrete-abstractions.html

https://www.cs.cmu.edu/~dst/LispBook/

Open and Free FTW!


Jesus christ. The guy gives away his hard work for free and still gets shit for it.

Stay classy, HN.


Seriously, the criticism on here gets ridiculous sometimes.


Not a single one of those are even remotely relevant to this discussion, other than the fact that they aren't behind a contact information 'paywall'.



Give it a fucking rest, UNIXgod, you're just being a wanker now. A guy gives away something for free that cost him money and you go posting links to other resources and start banging on about "open and free"


Could you instead provide some links on relevant things YOU have written and gave away for free ?


You're a jerk.


A name and email address is a small and fair price to pay for a book that has had so much effort put into it for a total of $0 today. don't you think? Edit your comment and remove the link mate, seems fair.

Dan, if you are reading this I wanted to say how much I appreciate this book. I've recently decided I am going to learn Rails after years of using and abusing PHP, I want to learn something more substantial and this is good timing for me. Where I can, I will offer you my support.


Guys, seriously. You have to understand the the author has put time into this and is still offering this for free. The least that you could do is register, considering you don't have to pay for such a quality book.


Registering offers you the benefit of receiving an announcement when a new version is released.

Not sure if it will still be freely downloadable by then though.


Really??

This is why we can't have nice things.


[deleted]


Or use sharklasers.com. But seriously, if you don't ever want to get email from me, how about you don't download the book?


Link now points to a text file telling you to register.


Still allows direct download (I registered prior to the comments), also, tux's comment history is about as positive and contributing to the community as you'd expect.


I'm okay with giving my email but when it came to enter a password I stopped since I didn't know what I'm signing up for. There was no logo on that page and the initial Link said "to download"


The password field is for creating a password for this account, you don't have to type the password of any other account. There's no security risk here, since you never ever reuse passwords, right?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: