
Welcome to our collection of quotes about software engineering or programming. We hope you mull over them and find them useful. Please share widely.

A computer program does what you tell it to do, not what you want it to do.

There are only two industries that refer to their customers as 'users'.

Controlling complexity is the essence of computer programming.

Simple things should be simple, complex things should be possible.

Programming isn't about what you know; it's about what you can figure out.

One man's constant is another man's variable.

Computer science is no more about computers than astronomy is about telescopes.

Trying to outsmart a compiler defeats much of the purpose of using one.

The only way to learn a new programming language is by writing programs in it.

The programmers of tomorrow are the wizards of the future.

You should imagine variables as tentacles, rather than boxes. They do not contain values; they grasp them—two variables can refer to the same value.

Code is there to explain the comments to the computer.

Programming is the art of telling another human being what one wants the computer to do.

Weeks of coding can save you hours of planning.

When he really, really likes a girl, he creates a font and names it after her.

At forty, I was too old to work as a programmer myself anymore; writing code is a young person’s job.

Perl – The only language that looks the same before and after RSA encryption.

You've baked a really lovely cake, but then you've used dog shit for frosting.

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.

A good programmer is someone who always looks both ways before crossing a one-way street.

Programming is an explanatory activity.

More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason -- including blind stupidity.

Walking on water and developing software from a specification are easy if both are frozen.

No matter which field of work you want to go in, it is of great importance to learn at least one programming language.

Some of the best programming is done on paper, really. Putting it into the computer is just a minor detail.

But while you can always write 'spaghetti code' in a procedural language, object-oriented languages used poorly can add meatballs to your spaghetti.

Delivering good software today is often better than perfect software tomorrow, so finish things and ship.

Happiness should be a function without any parameters.

User interface is the process of shifting from chaotic complexity to elegant simplicity.

When it comes to writing code, the number one most important skill is how to keep a tangle of features from collapsing under the weight of its own complexity.

Not all roots are buried down in the ground, some are at the top of a tree.

This approach is refreshing because most of the programming books I've read are drier than a camel's fart.

Without requirements and design, programming is the art of adding bugs to an empty text file.

Tests are stories we tell the next generation of programmers on a project.

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 generation of random numbers is too important to be left to chance.

Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing.

Programmers are not mathematicians, no matter how much we wish and wish for it.

Strings are the favorite data structure of bad programmers.

If Java had true garbage collection, most programs would delete themselves upon execution.

Progress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code.

Unix is a junk OS designed by a committee of PhDs.

Real programmers don't comment their code. If it was hard to write, it should be hard to understand.

A data structure is just a stupid programming language.

The best performance improvement is the transition from the nonworking state to the working state.

A program that produces incorrect results twice as fast is infinitely slower.

When in doubt, leave it out.

Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Longer Version:
What I love about both programming and music is that they enable you to build incredibly creative, complex, and beneficial things seemingly from thin air no additional materials required, just your brain and a keyboard in front of you.
Programming and music also both allow for a deep, single-minded immersion in the creative process. They require you to be deeply focused and in the moment for everything to work well, and I find that state of flow to be immensely satisfying.

The happiest moment I felt is that moment when I realized my ability to create.

Platforms don't look like how they work and don't work like how they look.

Developer refracts. Hacker does. Programmer solves.

A distributed system is one in which the failure of a computer you didn't even know existed can render your own computer unusable.

Chefs work with food, artists with oil paint, programmers with code.

Computer science is to biology what calculus is to physics. It's the natural mathematical technique that best maps the character of the subject.

No technology that's connected to the internet is unhackable.

If a machine ever gains awareness, it will be not due to our careful programming, but due to an unforeseeable anomaly.

Computer programming is pretty much guaranteed income. I'm good at it, and I like it.

It's not a bug; it's an undocumented feature.

Any sufficiently advanced technology is indistinguishable from magic.

Simplicity is hard to build, easy to use, and hard to charge for. Complexity is easy to build, hard to use, and easy to charge for.

'Programming' is a four-letter word.

A process cannot be understood by stopping it. Understanding must move with the flow of the process, must join it and flow with it.

Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.

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.

Successful software always gets changed.

It is a real service to humanity and the world to be a good programmer, particularly if you design great products. You make is easier for everybody, everybody has less headaches.

They know enough who know how to learn.

Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them.

Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

Talk is cheap. Show me the code.

If you think your users are idiots, only idiots will use it.

Software is like sex: It's better when it's free.

Given enough eyeballs, all bugs are shallow.

Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

Programmers are in the enviable position of not only getting to do what they want to, but because the end result is so important they get paid to do it. There are other professions like that, but not that many.

Beyond basic mathematical aptitude, the difference between good programmers and great programmers is verbal ability.

Whether you're a programmer or a seamstress, it's all about new techniques, simplifying old techniques, and consolidating steps. Making things go faster -- but not worse.

Software is like entropy. It is difficult to grasp, weighs nothing, and obeys the second law of thermodynamics; i.e. it always increases.
