Ask HN: Good books on philosophy of engineering?

271 points by s3micolon0 ↗ HN
I am a software engineer by passion. I love computers, I am curious. I love to learn new things / concepts. I love to see the beauty in existing concepts being applied in completely unexpected ways, which makes you wonder that every boring thing has myriad of variations which are not obvious.

Through my college education & industry experience & curiosity, I have learned a lot. But, even after trying to search about books on the philosophy of engineering or the art / craft of engineering - I have fallen short.

I would love to hear what books / and projects that you have seen that have inspired you as an engineer & have provided you with your own philosophy of engineering.

I am talking about general "engineering" here, not just specifically "software engineering".

Requesting the universe to enlighten me :)

139 comments

[ 4.6 ms ] story [ 188 ms ] thread
Normal Accidents and To Engineer is Human are two popular and great books.
The Design Of Everyday Things by Don Norman might be something of interest

https://www.goodreads.com/en/book/show/840

Seconding this. It's an important book for all kinds of design

I would also recommend "Clean Code: A Handbook of Agile Software Craftsmanship" by Robert C. Martin. It focuses on crafting higher quality code, which is the property of it not only running well, but being easy to understand and to work on

I'm curious as to how you feel about this[1]?

[1]: https://qntm.org/clean

While the criticism is valid, I think it misses the points of the book. It's worth reading both but the book definitely has helpful perspectives that eclipse what's mentioned on that webpage
I personally don't like Clean Code, but understand that a lot of people I respect do. I do want to throw Clean Architecture into the ring though since we're in the topic.

That book is a top three software book for me. It made me understand why OO is a thing and what concepts I should pretty much always use from that ecosystem.

The concept of interfaces (not just the programming construct, but the general idea) was massive and it changed my view on the testability of code.

Martin has some other good stuff related to professionalism as a programmer. He has a few talks and The Clean Coder and those are absolutely worth it as well.

* The Art of Unix Programming

* The Art of Computer Programming

(comment deleted)
Zen and the Art of Motorcycle Maintenance
I've never understood what engineers find in this book. It looks like a shallow kitchen philosophy of a guy next door to me.

What you think is so good about this book for engineers, in a nutshell?

Did you read the whole book yourself or just skim it? (asking sincerely)
I read the book completely. The book was on a second year reading list for my industrial design department.

I absorbed as an introduction to the philosophical aspects of quality. Quality is truly a tough concept if approached as a universal truth.

That makes sense to me. I'm not sure how to articulate what I got out of that book exactly but I did enjoy it. Some of the more 'spiritual' books I find, the value of them doesn't really hit you until you're older or have had some tragic life experiences happen. Until then some of it can just make you feel "this is some vapid feel-good hippie crap." Not saying that was your reaction of course but it makes sense to me why you might not vibe with it if you read it in a university setting.
i've tried few times to fight through first several pages - it gets dead boring and meaningless right from beginning
If none of the comments here ignite your interest, it might not be time then. I had books like that.

I also had books I can feel I need to read, and yet they are slogs. And then something happens, or I encounter an idea elsewhere, and it is as if something unlocks. And I am diving through the book… until I reach the next roadblock. I definitely would not force it.

The core thing is exploring just exactly what is subjective and what is objective, and whether quality is subjective or objective. Pirsig came up with an answer, and then goes on to talk about excellence (arete). Thinking back, this discourse seems like it was deliberately embedded in a kind of every day, guy-next-door narrative in order to touch on lived experience of "quality".

Although Pirsig didn't explore it, quality is very much at the heart of any engineering, particularly when you try to quantify it. How effective is ISO-9000? GE was big on that. Boeing measured quality of their builds, until they compromised the process. What about Deming's approach (Total Quality Management)?

What is quality in software engineering? (We often sidestep that question and call it Software Craftsmanship instead). And there's a whole can of worms when we try to apply this to AIs.

i donknow... wasting so much time just to get a basic idea that quality is important looks like a terrible book to me.

Of course in the context of "books useful for engineers".

If you just enjoy someone's couch philosophy - i can totally understand that and agree that the book may be great.

Maybe you should try reading it before dismissing it like this.
The idea isn’t about that quality is important though. It is that, even though people feel it is important, no one has been able to rationalize it or measure it. And that sometimes we act and talk as if we can.

I’m not sure why you keep denigrating it as a couch philosophy. Just curious, are you doing that because you have worked through philosophies from academia or the classics?

Pirsig's book is not really about engineering, but about how we engineers relate to the world.

In engineering school I was taught to see the world in a special and unique way, to be able to solve engineering problems as a professional. In the book, this worldwiew is very well laid out.

