This is a collection of some of my favorite quotes on a variety of subjects.
A language that doesn't affect the way you think about programming, is not worth knowing.
— Alan Perlis
Make it work, make it right, make it fast.
— Kent Beck
For all the silly platitudes thrown around in our field, the exaltation of refactoring isn't one of them — aggressive and continuous refinement is the only path to beautiful, sustainable software.
Any code that ossifies after being first written is almost certainly bad code.
for each desired change, make the change easy (warning: this may be hard), then make the easy change
It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.
The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.
— Fred Brooks, The Mythical Man-Month
When people say "comments are bad" they mean "don't put information in comments if you can make it evident from the code". This is correct.
When they say "comments are good" they mean "take the higher-level thoughts you couldn't, and write those down too". This is also correct.
Seven deadly sins [of programming]:
- Code even you cannot understand a week after you wrote it – no comments
- Code with no specifications
- Code that is shipped as soon as it runs and before it is beautiful
- Code with added features
- Code that is very very fast very very very obscure and incorrect
- Code that is not beautiful
- Code that you wrote without understanding the problem
There are certainly times when code needs to be complex, but this does not mean that it should be complicated. And when code needs to be simple, it should not be simplistic. Although well meant, some programmers assume that for their code to be readable and be considered good they must spell out its logic and flow on droolproof paper with the equivalent of kindergarten vocabulary. The resulting code is often dumbed down and padded out to the point of incomprehensibility, achieving quite the opposite result from the one intended.
What does it mean to be a revolutionary? To challenge an existing dogma, instead of complying with it: to reject its tenets, highlight its flaws and improve each of its shortcomings.
If you fetishize and cargo cult the infrastructure required by companies with literally 10,000 times your traffic, you will not have fun.
There's an oft-cited trope in technology circles that products are only about execution – that your choice of database or programming language doesn't matter. Having seen reams of evidence to the contrary first hand, count me as a firm disbeliever. Instead of working with strong constraints, ACID, and rich data types, I’ve spent the last few years building expertise on how to not break things in a schemaless world, how to build applications without transactions (or put otherwise, how to mitigate collateral damage), and how to repair non-relational models that should just have been relational in the first place.
A Big Ball of Mud is a haphazardly structured, sprawling, sloppy, duct-tape-and-baling-wire, spaghetti-code jungle. These systems show unmistakable signs of unregulated growth, and repeated, expedient repair. Information is shared promiscuously among distant elements of the system, often to the point where nearly all the important information becomes global or duplicated.
The overall structure of the system may never have been well defined.
If it was, it may have eroded beyond recognition. Programmers with a shred of architectural sensibility shun these quagmires. Only those who are unconcerned about architecture, and, perhaps, are comfortable with the inertia of the day-to-day chore of patching the holes in these failing dikes, are content to work on such systems.
— Brian Foote and Joseph Yoder, Big Ball of Mud
If your fidelity to perfectionism is too high, you never do anything.
— David Foster Wallace
We sometimes encounter people, even perfect strangers, who begin to interest us at first sight, somehow suddenly, all at once, before a word has been spoken.
— Fyodor Dostoyevsky, Crime and Punishment
Now people are books to me. I read them from cover to cover and toss them aside. I devour them, one after the other. And the more I read, the more insatiable I become. There is no limit to it.
— Henry Miller, Tropic of Capricorn
I enjoy controlled loneliness. I like wandering around the city alone. I’m not afraid of coming back to an empty flat and lying down in an empty bed. I’m afraid of having no one to miss, of having no one to love.
— Kuba Wojewódzki
What's great about this country is America started the tradition where the richest consumers buy essentially the same things as the poorest. You can be watching TV and see Coca-Cola, and you can know that the President drinks Coke, Liz Taylor drinks Coke, and just think, you can drink Coke, too. A Coke is a Coke and no amount of money can get you a better Coke than the one the bum on the corner is drinking. All the Cokes are the same and all the Cokes are good.
— Andy Warhol
Why was I so dissatisfied with my (paid, professional) work? Because it was misaligned with my values and sense of what needed to be put into the world. Why did I get disillusioned with my circus show? Many reasons, but the biggest, starkest one is that it felt like I wasn’t saying anything I wanted to say – it felt empty and meaningless.
This wasn’t about utility or 'impact'. It was about me, and my sense of self, and how that tied in to what I wanted to make in the world.
I think it's important to realize you can miss something, but not want it back.
— Paulo Coelho
Any sufficiently advanced incompetence is indistinguishable from malice.
— Grey's law