Ask HN: Good books on philosophy of engineering?
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- https://www.goodreads.com/book/show/61899637-philosophy-of-c...
- https://www.goodreads.com/book/show/60965426-the-creative-ac...
- https://www.goodreads.com/book/show/530415.The_Art_of_Doing_...
"Keep it simple, stupid!"
https://en.wikipedia.org/wiki/KISS_principle
The Basecamp's books are enjoyable, recommending https://basecamp.com/books/rework
https://www.goodreads.com/en/book/show/840
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
[1]: https://qntm.org/clean
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 Computer Programming
What you think is so good about this book for engineers, in a nutshell?
I absorbed as an introduction to the philosophical aspects of quality. Quality is truly a tough concept if approached as a universal truth.
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.
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.
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.
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?
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:
0 - https://www.cs.virginia.edu/~robins/YouAndYourResearch.html
1 - https://www.youtube.com/watch?v=e3msMuwqp-o (lecture version)
Add Edsger Dijkstra's The Humble Programmer (1972 Turing Lecture) as a companion read for software engs: https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340... / https://archive.is/U8GwX
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.
- 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.
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 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/
I think AI Engineers would be interested in a more Zen take, examining 'conceptual mind', 'subjective experience'.
""The Zen Teaching of Huang Po: On the Transmission of Mind""
https://www.goodreads.com/book/show/276779.The_Zen_Teaching_...
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.
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)
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 (為無為).
https://www.goodreads.com/en/book/show/75598048
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/
https://leanpub.com/info-ops/c/LeanpubWeeklySale2024Jan19
Note: Book 2 is more code-centric, with active strategies to minimize solution complexity. This book is all about how to minimize to-do list complexity and tracking (which arguably is more important)
https://en.wikipedia.org/wiki/The_Question_Concerning_Techno...
I would begin with "Do Artifacts Have Politics?" and continue with "Autonomous Technology: Technics-out-of-Control as a Theme in Political Thought", M.I.T. Press, 1977.
http://worrydream.com/refs/Alexander%20-%20A%20City%20Is%20N...
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
https://shaunlebron.github.io/chandler-1995.pdf
That said, I haven’t read it in a long time so not sure how well it holds up.
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.