
Being the Third Edition of Systemantics, extensively revised and expanded by the addition of several new Chapters including new Axioms, Theorems, and Rules of Thumb, together with many new Case Histories and Horrible Examples.
Technical books, especially for practitioners, that stay relevant over a long period of time are rather rare. I wish I could say that I've had time to study TAoCP or SICP, but I haven't.
Some of what I did find useful back in the day were: Advanced Programming in the Unix Environment by Stevens, Stan Lippman's C++ book, Code Complete by Steve McConnell, the GoF Design Patterns book, Working Effectively With Legacy Code by Michael Feathers, and Introduction to Artificial Intelligence by Charniak and McDermott.
Whether, and to what extent, any of them are useful now is hard to say. Depends what you want to learn and what you're doing. The Charniak book, for example, is about classic "good old fashioned" AI, not the currently dominant connectionist approach. But it's LISP, and LISP is always relevant.
I'd also add The Systems Bible by John Gall as a book that influenced me. Its not a technology book though.
It is the nature of bureaucracies to bloat, public or private, changing their aim from why they were originally created to self-propagation.
_Systemantics_ (aka _The Systems Bible_) is a great read on the topic, surpassing even Parkinson's essays (and as easy to read)
https://www.amazon.com/Systems-Bible-Beginners-Guide-Large/d...
https://www.amazon.com/Parkinsons-Law-C-Northcote-Parkinson-...
Complexity by M. Waldrop https://commoncog.com/learning-from-waldrop-complexity/
The Systems Bible by J. Gall (This one is an odd one but it is good for developing a sense of humor) https://novelinvestor.com/notes/systemantics-how-systems-wor...
It is offered from the perspective of how not to design systems, based on system engineering failures. The primary precept of the treatise is that large complex systems are extremely difficult to design correctly despite best intentions, so care must be taken to design smaller, less-complex systems and to do so with incremental functionality based on close and continual touch with user needs and measures of effectiveness.