An example:

  > Precision instruments are designed to achieve an idea, dimensional precision, whose perfection is impossible. There is no perfectly shaped part of the motorcycle and never will be, but when you come as close as these instruments take you, remarkable things happen, and you go flying across the countryside under a power that would be called magic if it were not so completely rational in every way. It's the understanding of this rational intellectual idea that's fundamental. John looks at the motorcycle and he sees steel in various shapes and has negative feelings about these steel shapes and turns off the whole thing. I look at the shapes of the steel now and I see ideas. He thinks I'm working on parts. I'm working on concepts.
It's about how quality is fundamentally unmeasurable.
For me, the way he approached debugging was worth it. The way he went about creating hypotheses and testing them is something I've gone back to again and again.
+1. It can become a ramble at times and full-time philosophers seem to hate it. On the other hand, there is a lot of practical wisdom in the first half of the book, and what I consider to be a good payoff if you stick through to the end.
I've just purchased Richard Hamming's "The Art of Doing Science and Engineering" but haven't read it all yet, it looks pretty great.
I read it last year and it is fantastic - super absolutely ultra highly recommend that everybody read it. Run, don't walk, towards this book!
It is a great book, and it includes an amazing essay by him titled You and Your Research [0][1] - which explains why it is important to "always be learning".

0 - https://www.cs.virginia.edu/~robins/YouAndYourResearch.html

1 - https://www.youtube.com/watch?v=e3msMuwqp-o (lecture version)

If you seek elightment, you seek truth. Look down towards foundations like physics, mathematics, logic and look back towards the past.

It' smaybe check out the Computer History Museum.

Read Feynman's (or about) books. "Surely you're joking, Mr Feynman" is light but profound. Max Tegmark's "Our Mathematical Universe" is great. "I am a strange loop" by Douglas Hofstadter will connect many dots. If you want to peek deeper - "Through two doors at once" describes experiments at the edge of our reality. "The singularity is near" is a good perspective that connects dots through time back many years to many in the future.

These are just some incomplete starter points. It's deep, beautiful rabbit hole. Enjoy it.

I like to recommend "Kill It With Fire" by Marianne Bellotti. It is full of insights far beyond managing legacy systems (as the subtitle would have you believe) and does a great job of analyzing the technology and the people/organizations who build it.
(comment deleted)
The Art of Doing Science and Engineering
Lewis Mumford's Books;

- Technics & Civilization

- The Culture of Cities

- The Story of Utopias

Lewis Mumford talks about technology, but from an anthropological pint of view.

Another book I would recommend is The Nature of Technology by Brian Arthur

The other I would recommend is James Burk's Connections he's has some books but I but the documentary is highly recommended.

Simon Winchester's "The Perfectionists" is worth reading
Tao Te Ching, seriously

There is a lot of emphasis on simplicity and that things are the best when they work seamlessly.

Chapter 17, from the translation by Derek Lin, which I wholeheartedly recommend:

    The highest rulers, people do not know they have them
    The next level, people love them and praise them
    The next level, people fear them
    The next level, people despise them
And if you want something a bit more relaxed and updated, The Dude De Ching[1], is quite good. It's a rewrite based around the core concepts of Dudeism, a fan-made spiritual practice based on the character "The Dude" from The Big Lebowski.

> The rug is a fabrication which ties our ruminations together.

1. https://dudeism.com/thedudedeching/

Edit: There is an online version available as well, https://aui.me/text/the-dude-de-ching/

Another great translation is by Witter Bynner - the book is titled The Way of Life rather than Tao Te Ching.
Discussed most recently/productively here at https://news.ycombinator.com/item?id=37686713 I think.
This very thread inspired me to read not only this book, but also this particular translation.
Read through the thread and didn't see references to the translation by Derek Lin, could you point to why you selected that version?
It is in the linked post, not - comments.
There are several ways to approach the Tao Te Ching, including the mystical, but I think that there's a great book that explains the underlying approach the Chinese have, called, Treatise on Efficacy.

Essentially, in Chinese philosophy, any given situation has a propensity (water tends to run downhill). It is therefore more effective to work with that propensity, than it is to work heroically against that propensity. This is very much a layer in what the Tao Te Ching talks about.

(comment deleted)
> Essentially, in Chinese philosophy, any given situation has a propensity (water tends to run downhill). It is therefore more effective to work with that propensity, than it is to work heroically against that propensity.

Interesting, this is similar to the Hindu/Indic idea of dharma (e.g. the dharma of water is to flow) and the idea of working with/towards dharma (both of oneself and the world generally). (Dharma refers to both the proper order of things and to the actions one takes to uphold it.)

