There are no inherent "rules" in software development. These books are useless and a waste of time. They offer nothing but CS Dogma and are actually against freedom of expression.
Rules of thumb can be very useful for a relatively inexperienced programmer, and once you understand why they exist you can choose to ignore them when they would get in the way. Clean Code is totally unhinged though
The problem is that a lot of people don't understand when to ignore the rules and just stick with them forever.
We had a developer once that always said KISS KISS KISS whenever we pointed out that her functions are working but not reusable, so she wrote 20 functions that all did the same thing, but with slightly different parameters. And that's just one of the examples