Perhaps, instead of reading Programming books, people should master the core tenets of programming first such as OO from such books as "clean code", "Code complete".
That will make it easier for readers to understand and retain information from programming books?