Hacker News new | ask | show | jobs
by pqdbr 2067 days ago
Having picked up Rails 9 years ago and having been using it literally daily ever since, it's joyful to read from someone that is just starting.

I also started with https://www.railstutorial.org/book, highly recommend it.

I also loved Metaprogramming Ruby (Paolo Perrotta) - it's more advanced and starts to open your mind to how Rails magic DSL's were built.

I just bought today "Rebuilding Rails" (https://rebuilding-rails.com/), heard great things about it.

Ruby and Rails are amazing, and I wouldn't trade it for any other language/framework out there.

12 comments

Those are great resources. One I'd add to it, for general ruby programming, is the Well Grounded Rubyist (https://www.manning.com/books/the-well-grounded-rubyist-thir...) . It's been kept up to date (3rd edition was released in 2019) and I found it very readable and informative.
Also I will add Practical Object Oriented Design in Ruby, by Sandi Metz (https://www.poodr.com/). It was a great help to me when I was first beginning to self teach programming years ago. A lot of it applies no matter the language; I haven't written Ruby in probably 4 years but the principles in that book guide my programming to this day.
Agreed, this is a great book. In the past I used to read and write a lot of Ruby. An earlier edition of the book was the single resource that taught me the most.

The only programming language book I've enjoyed and benefited from as much since then is Fluent Python.

Highly recommended! I started with the Rails Tutorial as well and read The Well-Grounded Rubyist afterwards to get more in-depth with Ruby.

After that, I bought Bob Race‘s tutorial Build a Saas App with Rails which covers more practical aspects of building a multi-user SaaS app using well-known gems (instead of building everything by myself as in the Rails tutorial): https://leanpub.com/basair6

Great book. I own the second edition.
That was one of the books I picked up early in my career and still keep a well-loved, dog-eared copy. It's information-dense without being overwhelming, and teaches a lot of important Ruby concepts. I'm glad to see it's being kept up to date.
I really should try Rails again. I LOVE ruby, but have been anti-rails for a while and I am not sure I am right for that.

I got into Ruby programming through Rails... but in 2005. Rails was brand new (I think I was on version like 0.12 or something?), and I slowly moved away from it to things like Sinatra and Sequel. Rails had some huge performance issues, and active record was pretty unusable at any sort of scale unless you did a lot of custom SQL.

I know it has come a long way in 15 years, I should try again

I'm sure it depends on the complexity of the app you're building. For simple crud-ish apps (ecommerce, online auctions, etc) I've found that I don't need to write even a single line of custom SQL, and performance is generally good (lots of N+1s, but these are easy to avoid with things like bullet). I also love being able to let Rails render most HTML, and the few things that need to be very dynamic you can just throw a single react component in without worrying about the usual SPA problems.

If you're just prototyping stuff, I don't think you can beat Rails for productivity. But if you're targeting something more enterprise or large scale, I don't think it's a good choice. Go/Rust are so much faster (not that that matters a lot), and even things like C#/Java pretty nice to use nowadays.

"lots of N+1s, but these are easy to avoid with things like bullet"

What is bullet?

It is a plugin/gem that helps you track N+1 queries.

https://github.com/flyerhzm/bullet

Thank you!
It is a gem that tells you when you are accidentally making a N+1 query and suggests the best way to fix it in AR (it also tells you when you have over used includes that are not needed and other such tweaks to make to your queries).
It's definitely a lot better -- performance-wise -- now. It has its flaws but I still feel like its one of the best frameworks out there.
Love the Rebuilding Rails concept! I'm doing a very similar thing in Ruby, focused more on "web application development from first principles" (https://theodorekimble.ck.page/e0bb43b156). I know I better absorb concepts if I can trace them back to a more fundamental "truth".

Curious to hear if anyone else has found success with Rebuilding Rails, and what they found most helpful.

If you want to do the same thing (build up from 1st principles) with CSS, I ravingly endorse Axiomatic CSS as defined and implemented in https://every-layout.dev

Disclaimers: no affiliation, just a very satisfied customer. IME the free content alone is illuminating, and having paid $100 to access to the full "book" incl all the layouts' implementation it was a bargain.

Starting my projects from every-layout instead of using foundation/bootstrap has been like the move away from jQuery as js developed.
I learned RoR from the wonderful Agile Web Development with Rails (2nd edition). David Black’s “Ruby for Rails” and a little later “Eloquent Ruby” helped me to better grasp the difference between Ruby the language and Rails the framework.

I was a kid, and read the first two books 14 years ago. One on a holiday in Kenya and the other in Egypt. No distractions, just travel, family and reading.

These days it seems like a lot of junior developers want to learn it more interactively. I hope books stay popular. In my opinion, they do a great job at explaining the why & the reasoning, instead of just showing you how.

I read all of those and would like to add two more:

1) Learn to Program, by Chris Pine. It's the best book I've read on learning to program in any language.

2) Practical Ruby Projects: Ideas for the Eclectic Programmer, by Topher Cyll. In a sense it wasn't "practical" at all. But it was a joyous eye-opener to all kinds of applications that turned me into a whirlwind of enthusiasm for months!

Aw, thanks! (3rd edition is in the works)
> Learn to Program, by Chris Pine

My first programming book, 10 years ago in a few months I think. Great read.

My favorite thing about it was how it made even trivially simple exercises fun by making the content humorous. At the beginning you really need that extra reward!
7 years for me next month
The Rails tutorial is of exceptional quality. I wish more software had explanations that clear.
I see that Rebuilding Rails doesn't mention a version number of the book, and sales page is actually very uninformative about the actual content. Elsewhere I see it was first published in 2012- How relevant do you find the 'latest' version to modern development? And what is the latest version, has it been updated for rails 6?

Have you got any other recommendations for intermediate to advanced rails topics?

I just downloaded the free chapter. I don't see a Rails version number, but it does mention Ruby 2.6 and the book is dated thusly:

> This Version: April 2020 (Free-Chapters Edition)

> Rebuilding Rails is copyright Noah Gibbs, 2012-2020

The thing to read to really accelerate your Ruby/Rails education is the Rails source code, particularly the Model-adjacent classes and perhaps the router/controller as well.

Then use the patterns you find! No greater joy than your own project specific functionality feeling like a native part of Rails and it tended to make me use more robust approaches.

Metaprogramming Ruby by Paolo Perrotta has the best explanation of Ruby's object system I've seen.

It's a must-read for anyone working with Ruby, even if you have no interest in metaprogramming. Despite the title, it's a very approachable and widely-applicable book.

Just starting to learn rails myself so I am glad I found this thread. I have been going through https://open.appacademy.io/. It has a lot of example problems and projects which helps me learn. That is also why I like https://www.railstutorial.org/book (although it is more like a well done tutorial than example problems).
I was in high school when Rails came out. I wanted a Mac so bad just for TextMate. But Rails and the whole philosophy of 37Signals even going back to Getting Real were total life changers. Everything from how I act to my writing to my presentation skills have all been influenced heavily by DHH and Jason Fried.

If anyone has recommendations for soft skills books that are relatable to tech please let me know.

the other book that is great for ruby is eloquent ruby. one of the best programming books I've read and one of the few that I've read cover to cover instead of piecemeal.