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
Ask HN: What are some good books for understanding OOP?
11–20 of 26 posts
Re: Ask HN: What are some good books for understanding OOP?
#12Since 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. :)
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?
#13This is a fantastic book on OOP design principals and has lots of language-agnostic examples.
Re: Ask HN: What are some good books for understanding OOP?
#14The 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…
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?
#15I 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?
#16Re: Ask HN: What are some good books for understanding OOP?
#17The 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…
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?
#18Check 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).
Re: Ask HN: What are some good books for understanding OOP?
#19Since 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. :)
Re: Ask HN: What are some good books for understanding OOP?
#20* 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.