Live data from Hacker News

Ask HN: What are some good books for understanding OOP?

news.ycombinator.com

1–10 of 26 posts

Re: Ask HN: What are some good books for understanding OOP?

#3
In my opinion, Eric Evans' Domain Driven Design is just about the only book that gets OO right. Martin Fowler's Refactoring is pretty good on the technical side of things. I would avoid design patterns like the plague (edit: other than the Kent Beck Smalltalk book, which lots of smart people like - this is the one recommended by duck in this thread), but others disagree.

Don't take this as advice against learning what you want to learn, but I'd caution against the idea that "object-oriented programming" and "good programming" are the same thing (or even that they are correlated). OO in its various incarnations comes with a tremendous amount of baggage. It took me years to figure out I didn't need it, and that insight made me a much better programmer.

Re: Ask HN: What are some good books for understanding OOP?

#4
* Smalltalk Objects And Design by Chamond Liu

* The Art of the Metaobject Protocol by Gregor Kiczales

Don't let the second one fool you. Although it is a Lisp book, it presents OOP design principles applicable to any language. As the Amazon review says: "The Art of the Meta-Object Protocol is useful for the advanced CLOS user as well as for anyone interested in object-oriented programming and language design."

Re: Ask HN: What are some good books for understanding OOP?

#6
post #4

* Smalltalk Objects And Design by Chamond Liu * The Art of the Metaobject Protocol by Gregor Kiczales Don't let the second one fool you. Although it is a Lisp book, it presents OOP design principles applicable to any language. As the Amazon review says: "The Art of the Meta-Object Protocol is useful for the advanced CLOS user as well as for anyone interested in object-oriented programming and language design."

Do you really think AMOP is suitable for a novice?

Re: Ask HN: What are some good books for understanding OOP?

#7
post #2

Since you say you are a novice, I'd recommend Head First Design Patterns: http://www.amazon.com/dp/0596007124 Do not jump in with the GoF Design Pattern book. :)

The Head First books are a great idea, but to me they force too much of their way to learning instead of just presenting the information. I'm sure that is helpful to some... but it just gives me a headache when I try to read through them.

Re: Ask HN: What are some good books for understanding OOP?

#8
The Object-Oriented Thought Process ( http://www.amazon.com/Object-Oriented-Thought-Process-3rd/dp... ) isn't a perfect book, but it's not a bad one. It refers too much to other books, but combine that with a language text and you should get the concepts pretty well.

Re: Ask HN: What are some good books for understanding OOP?

#9
The most important thing to realize is that "object-oriented programming" isn't a well defined term. If you don't know what it means and you pick up books about Smalltalk or CLOS, you won't really have a good grasp on the corporate C++/Java/C# environments you might be thrown into, and if you get a job interview that asks "explain OOP to me", they won't have any fucking idea what you're talking about, because by "OOP" they mean Java and by "OOP" you'll mean Smalltalk or CLOS. Likewise, if you pick up a Java book, it'll take you awhile to figure out what Smalltalkers, Lispers, and Rubyists are on about.

Unfortunately, the C++/Java conception of OOP has had a much better sales team since the 90's or so, so you can get sucked into that universe and never find your way out again. So learn OOP from multiple perspectives.

Re: Ask HN: What are some good books for understanding OOP?

#10
I know you asked for a book, but as a fellow self taught person I remember this video being really valuable to me when trying to get my head around OOP.

http://video.google.com/videoplay?docid=-2058469682761344178...

It is an older video of Dan Ingalls of Smalltalk fame explaining objects. I clearly remember a large light bulb going off in my head as he walked through his analogy of a hospital described as an object.

This certainly isn't comprehensive, but if you are stuck on the concept its helpful to hear someone talk it out.

Post reply on HN