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 |