Edit: The "See also" section on the Wikipedia page for Ṛta is interesting:

• Asha (Zoroastrianism) https://en.wikipedia.org/wiki/Asha

• Maat (Egyptian religion) https://en.wikipedia.org/wiki/Maat

• Me (Sumerian religion) https://en.wikipedia.org/wiki/Me_(mythology)

• Tao (Chinese Taoism) https://en.wikipedia.org/wiki/Tao

and a few others. In Hinduism there are Ṛta, Dharma, etc. (https://en.wikipedia.org/wiki/%E1%B9%9Ata https://en.wikipedia.org/wiki/Dharma) (also in Buddhism Jainism etc)

What's also interesting to me is that there are enough similarities between Vedic and ancient Greek thought, and yet here we are with Aristolean ideas in the West, and in India, things went the way of the Puranas. (Treatise of Efficacy went into the flaw baked into Aristolean thoughts separating Theory and Practice, and how going with the propensity bypasses that).

The Chinese word for this propensity of the situation is shi (勢), rather than dao (道). There are other texts that talk about exploiting and profiting from propensity (shi), rather than what the Dao De Jing talks about with wei wuwei (為無為).

The notion of propensity/flow made me question if one's life is not best when being able to see and surf trends as you need. Tiny soft and round exchanges between all parties.. a kind of dance.
Mindfulness — being alive to the changing circumstances — is the key.
I can't understate just how great "Waking Up: Overcoming the Obstacles to Human Potential" by Charles Tart (2001) is. It's a cross between engineering and the spirituality (although I argue, it's more on the philosophy and psychoanalysis of engineering than spiritual).

I wrote a (short) review on the book directly after reading it here[1]. I've since reread the book, and while some of my opinions on it are the same, some I understand the nuance much more in context of the rest of the book, I need to update it.

1. https://macleodsawyer.com/books/waking-up/

A Philosophy of Software Design by John Ousterhout. The principles / approaches (e.g. problem disaggregation) apply to other engineering disciplines.
Don't overlook books that are critical of engineering as it is often practiced and how it fits into our society:

Computer Power and Human Reason by Joseph Weizenbaum (1976). Weizenbaum wrote Eliza, the first AI chatbot, almost sixty years ago and was appalled at the reception. This book is still very pertinent, especially the Introduction, Chapter 1 On Tools, chapter 9, Incomprehensible Programs, and chapter 10, Against the Imperialism of Instrumental Reason. Chapter 4, Science and the Compulsive Programmer, is one of the first written accounts of the hacker culture.

Weizenbaum's original paper on Eliza (1966) [0] is still very pertinent to the present generation of chatbots, especially the introduction and discussion.

Tools for Conviviality, Ivan Illich (1973) [1]. Influenced recent work by the computer scientists Steven Kell [2],[3] and Kartik Agaram [4].

Computation and Human Experience, Phil Agre (1997) (excerpt at [5]). Agre got a PhD in AI at MIT in the 80s and 90s and became very critical of the field. I think his shorter writings [6][7] are a better introduction, especially the personal memoir at [6]: "about how I became (relatively speaking, and in a small way) a better person through philosophy."

0. https://dl.acm.org/doi/10.1145/365153.365168

1. http://akkartik.name/illich.pdf

2. https://www.humprog.org/~stephen//research/talks/kell19de-es...

3. https://www.humprog.org/~stephen//research/talks/kell19softw...

4. http://akkartik.name/akkartik-convivial-20200607.pdf

5. https://pages.gseis.ucla.edu/faculty/agre/che-intro.html

6. https://pages.gseis.ucla.edu/faculty/agre/notes/00-7-12.html

7. https://pages.gseis.ucla.edu/faculty/agre/critical.html

I’ll second this. A philosophy for engineering is nestled I think in the larger “philosophy of technology”, but this field of philosophy has traditionally been a lot more critical of technology than most of us can stomach today. This is a really good map of the field that not many know about, written in 1995:

https://shaunlebron.github.io/chandler-1995.pdf

A critical book I enjoyed when I read it (before starting my career) was The Real World of Technology: https://www.goodreads.com/en/book/show/1291973. Worth it just for the first chapter where she defines technology as practice, which helps clarify why the classic “technology X is a neutral tool that can be used for good or ill” argument isn’t very satisfying.

That said, I haven’t read it in a long time so not sure how well it holds up.

I need to read Illich. I've been following The Convivial Society, a newsletter whose author is very influenced by Illich.

My introduction to tech criticism was To Save Everything, Click Here by Evgeny Morozov. He describes a lot of tech culture as "solutionism" which I think is a great lens to have in your pocket.