Well-rounded Rubyist reading list?

91 views
Skip to first unread message

Matthew Bellantoni

unread,
Apr 22, 2014, 4:03:35 PM4/22/14
to boston-r...@googlegroups.com
Howdy Folks,

I'm formulating a list of five to ten(?) books that any well-rounded Rubyist (and software engineer) should read.  Among the books I think would be candidates for this list:
  • "Eloquent Ruby" by Russ Olsen
  • "Practical Object-Oriented Design in Ruby: An Agile Primer" by Sandi Metz
  • "Design Patterns: Elements of Reusable Object-Oriented Software" by GoF
  • "Domain-Driven Design: Tackling Complexity in the Heart of Software" by Eric Evans
  • "Refactoring: Improving the Design of Existing Code" by Martin Fowler
I'd be interested in your thoughts.  (Off topic: I'd be interested to know thoughts for Objective-C and JavaScript as well.)  Feel free to respond to the group or directly.


Thanks,

-m

--- 
Matthew Bellantoni
VP of Engineering | Yesware, Inc.


Dan Pickett

unread,
Apr 22, 2014, 4:08:56 PM4/22/14
to boston-r...@googlegroups.com
Great list!

I would also add the Well Grounded Rubyist to the list. 

I would also think about adding a few project management, general software dev books, and “LearnHacking” resources:

* The Pragmatic Programmer
* Pragmatic Thinking and Learning
* Your Brain at Work
* Cohn’s Agile Estimating and Planning
* Smalltalk Best Practice Patterns by Kent Beck (I realize it’s not ruby, but the concepts and learnings here are still profound)



--
You received this message because you are subscribed to the Google Groups "Boston Ruby Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email to boston-rubygro...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Quinn Lee

unread,
Apr 22, 2014, 4:12:34 PM4/22/14
to boston-r...@googlegroups.com
For JS, I recommend the "Javascript: The Good Parts" by Douglas Crockford

Matthew Bellantoni

unread,
Apr 22, 2014, 4:20:33 PM4/22/14
to boston-r...@googlegroups.com
Dan,

Agreed -- "Smalltalk Best Practice Patterns" is mind-blowingly good. 

-m

Luke

unread,
Apr 22, 2014, 4:28:55 PM4/22/14
to boston-r...@googlegroups.com
Wow, looking forward to chewing through this whole list!  Great topic.  

I would add:  "Working Effectively with Legacy Code" by Michael Feathers.  It's in java, but well worth the translation effort.  Has improved my OO design and testability enormously.  

kee...@thebrocks.net

unread,
Apr 22, 2014, 4:57:30 PM4/22/14
to boston-r...@googlegroups.com
  • "Design Patterns: Elements of Reusable Object-Oriented Software" by GoF
If you read this book, skip the in depth stuff (code examples and deep explanation parts) on the first pass. When you come around and do a second pass, it will fly by. In the end, even though you make 2 passes, it will go by much quicker.

I loved the book when it came out and I lived in C++/Java land. Wonder how much it has to offer developers who live in a less static world and one where many of these patterns are now common place in our frameworks.

Can anyone contrast Russ Olsen's Design Patterns in Ruby, or maybe a design pattern book by Martin Fowler?

Thanks,
Keenan

Maurício Linhares

unread,
Apr 22, 2014, 5:40:35 PM4/22/14
to boston-r...@googlegroups.com
I'd remove the GoF book and include:

http://www.amazon.com/Design-Patterns-Ruby-Russ-Olsen/dp/0321490452

I'd also include:

* "Patterns of Enterprise Application Architecture" - for it contains
an important list of patterns we see everyday on "enterprise" apps
(and webapps in general);
* "Working effectively with legacy code" - this was such an eye opener
to me, I can't believe there are so many people out there that haven't
read it;
* At least one book about functional programming, you can try "Learn
you a Haskell for great good", "Functional Programming with Scala" or
"Functional Programming for the Object-Oriented Programmer";
* "Clean Code"

One that's very Ruby specific but an incredible read is
http://patshaughnessy.net/ruby-under-a-microscope

As for Objective-C, I'd recommend:

* "Beginning Objective-C" - http://www.apress.com/9781430243687
* "Beginning iOS 7 Development" - http://www.apress.com/9781430260226

