Program construction consists of a sequence of refinement steps.
Programs should be written and polished until they acquire publication quality.
Usually its users discover sooner or later that their program does not deliver all the desired results, or worse, that the results requested were not the ones really needed.
Software gets slower faster than hardware gets faster.
Reliable and transparent programs are usually not in the interest of the designer.
Nevertheless, I consider OOP as an aspect of programming in the large; that is, as an aspect that logically follows programming in the small and requires sound knowledge of procedural programming.
But active programming consists of the design of new programs, rather than contemplation of old programs.
Programming is usually taught by examples.