Важно понимать разницу между изучением объектно-ориентированного программирования и программированием на объектно-ориентированном языке. Изучать дисциплину программирования - мало, необходимо научиться мыслить в объектно-ориентированном стиле. А для этого необходимо развивать объектно-ориентированное мышление.
К счастью, люди уже мыслят в категориях "объекты": всё что нас окружает - является объектом. Например, для того, чтобы построить дом, сперва нужно подготовить архитектурный проект (в объектно-ориентированном мире это шаблон проектирования), в котором отображены объекты стен, объект крыши, пола, и другие мелкие объекты, собранные в определенной последовательности в объект дома. Необходимо это мышление перенести на объекты программирования.