Hackernoon logo40+ Thought-Provoking Software Engineering Quotes by@mcsee

40+ Thought-Provoking Software Engineering Quotes

Maximiliano Contieri Hacker Noon profile picture

@mcseeMaximiliano Contieri

I’m senior software engineer specialized in declarative designs and S.O.L.I.D. and Agile lover.

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

An exercise improving legacy codemedium.com

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


Photo by Kelvyn Ornettte Sol Marte on Unsplash


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


Photo by National Cancer Institute on Unsplash

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


Join Hacker Noon

Create your free account to unlock your custom reading experience.