BookRecommendations

Version 1 (Sarah Allen, 08/20/2009 03:08 am)

1 1
h1. Book Recommendations
2 1
3 1
h2. Object Oriented Programming
4 1
5 1
* The quitessential book for OO, functional programming, logic-based programming, concurrency, etc. is "Concepts, Techniques, and Models of
6 1
Computer Programming".  It covers all the paradigms in great detail. However, at 950 pages, it's not for the faint of heart.  It's really
7 1
more for people who want to master *all* the programming paradigms. It's based on a language called Oz, which is a mix of Erlang, Haskell, Prolog, Lisp, and Java!  I figure it'll take me like two years to get through it ;)
8 1
9 1
* "SmallTalk Best Practice Patterns by Kent Beck":http://www.amazon.com/Smalltalk-Best-Practice-Patterns-Kent/dp/013476904X/ref=sr_1_1?ie=UTF8&qid=1250612635&sr=8-1 If you were to only pick one though, the best book you will ever read on how to write object-oriented code. I presented some highlights of the book in my 30 min presentation at MountainWest RubyConf 2009 in case you want to get a feel for it (http://mwrc2009.confreaks.com/14-mar-2009-15-35-what-the-ruby-craftsman-can-learn-from-the-smalltalk-master-philippe-hanrigou.html). The presentation does little justice to the book which distills an intense concentrate of OO wisdom by describing the fundamental forces guiding our every-minute coding decisions (implementation patterns). To read the examples you might have to get a basic understanding of the Smalltalk language, however.
10 1
11 1
 * If you were to skip all the sample code and just read the text you would still be a 10,000% better programmer after reading the book, especially when it comes to OO programming with a dynamic language (like Ruby).
12 1
13 1
 * Smalltalk is extremely close to Ruby and most samples make sense in their context even without previous knowledge of the Smalltalk syntax
14 1
15 1
* I found "Smalltalk Getting the Message"(http://www.smalltalk-resources.com/Smalltalk-Getting-the-Message.html) a great resource to get quickly up to speed with Smalltalk's concepts and syntax. There are also a lot of gems and OO principles in this paper. One passage I especially enjoy is the one where Alan L. Lovejoy describes duck-typing as "optimistic-typing", for instance.
16 1
17 1
* "Design Patterns in Ruby by Russ Olsen":http://www.amazon.com/dp/0321490452
18 1
 The author selected the patterns that he thought most relevant from the GoF book, translated them to Ruby,then (in many cases) morphed them to idiomatic Ruby.
19 1
 The original book (which I found impenetrable) is: "Design Patterns: Elements of Reusable Object-Oriented Software":http://www.amazon.com/dp/0201633612
20 1
 Aside from teaching the design patterns (useful in itself), the book shows a lot of information on how to write clean Ruby code.  Finally, the writing and examples are A+ quality.
21 1
22 1
* "Ruby for Rails":http://www.amazon.com/dp/1932394699
23 1
24 1
* "The Well-Grounded Rubyist":http://www.amazon.com/dp/1933988657