At TheServerSide.COM an interesting article was published: Java Succumbing to .NET in my Organization Alltough to my feeling, the article really is about tooling, some commentators manage to bend the discussion and suggest that .Net programmers are worse object oriented programmers because of the wizards made available by Microsoft in Visual Studio. Personally I do not believe that to be right, but I suggest to have that discussion over there.
What interests me is how those great object oriented programmers got their skills. What books did they read, what sites do they visit? Anyway, here are some sources that helped me, but I do not consider myself being "Great":
- Object Design: Roles, Responsibilities, and Collaborations by Rebecca Wirfs-Brock and Alan McKean, ISBN 0201379430
- Object-Oriented Design Heuristics by Arthur J. Riel,ISBN 020163385X
- Design Patterns Explained : A New Perspective on Object-Oriented Design by Alan Shalloway and James Trott, ISBN 0321247140
- Intro's to the terminology
- Basic principles:
- Quality metrics:
Of course, reading a lot of articles about programming itself, downloading code and analyzing it wil get you further too, but above are links to books, articles and websites from which I acquired a deeper understanding of the subject. Reading code alone doesn't do the trick, by reading the above and then looking at code you will start to learn why things are done the way they are, or how things have been done but could have been done better.
Of course, you might have a list of your own, so put it in the comments.