Object oriented programming is based on the concepts of classes and objects, where a class defines attributes and methods that objects follow as real-world instances of the class. For example, the human being class could define attributes like name and methods like walk(), and John would be an object instance of that class. Popular object oriented programming languages include C++, C#, Python, Java, and JavaScript. OOP aims to simplify complex processes, promote modularity for code reusability and efficiency, group similar things together and separate dissimilar things, and protect data through encapsulation.