An excerpt from Beginning Java Objects: From Concepts to Code by Jacquie Barker:
This is, sad to say, the way many programmers wind up building an OO application when they don’t have appropriate training in the fundamental properties of the building blocks of such an application—namely, software objects. Worse yet, the vast majority of would-be OO programmers are blissfully ignorant of the need to understand objects in order to program in an OO language. So, they take off programming with a language like Java and wind up with a far from ideal result: an application that lacks flexibility when an inevitable “midcourse correction” occurs in response to changing requirements after the application has been deployed.
I'm not really sure how to understand that. Any idea?