Навскидку примерный Правильный путь ООП-падавана:
1. Изучить Smalltalk — только здесь правильное (простое и полноценное) объектное программирование. Сначала можно посмотреть статьи на
smalltalk.ru для формирования общего представления о философии Smalltalk-а (это ключевой момент), погуглить статьи на тему Why Smalltalk… Но основное — это практика, за ней идти на
pharo.org. За помощью можно обращаться к Russian Smalltalk User Group:
https://groups.google.com/forum/#!forum/sugr
2. Когда немного освоитесь, можно почитать Бековские Smalltalk Best Practice Patterns [
http://stephane.ducasse.free.fr/FreeBooks/BestSmal... — важные и неочевидные нюансы программирования на Smalltalk.
3. С этой книги (даже с введения к ней) можно плавно переходить к изучению TDD — сначала классику по Test-Driven Development by Example того же Бека, затем — через Growing Object-Oriented Software Guided by Tests к всепоглощающему TDD (BDD). Обе книги можно найти в виде PDF за бесплатно.
Где-то в промежутке после начала первого и окончания третьего пункта должно наступить просветление. Путь не быстрый.
Предупреждение: после наступления просветвления большинство "объеткно-ориентированных" языков и книг по этой теме будет вызывать рвотный рефлекс.