I'd also recommend following:

* http://nshipster.com/
* http://www.raywenderlich.com/

And while most people frown upon this, I'd say it's important to have
at least one good algorithms book under your belt as well, I prefer
Sedgewick, but Cormen's and the like are good as well.

-
Maurício Linhares
http://mauricio.github.io/ - http://twitter.com/#!/mauriciojr


On Tue, Apr 22, 2014 at 5:03 PM, Matthew Bellantoni <m...@yesware.com> wrote:
> Howdy Folks,
>
> I'm formulating a list of five to ten(?) books that any well-rounded Rubyist
> (and software engineer) should read. Among the books I think would be
> candidates for this list:
>
> "Eloquent Ruby" by Russ Olsen
> "Practical Object-Oriented Design in Ruby: An Agile Primer" by Sandi Metz
> "Design Patterns: Elements of Reusable Object-Oriented Software" by GoF
> "Domain-Driven Design: Tackling Complexity in the Heart of Software" by Eric
> Evans
> "Refactoring: Improving the Design of Existing Code" by Martin Fowler
>
> I'd be interested in your thoughts. (Off topic: I'd be interested to know
> thoughts for Objective-C and JavaScript as well.) Feel free to respond to
> the group or directly.
>
>
> Thanks,
>
> -m
>
> ---
> Matthew Bellantoni
> VP of Engineering | Yesware, Inc.
> m...@yesware.com
>
>

Allen Madsen

unread,
Apr 22, 2014, 5:50:05 PM4/22/14
to boston-r...@googlegroups.com
In addition to what everyone else has written. I'd add:

* Continuous Integration
* Refactoring to Patterns

Wyatt Greene

unread,
Apr 22, 2014, 6:22:10 PM4/22/14
to boston-r...@googlegroups.com
I'd also remove the GoF book as too Java-centric.  Christopher Alexander's concept of patterns is sound, though, and I'm sad to see the format of patterns used less in the Ruby community since it helped me a great deal when I was a junior programmer.

--Wyatt

Michael Denomy

unread,
Apr 22, 2014, 8:40:09 PM4/22/14
to boston-r...@googlegroups.com
Second what Allen said about Refactoring To Patterns, that is an amazing book

Timothy Raymond

