
programming quotes from influential philosophers, authors and people
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
246
"First, solve the problem. Then, write the code."
247
"Experience is the name everyone gives to their mistakes."
248
"In order to be irreplaceable, one must always be different."
249
"Perfection is achieved not when there is nothing more to add, but rather when there is nothing more to take away."
250
"Code is like humor. When you have to explain it, it’s bad."
251
"Fix the cause, not the symptom."
252
"Optimism is an occupational hazard of programming: feedback is the treatment."
253
"Simplicity is the soul of efficiency."
254
"Before software can be reusable it first has to be usable."
255
"Start with something simple and small, then expand over time. If people call it a ‘toy’ you’re definitely onto something."
256
"User interface is the process of shifting from chaotic complexity to elegant simplicity."
258
"If we want users to like our software, we should design it to behave like a likeable person."
259
"Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it."
260
"The art of debugging is figuring out what you really told your program to do rather than what you thought you told it to do."
263
"No one in the brief history of computing has ever written a piece of perfect software. It’s unlikely that you’ll be the first."
264
"All software you write will be tested—if not by you and your team, then by the eventual users—so you might as well plan on testing it thoroughly."
265
"One hundred years from now, our engineering may seem as archaic as the techniques used by medieval cathedral builders seem to today’s civil engineers, while our craftsmanship will still be honored."
266
"There is no such thing as a best solution, be it a tool, a language, or an operating system. There can only be systems that are more appropriate in a particular set of circumstances."
268
"Great software today is often preferable to perfect software tomorrow. If you give your users something to play with early, their feedback will often lead you to a better eventual solution."
269
"One broken window — a badly designed piece of code, a poor management decision that the team must live with for the duration of the project — is all it takes to start the decline. If you find yourself working on a project with quite a few broken windows, it’s all too easy to slip into the mindset of ‘All the rest of this code is crap, I’ll just follow suit.’"
270
"In an abstract sense, an application is successful if it correctly implements its specifications. Unfortunately, this pays only abstract bills. In reality, the success of a project is measured by how well it meets the expectations of its users."
271
"If you don’t hear any complaints from users, they are not using the software – or your support email is broken."
272
"A key principle of any effective software engineering, not only reliability-oriented engineering, simplicity is a quality that, once lost, can be extraordinarily difficult to recapture."
273
"The mark of a mature programmer is willingness to throw out code you spent time on when you realize it’s pointless."
274
"Periodic reminder that the tech stack you use to ship a product only matters to other devs. End users only care that it’s fast enough and does enough to let them get work done. That is your top priority as a dev. Ship working maintainable things that solve people’s problems."
275
"Don’t decide on the tech you’re gonna use before you understand the project and the customer’s needs."
276
"Everything should be made as simple as possible. But to do that you have to master complexity."
277
"Some people are good programmers because they can handle many more details than most people. But there are a lot of disadvantages in selecting programmers for that reason — it can result in programs that no one else can maintain."
278
"Complain less. Build more."
289
"Metaphors contribute to a greater understanding of software-development issues in the same way that they contribute to a greater understanding of scientific questions."
332
"A common denominator of programmers who build high-quality software is their use of high-quality practices. Such practices emphasize quality at the beginning, middle, and end of a project."
333
"The goal of all software-design techniques is to break a complicated problem into simple pieces."
334
"Avoid making 'clever' designs. Clever designs are usually hard to understand. Instead make 'simple' and 'easy-to-understand' designs. If your design doesn't let you safely ignore most others parts of the program when you're immersed in one specific part, the design isn't doing its job."
335
"If you're developing a program for Microsoft Windows, for example, why limit yourself to the Windows environment? Isolate the Windows calls in a Windows-interface subsystem. If you later want to move your program to MAC OS or Linux, all you'll have to change is the interface subsystem."
336
"As artists and professionals it is our obligation to enact our own internal revolution, a private insurrection inside our own skulls. In this uprising we free ourselves from the tyranny of consumer culture. We overthrow the programming of advertising, movies, video games, magazines, TV, and MTV by which we have been hypnotized from the cradle."
320