40+ Thought-Provoking Software Engineering Quotes

Written by mcsee | Published 2020/10/10
Tech Story Tags: pixel-face | softare-development | programming | quotes | software-design | clean-code | quality-assurance | quotes-about-app-development | web-monetization | hackernoon-es

TLDR There are only two hard things in Computer Science: cache invalidation and naming things. The best performance improvement is the transition from the nonworking state to the working state. A computer lets you make more mistakes faster than any other invention with the possible exceptions of handguns and Tequila. The trick is to pick the features that don’t fight each other in the design process. The cost of adding a feature is the time it takes to code it. It’s at that level with object-oriented programming languages support encapsulation.via the TL;DR App

Sometimes a short thought can bring amazing ideas. There are some great quotes I’ve been collecting. I use them as inspiration or motto for some articles.

Software Design

There are only two hard things in Computer Science: cache invalidation and naming things.
Phil Karlton

What Exactly Is A Name: Rehab [Part II]

Make illegal states unrepresentable.
Yaron Minsky

Is it Crystal Clear for Everybody That a Date Should Not Mutate?

First make the change easy (warning: this might be hard), then make the easy change.
Kent Beck
Simple things should be simple, complex things should be possible.
Alan Kay
Before software can be reusable it first has to be usable.
Ralph Johnson
Simplicity is prerequisite for reliability.
Edsger W. Dijkstra
Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
Alan Kay
Premature optimization is the root of all evil
Donald Knuth
Any problem in computer science can be solved with another level of indirection.
David Wheeler
The best performance improvement is the transition from the nonworking state to the working state.
J. Osterhout
I can’t be as confident about computer science as I can about biology. Biology easily has 500 years of exciting problems to work on. It’s at that level
Donald Knuth
Object-oriented programming languages support encapsulation, thereby improving the ability of software to be reused, refined, tested, maintained, and extended. The full benefit of this support can only be realized if encapsulation is maximized during the design process.
Rebecca Wirfs-Brock
Computer science is not about machines, in the same way that astronomy is not about telescopes. There is an essential unity of mathematics and computer science
Michael R. Fellows
A computer lets you make more mistakes faster than any other invention with the possible exceptions of handguns and Tequila.
Mitch Ratcliffe

Fail Fast Philosophy, Explained

Photo by Shahadat Rahman on Unsplash

Programming Languages

Many people tend to look at programming styles and languages like religions: if you belong to one, you cannot belong to others. But this analogy is another fallacy.
Niklaus Wirth
More good code has been written in languages denounced as “bad” than in languages proclaimed “wonderful” — much more.
Bjarne Stroustrup
Sun Microsystems had the right people to make Java into a first-class language, and I believe it was the Sun marketing people who rushed the thing out before it should have gotten out.
Alan Kay
There are only two kinds of languages: the ones people complain about and the ones nobody uses.
Bjarne Stroustrup
Photo by You X Ventures on Unsplash

Planning / Management

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. The trick is to pick the features that don’t fight each other.
John Carmack
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.
Fred Brooks

There Are No Silver Bullets For This Werewolf

You can mass-produce hardware; you cannot mass-produce software; you cannot mass-produce the human mind.
Michio Kaku
Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.
Melvin Conway
Optimism is an occupational hazard of programming: feedback is the treatment.
Kent Beck
Photo by Bench Accounting on Unsplash

Clean Code

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
John Woods
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
Martin Fowler
Deleted code is debugged code.
Jeff Sickel
Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
Jamie Zawinski
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.
Brian Kernighan
Don’t comment bad code — rewrite it.
Brian Kernighan

What Exactly Is A Name: The Quest [Part I]

Code is like humor. When you have to explain it, it’s bad.
Cory House
One day my daughter came in, looked over my shoulder at some Perl 4 code, and said, “What is that, swearing?”
Larry Wall
A long descriptive name is better than a short enigmatic name. A long descriptive name is better than a long descriptive comment. -
Robert Martin
Talk is cheap. Show me the code.
Linus Torvalds
Photo by Raquel Martínez on Unsplash

Software Quality

Legacy code is code without tests.
Michael Feathers
Software testing is not only ensuring absence of bugs but also ensuring presence of value.
Amit Kalantri
Quality is free, but only to those who are willing to pay heavily for it.
DeMarco and Lister
Nothing makes a system more flexible than a suite of tests -
Robert Martin
There are two ways to write error-free programs; only the third one works.
Alan J. Perlis
As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.
David Parnas

Refactoring

Whenever I have to think to understand what the code is doing, I ask myself if I can refactor the code to make that understanding more immediately apparent.
Martin Fowler

Object Oriented

Let there be no doubt that object-oriented design is fundamentally different than traditional structured design approaches: it requires different ways of thinking about decomposition, and it produces software architectures that are largely outside the realm of the structured design culture.
Grady Booch
I invented the term ‘object oriented’, and C++ was not what I had in mind
Alan Kay
Part of the objective of this series of articles is to generate spaces for debate and discussion on software design.
We look forward to comments and suggestions on this article.
Lead Photo by Zac Durant on Unsplash

Written by mcsee | I’m senior software engineer specialized in declarative designs and S.O.L.I.D. and Agile lover.
Published by HackerNoon on 2020/10/10