We need to keep in mind that software complexity increases exponentially with scale. Bad practices at a small level multiply when the project is larger.
One of the most important things we need to accomplish is to make software changes easy and safe. Propagating changes are a big obstacle to software development.’
This premise says that we must understand what we’re doing at all times. We can’t program by coincidence until we stumble upon something that works.
Why do we test software? Why do we need proof that code works? It follows from our basic requirements of software.
Our first premise is that as human beings we can only remember so much. To work effectively we need to minimize the information we need to keep in mind.
When should you learn programming principles? Beginner, intermediate, advanced? Everyone benefits, but one group of people may benefit the most.
Why do we need programming principles? Programming principles are extremely helpful. They help us write better software that works and is easy to change.