unread,
Apr 22, 2014, 8:54:29 PM4/22/14
to boston-r...@googlegroups.com
I would also add “Understanding Computation” by Tom Stuart (http://computationbook.com/) to the list.

I recently finished this up, and it’s the most approachable models of computation book I have ever seen. Most of the textbooks you’ll find around this stuff lean heavily toward the mathematically rigorous side of things, where this book uses Ruby for everything, making it very friendly. If you’ve ever wanted to see what goes into parsing languages, building type systems, and what this lambda calculus thing is all about in just north of 300 pages, this is your book.

-- 
Timothy Raymond
Sent with Airmail

Peter Degen-Portnoy

unread,
Apr 23, 2014, 5:54:51 AM4/23/14
to boston-r...@googlegroups.com
I’ve been reading Avdi Grimm’s “Confident Ruby” and find that I am always looking for opportunities to incorporate his suggestions into my code.  This plus Sandy Metz’s book, which has already been mentioned, is a great 1-2 combination.

Peter Degen-Portnoy

Rahul Horé

unread,
Apr 23, 2014, 2:59:58 PM4/23/14
to boston-r...@googlegroups.com
From the standpoint of someone at an intermediate position on the arc to becoming a well-rounded Rubyist (and software engineer), this is my personal ten oughta-reads. Note, most of these have already been mentioned.

Ruby-centric:

1. Programming Ruby by Dave Thomas, with Chad Fowler and Andy Hunt

Everyone starts somewhere, and although there are alternatives, I think this is the best book to start with for someone who really wants to learn Ruby. It's surprisingly readable, fairly up-to-date, and continues to serve as a nice reference. The Well-Grounded Rubyist by David A. Black is what I'd recommend as an alternative if 'The Pickaxe' is just not your style.

2. Eloquent Ruby by Russ Olsen

I consider this to be the Ruby initiation book. This is the first book you read when you decide you really want to master Ruby. A really engaging book that gets you in the mind frame of doing things the Ruby way and understanding the styles, conventions, and unwritten rules of the language. 


I think of this book as a sort of pivot from learning how to program to learning how to program well. I have yet to finish this one, but just uttering POODR seems to give you good karma amongst your Ruby brethren. Seriously, though, if you only read one Ruby book from this list, read this one.

4. Metaprogramming Ruby by Paolo Perotta

I have not read this, but mastering metaprogramming seems to get conflated with being a Ruby jedi. A really interesting topic every Rubyist should seek to understand.

5. Design Patterns in Ruby by Russ Olsen

The book on design patterns and, in, and for Ruby. Another one I have yet to read, but like all Russ Olsen books, it should flow really well.

6. Confident Ruby by Avdi Grimm

About half way through this one. Really wonderful, modern patterns catalog.

7. Ruby Under a Microscope by Pat Shaughnessy

"You don't have to understand how something works to use it." If you hate this phrase as much as I do, you'll love this book. A very accessible read on how Ruby works — you don't even need to know a lick of C — that'll give you a whole new level of awareness and appreciation of the language.

Sofware-centric:

(I haven't read any of the below, but these are the top three non-Ruby specific, software design books that I'm eager to read)


9. Refactoring by Martin Fowler



On Tuesday, April 22, 2014 4:03:35 PM UTC-4, Matthew Bellantoni wrote:

Adam Russell

unread,
Apr 23, 2014, 1:38:48 PM4/23/14
to boston-r...@googlegroups.com
I use Ruby for more general programming purposes than most.
That is, I currently have no need to know anything of RoR.

For me I only needed two books to really get my head around Ruby:
The Well Grounded Rubyist: http://www.manning.com/black2/
Ruby in a Nutshell http://shop.oreilly.com/product/9780596002145.do

The Well Grounded Rubyist is an excellent book in my opinion. Too bad it
doesn't get mentioned more often in these lists.

The Nutshell book is very old at this point and so I don't strongly
recommend it unless youcan get a copy rather cheap or free.
If so, then I think it still has value as a very quick overview of the
language if you'd like to mentally check off the differences or
similarities to some other language you may be more familiar with.

Michael Breen

unread,
Apr 24, 2014, 9:02:15 AM4/24/14
to boston-r...@googlegroups.com

I enjoyed "Growing Object-Oriented Software, Guided By Tests".  Not Ruby but still worthwhile.

Best.
Mike

Jesse Waites

unread,
Apr 24, 2014, 9:28:08 AM4/24/14
to boston-rubygroup
FWIW, I'm enjoying "Everyday Rails Testing with RSpec" and a lot of people I know speak highly of it. - https://leanpub.com/everydayrailsrspec/
--
Jesse Waites
LinkedIn

Don Cote

unread,
Apr 24, 2014, 9:36:32 AM4/24/14
to boston-r...@googlegroups.com
I thought this e-book was fantastic.  Way more pragmatic than the RSpec Book, which is what I was looking for when I wanted to quickly get up to speed with RSpec.  

Jeremy Wilmot

unread,
Apr 24, 2014, 9:52:58 AM4/24/14
to boston-r...@googlegroups.com
Having just watched DHH's rails conf keynote, I'm curious about how the group feels comparing book reading with methodical code reading. I suspect each has it's place, but I would suggest if forced to choose one or the other the well rounded rubyist would learn as much or more from reading through rake, or rails, or bundler or stdlib than many of these books.

Perhaps books are more accessible? I've found code reading and book reading complement one another, but I've often felt code reading is over looked in these types of discussions.

Maurício Linhares

unread,
Apr 24, 2014, 10:09:36 AM4/24/14
to boston-r...@googlegroups.com
I think both are important, but reading books and getting the general idea about the concepts will make you understand what the code is doing. You can't learn a new programming language just from reading code alone if you don't understand what the language does or allows you to do.

Also, figuring out high level concepts directly in a codebase you're not involved with is hard if you don't know them already, you would still need to read about the concept before digging into a codebase and spotting the pattern.

I think they complement each other, we should read about the job and also look at the code other people are working on out there, both have their place and value and we should be looking at the OSS code out there and contributing even if only for the sake of reading other people's code and trying to understand what it does.
Reply all
Reply to author
Forward
0 new messages