The most important single aspect of software development is to be clear about what you are trying to build.
Bjarne StroustrupThe first law of computer science: Every problem is solved by yet another indirection.
Bjarne StroustrupAlways think about how a piece of code should be used: good interfaces are the essence of good code. You can hide all kinds of clever and dirty code behind a good interface if you really need such code.
Bjarne Stroustrup