Live data from Hacker News

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

news.ycombinator.com

11–20 of 26 posts

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

#11
I think this document provides a good introduction for a beginner: http://www.runningcode.com.au/Resources/Aitken-Framework4OO....

C2 is another resource worth checking out. C2 is the original "wiki". While its not always coherent and will structured, there are some real gold nuggets here: http://c2.com/cgi/wiki?ObjectOrientedProgramming

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

#12
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. :)

I'd suggest starting a little closer to the beginning:

Head First C# [1st choice because the program exercises are far more interesting] or Head First Java [which is pretty dull]

Learn Python the Hard Way would be my choice for learning old school style. http://learnpythonthehardway.org/index

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

#14

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…

In situations like those, I feel like OOP is some of the most buzzword laden areas of CS.

Things like "Cohesion", "Layering", "Polymorphism", "Abstraction", etc.

They are all great concepts with a lot of important principles, but I drives me nuts how often I've heard them used excessively.

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

#15
I have an intense desire to contribute to the Chromium Project, however, I too am a programming novice. I know a bit of Java, but not much else.

I understand that this is a monumental end goal given my current situation, but can anyone point me in the direction of the best tutorial books that money can buy?

Good karma for anyone that responds :)

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

#17

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…

> So learn OOP from multiple perspectives.

This is key. Even if you end up never using the less traditional OOP models, learning them will let you write better software in the conventional languages. I can say with certainty that my basis in Smalltalk and (albeit limited) knowledge of Lisp makes me a far better Java programmer.

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

#18
post #5

Check out "Smalltalk Best Practice Patterns": http://www.amazon.com/dp/013476904X/ Lots of OO classes use it and Smalltalk is a great language to learn OO with (but even if you don't use it, the general information will be a big help).

That's an excellent book, and relevant, but I wouldn't say it directly answers the question: it's more about coding-in-the-small than object orientation. (Those subjects can shade into each other, it's true.)

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

#19
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. :)

I thought that book was very well done, in terms of getting its lessons into your head -- but the lessons gave poor advice on the subject. (I don't remember specifics, it's been years.)

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

#20
I don't know of any books that sound exactly right for you, but here are a couple I like that are relevant. You might find them kind of advanced right now:

* Chapter 3 of http://mitpress.mit.edu/sicp/ -- also chapters 1 and 2.

* _Abstraction and Specification in Program Development_, on design by contract. There's a newer book by the same authors, _Program Development in Java_, but Norman Ramsey says it's not as good. (I've only read the older one.) By Liskov & Guttag. Focuses on abstract datatypes rather than OOP classic. Bertrand Meyer's _Object-Oriented Software Construction_ covers much of the same material, but not as well to my taste in the bits I dipped into.

* Also, _Smalltalk-80: The Language and Its Implementation_ at http://wiki.squeak.org/squeak/64 -- this might be more basic than the above two. The ideas were old to me by the time I got to it, so I don't know how well it'd work for a novice.

* I've seen _A Little Smalltalk_ recommended as an intro to OO and it looks plausible: http://www.littlesmalltalk.org/index.php?page=the-book -- I haven't read it myself.

Post reply on HN