Another way to understand OOP is to try and place it in a historical context.
People have always tried to use computers to solve problems that were just a little more difficult than they knew how to solve...
The ``software crises'' came about when people realized the major problems in software development were not algorithmic, but were caused by communication difficulties and the management of complexity.
If we examine the history of mechanisms used to solve the problem of complexity we can better appreciate the role of OOP.