"You need to understand beautiful code to get to understand beautiful-enough code."
~ Dan North
Programming, when stripped of all its circumstantial irrelevancies, boils down to no more and no less than very effective thinking so as to avoid unmastered complexity, to very vigorous separation of your many different concerns.
~ Dijkstra
"The important point is that the cost of adding a feature isn't just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion. Sure, any given feature list can be implemented, given enough coding time. But in addition to coming out late, you will usually wind up with a codebase that is so fragile that new ideas that should be dead-simple wind up taking longer and longer to work into the tangled existing web. The trick is to pick the features that don't fight each other."
John Carmack
To paraphrase my mother, it's all fun and games until someone starts writing subclasses.
~ Russ Olsen
"A most important, but also most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use. If the tool is a programming language this influence is, whether we like it or not, an influence on our thinking habits."
~ Djikstra
"The cleaner and nicer the program, the faster it's going to run. And if it doesn't, it'll be easy to make it fast."
Joshua Bloch
When the hierarchy is correct, anyone can successfully create a new subclass.
~ Sandi Metz
"Plans and estimates are like a lettuce, good for a couple of days, rather wilty after a week, and unrecognizable after a couple of months."
It's not at all important to get it right the first time. It's vitally important to get it right the last time.
Andy Hunt and Dave Thomas
No tool works perfectly in every context, and much grief visits projects who try to use tools outside their expiration date.
~ Neal Ford
The less code does the more valuable it is
~ Nat Pryce
Those who think software construction should be just like building construction are clearly unskilled at both.
~ Andy Hunt
Encapsulation picks up where abstraction leaves off. Abstraction says, "You're allowed to look at an object at high level of detail." Encapsulation says, "Furthermore, you aren't allowed to look at an object at any other level of detail."
~ Steve McConnell