Explore the wonderful quotes under this tag
If you lie to the compiler, it will get its revenge.
Sep 11, 2025
We have to stop optimizing for programmers and start optimizing for users.
C++ tries to guard against Murphy, not Machiavelli.
An organisation that treats its programmers as morons will soon have programmers that are willing and able to act like morons only.
Plan to throw one (implementation) away; you will, anyhow.
Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term.
Software engineering is the establishment and use of sound engineering principles to obtain economically software that is reliable and works on real machines efficiently.
Software engineering economics.
It's harder than you might think to squander millions of dollars, but a flawed software development process is a tool well suited to the job.
If you think your management doesn't know what it's doing or that your organisation turns out low-quality software crap that embarrasses you, then leave.
Copy and paste is a design error.
Every program has (at least) two purposes: the one for which it was written and another for which it wasn't.
Using Unix is the computing equivalent of listening only to music by David Cassidy.
There are two ways to write error-free programs; only the third one works.
Programs must be written for people to read, and only incidentally for machines to execute.
Computers are good at following instructions, but not at reading your mind.
When someone says, "I want a programming language in which I need only say what I want done," give him a lollipop.
The cheapest, fastest, and most reliable components are those that aren't there.
Indeed, the woes of Software Engineering are not due to lack of tools, or proper management, but largely due to lack of sufficient technical competence.
It's a curious thing about our industry: not only do we not learn from our mistakes, we also don't learn from our successes.
The trouble with programmers is that you can never tell what a programmer is doing until it's too late.
Never in the annals of software engineering was so much owed by so many to so few lines of code
There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
When debugging, novices insert corrective code; experts remove defective code.
Good visual layout shows the logical structure of a program.
An API that isn't comprehensible isn't usable.
Time pressure gradually corrupts an engineer's standard of quality and perfection. It has a detrimental effect on people as well as products
Programs should be written and polished until they acquire publication quality.
Don't document bad code - rewrite it.
The first step toward the management of disease was replacement of demon theories and humours theories by the germ theory. That very step, the beginning of hope, in itself dashed all hopes of magical solutions. It told workers that progress would be made stepwise, at great effort, and that a persistent, unremitting care would have to be paid to a discipline of cleanliness. So it is with software engineering today.
The required techniques of effective reasoning are pretty formal, but as long as programming is done by people that don't master them, the software crisis will remain with us and will be considered an incurable disease. And you know what incurable diseases do: they invite the quacks and charlatans in, who in this case take the form of Software Engineering gurus.
In software, the chain isn't as strong as its weakest link; it's as weak as all the weak links multiplied together.
If we play genie and grant client wishes, we are apt to construct castles of code in the air.
It has been discovered that C++ provides a remarkable facility for concealing the trival details of a program - such as where its bugs are.
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
A brute force solution that works is better than an elegant solution that doesn't work.
You cannot teach beginners top-down programming, because they don't know which end is up.
Building on our successful partnership, we can now bring together the best of Microsoft's software engineering with the best of Nokia's product engineering, award-winning design, and global sales, marketing and manufacturing.
It's better to wait for a productive programmer to become available than it is to wait for the first available programmer to become productive.
The C language combines all the power of assembly language with all the ease-of-use of assembly language.
… what society overwhelmingly asks for is snake oil. Of course, the snake oil has the most impressive names — otherwise you would be selling nothing — like “Structured Analysis and Design”, “Software Engineering”, “Maturity Models”, “Management Information Systems”, “Integrated Project Support Environments” “Object Orientation” and “Business Process Re-engineering”.
Einstein repeatedly argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.
Testing is the process of comparing the invisible to the ambiguous, so as to avoid the unthinkable happening to the anonymous.
We know about as much about software quality problems as they knew about the Black Plague in the 1600s. We've seen the victims' agonies and helped burn the corpses. We don't know what causes it; we don't really know if there is only one disease. We just suffer - and keep pouring our sewage into our water supply.
To make an embarrassing admission, I like video games. That's what got me into software engineering when I was a kid. I wanted to make money so I could buy a better computer to play better video games. Nothing like saving the world.
Increasingly, people seem to misinterpret complexity as sophistication, which is baffling -- the incomprehensible should cause suspicion rather than admiration.
... programming requires more concentration than other activities. It's the reason programmers get upset about 'quick interruptions' - such interruptions are tantamount to asking a juggler to keep three balls in the air and hold your groceries at the same time.
The best meetings get real work done. When your people learn that your meetings actually accomplish something, they will stop making excuses to be elsewhere.