1. 83

… admittedly in reaction to new books worth reading in 2019, how about the opposite?

What are some books which:

  • Are old?
  • Are relevant?
  • Everyone in tech should read?

Here are my three:

  1. Practice of Programming (1999)
  2. Systemantics (1977)
  3. Flatland (1884)
  1.  

  2. 25

    The golden triad:

    1. The C programming language
    2. The UNIX programming environment
    3. The AWK programming language
    1. 5

      I still have original editions of all three and prize them greatly.

    2. 19

      The Soul of a New Machine (1981). It’s a great story about a team building a highly complex product (a computer). So it touches a lot of subjects: teams, management, engineering, programming.

      I blogged about it once: https://j11g.com/2018/01/06/soul-new-machine-tracy-kidder/

      Also:

      • Hackers by Steven Levy (1984)
      • Innovators by Walter Isaacson (2014: more recent but a great overview of computer history)
      1. 1

        One more in the same vein:

        What the Dormouse Said: How the Sixties Counterculture Shaped the Personal Computer Industry, by John Markoff (2005)

      2. 17

        “The pragmatic programmer” (1999)

        1. 10

          This one was actually recently updated in a 20th anniversary edition, and much of it was rewritten to make it both modern and more timeless:

          https://pragprog.com/book/tpp20/the-pragmatic-programmer-20th-anniversary-edition

        2. 13

          Most tech people could learn a lot about the limits of scientific and engineering processes by reading modern philosophy of science

          Thomas Kuhn - The Structure of Scientific Revolutions (1962)

          Paul Feyerabend - Against Method (1975)

          1. 1

            Both universities that I attended for undergrad and grad school had Kuhn on the required reading list for senior capstone. I realize now that it might be a false assumption that most CS students are at least aware of it. I’ll be recommending it to some people kids I’ve been mentoring.

          2. 12

            I wonder what is considered “old” these days, but perhaps I’ll make the cutoff 2004 (so, published 15 years ago, or older). A quick sampling:

            • The Cathedral and the Bazaar (2001)
            • The Dreams of Reason (1988)
            • The Psychology of Computer Programming (1971)
            • Managing the Design Factory (1997)
            • The Mythical Man-Month (1975)
            • Programming Pearls (1986)
            • Software Tools (1976)
            • The Elements of Programming Style (1974)

            Also, I haven’t read it in a long time, but Advanced Programming in the UNIX Environment (1986) was a book I truly devoured with gusto back in 2002-2004 period.

            I’ll also second The Practice of Programming. I still think that’s one of the best books for new programmers joining a team.

            1. 6

              Hackers and Painters was published in 2004 so meets your filter. Even though it’s just a bundle of Graham’s blog, and obviously not up to date, it’s nice to have a paper bundle and the essays are still really helpful to me.

              1. 1

                Agree, +1 to Hackers & Painters. Also on my shelf and re-read from time to time, including about a year ago!

                1. 1

                  I find the individual essays are perfect, relaxing lunch reads.

              2. 2

                I started re-reading TMMM last month and found it painfully sexist. It has not aged gracefully with modern culture.

                1. 5

                  It was written by a man born in North Carolina the 1930s, who worked at the most conservative male-dominated company culture (operating system programming at IBM in the 1950s), before becoming a professor back in North Carolina in the 1960s. He was also an evangelical Christian. I think it would have been hard for his generally conservative worldview to not slip through the writing. (Though I admit he should have tried harder.) I also sense from the book that he was writing in a “lofty” style, talking about “men” in the same way as “Of Mice and Men” or “All Men Are Created Equal”. Indeed, that even goes all the way up to the title, with the term “man-month”. In any case, I think an astute reader can separate the dated writing style from the content.

                  1. 1

                    I believe what makes the parent astute is the fact that they were able to see how painfully sexist the book is on a second reading. Obviously they have read it and found enough value in the book to come back to it, and they are paying enough attention to point out its flaws.

                    What I don’t find to be astute on your part is dismissing the dated worldview of the author as a mere writing style.

                    1. 8

                      I’m not dismissing it. I think his worldview was dated, even for the 1950s or 1960s. But to take a different tack, I’m an atheist, so I find all references to “god” in all writings moderately distasteful and outdated. But, even so, I don’t write off those writers who invoke “god this” and “god that”, and especially not those writers in history. At least not to write off all their writing, en masse, for the religious invocations.

                      In short: I try to apply charity wherever I can when reading. And I think Brooks had a lot of really interesting ideas about software engineering management, regardless of what conservative worldview may have informed them (or may have merely been detectable in his choice of words in certain sections).

                      I just think if I took this harsh attitude toward writing, I’d have a hard time reading writings by Thomas Jefferson or Friedrich Nietzsche, as well. One needs to be able to separate the common mistakes of a past generation from the unique wisdom of flawed humans across generations.

                    2. 1

                      fyi, it’s quicker to just reply “agreed” and not fill lobsters with pedantic devils advocacy.

                2. 11
                  • Godel, Escher, Bach: An Eternal Golden Braid (1989 is the latest ed. From the 70s)
                  • The New Turing Omnibus - Sixty Six Excursions in Computer Science (1993) - I never hear this book referenced anywhere and it’s the first book that truly turned me on to the power of algorithms.
                  1. 3

                    Great picks! I had forgotten about GEB, and never came across The New Turing Omnibus before.

                    1. 1

                      I don’t know whether or not The New Turing Omnibus would appeal to someone with a very strong theoretical foundation in computer science and algorithms or not, but given that I most certainly do not, it’s still a book I turn to when I want to actually understand how an algorithm works.

                      I wish it were updated for more modern algorithms, but A. K. Dewdney isn’t doing that kind of work anymore, sadly.

                    2. 2

                      The New Turing Omnibus is excellent! Copies are around $10 and they make a great gift for people of all ages and skill levels. You should try From Newton to Mandelbrot: A Primer in Theoretical Physics, the small code examples are in BASIC which are easily translated to Python. The math is at an advanced hs/undergrad level.

                      1. 1

                        Sounds like fun I’ll add it to my list. Trying to rein myself in on the “OOH that is SHINY I’d love to play with that… If I EVER have time!” purchases :)

                    3. 11

                      I’d recommend “Data and Reality” by William Kent. More of a philosophy book geared toward programmers, but it is asking good questions. The book has been updated a few times since the 70s, so the stale content has been removed.

                      In the non-technical variety, “Zen and the Art of Motorcycle maintenance”, which was published in the 70s also. It’s an introspection into what quality and expertise is made of.

                      Also published in the 70s, “The timeless way of building”, which args for looking at patterns in the way people build. This and it’s successor, “A pattern languages” are the inspiration for design patterns. The difference between the original thought and what has been made of it make for an interesting read.

                      1. 3

                        The only part of Zen and the art… that stuck with me was the beer can shim.

                        However most of Zen Flesh and Zen bones is permanently wired into my head.

                        1. 3

                          I’d recommend “Data and Reality” by William Kent.

                          Seconded. Great book. I found it went nicely with The Systems Bible, by John Gall.

                          1. 1

                            OOH Data and Reality is even availabe on Audible! Woot I am there! :) Thanks for the recommendation.

                            1. 1

                              I’d recommend “Data and Reality” by William Kent. More of a philosophy book geared toward programmers, but it is asking good questions. The book has been updated a few times since the 70s, so the stale content has been removed.

                              While I came here to second Data and Reality, be warned about the third edition. It was updated after Kent died, removed something like half of the original text, and replaced it with the editor’s (Steve Hoberman) own half-baked ideas. And while the book says it put the new stuff in italics, but at least on Safari it often presents The content as the original.

                              Try to read both the earlier editions: the content is the same but it’s a book worth reading twice.

                              1. 1

                                I’m about 3/4 of the way through the most recent edition now on Audible.

                                I haven’t read the earlier editions (and may not get to any time soon) but I just wanted to say the sidebars by Steve Hoberman are getting on my nerves. They’re mostly breathless generalizations about the author’s original ideas and I’m finding them to be a distraction I wish I could skip.

                                GREAT book though, so glad I’m reading it. Thanks @laurentbroy for the recommendation!

                              2. 1

                                In the non-technical variety, “Zen and the Art of Motorcycle maintenance”, which was published in the 70s also. It’s an introspection into what quality and expertise is made of.

                                When reading this one I had a feeling that the entire concept could be more succinctly put instead of constant repetition of the same theme.

                              3. 10

                                Oh I like books. Programming books tend to come in vogue, so I very rarely recommend them outright. There are a few buried in here though:

                                • TAOCP (Knuth) is a classic, and I still revise some of the algorithms regularly. I don’t know if it’s worth the whack, but unlike many other technology books, the advice remains extremely relevant today.
                                • Basic Marketing (McCarthy) is highly recommended reading for anyone who thinks marketing is quackwork or thinks Google and Facebook PPC has made a foundational background obsolete.
                                • Common Stocks and Uncommon Profits (Fisher) worth reading at least the first few chapters, for his “scuttlebutt” approach towards evaluating companies. Why would you want to do this? Well, investors want to do this, certainly, but employees wondering whether this is a good startup bet can also learn from this because it’ll tell them what those investors your CEO is trying to attract actually want to know.
                                • Modern Operating Systems (Tanenbaum) feels dated on a skim; few would consider MS-DOS “modern” by any stretch of the imagination, and yet when you see what he is comparing it to you begin to wonder when computers are going to start making the programmers’ job any easier.
                                • High Output Management (Grove) an excellent view into what management and executives actually do. If you think management is a waste of space in an organisation, I can recommend nothing better than to learn what good management can do.
                                • What Every Programmer Should Know About Memory (PDF; Drepper) is still one of the best guides to what your computer is actually doing. I have said that I can often beat an O(1) algorithm with an O(n^2) algorithm in many cases and this “book” will tell you when, why, and how.
                                • Nudge: Improving Decisions About Health, Wealth and Happiness (Thaler) do not let the title lead you to think this is a self-help book. This is an excellent introduction to the idea of the role of a change architect and can guide your decisions in usability design in a way that other books on UX will fall short or feel dated in a few years.
                                • Applied Cryptography (Schneier) is an excellent book for anyone who is faced with “rolling your own” crypto. The knowledge models described for each class of crypto-primitive remains highly relevant today, and I predict is likely to remain so for the next twenty years.
                                • The Tipping Point (Gladwell) attempts to examine “viral marketing” in earnest, and I think the roles of mavens and connectors and salesmen are a good model to consider for anyone trying to build a focus group or do market research; Nobody likes getting a handful of beta signups and wondering where all the customers are, and this book can help you ask why.
                                • The Elements of Style (Strunk & White) begins with this admonition: Be brief. The advice it gives to writers applies well to programmers, and so I usually recommend this over the more-software-focused version of a similar name.
                                1. 6

                                  The Elements of Style is great. I have the 3rd edition, which is the last edition from White himself.

                                  1. 0

                                    edit: moved to parent comment

                                  2. 3

                                    I would not recommend The Elements of Style. Stunk and White get a lot of grammar factually wrong. The Land of the Free and The Elements of Style (PDF) goes into far more detail than I care to put in a comment.

                                    1. 5

                                      I think if you can’t get anything out of Elements because you read that, that’s a shame.

                                      One thing I found especially interesting to programmers, was how it is impossible to define a taxonomy of style: We can criticise it, surely, but we cannot say for certain what good taste is. Or put another way, no matter how good and fast and correct your code is, eventually someone out there find some reason to shit on it.

                                    2. 2

                                      Got any thoughts on Serious Crypto by JP Aumasson?

                                      Using that as a slightly more modern companion piece to Scheiner’s Applied Crypto.

                                      1. 2

                                        I haven’t read it.

                                        I’ve ordered a copy and I’ll read it when it arrives.

                                    3. 10

                                      “Expert C Programming: Deep C Secrets”, Peter Van Der Linden

                                      I have multiple copies because every time I loan it out, its gone for good.

                                      1. 8
                                        • Calculus Made Easy by Sylvanus P. Thompson A Calculus primer from 1914. It’s a perfect, concise description of Calculus with a dry sense of humor. Its existence is an indictment of every awful, gigantic calculus textbook anchor bending students’ backs and school districts’ purses.
                                        1. 8

                                          I’ll add Structure and Interpretation of Computer Programs by Abelson and Sussman. This book was very fun for me when I did a close reading of it and I return to it every now and again. I think everyone should read it.

                                          1. 3

                                            This one is fun to pair with the video lectures, too. https://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

                                            1. 2

                                              I loved the first two, maybe three chapters. A lot of fun. But by the last two, I really just wanted it to end. It seemed to drag on and on. I seem to recall I had to gloss over a few sections because my maths is pretty weak. Overall it was a very worthy read, but I could have stopped halfway through and been satisfied (too bad I can’t leave a book unfinished).

                                            2. 8

                                              Starting Forth and Thinking Forth.

                                              1. 2

                                                Thinking Forth was one of only two books that fundamentally changed how I approach programming, I highly recommend it (and copies can be found on the Internet). The other book was Writing Solid Code (even if it was written by Microsoft).

                                              2. 8

                                                CODE: The Hidden Language of Hardware and Software.

                                                It goes from explaining encoding of information, how to make logic gates, all the way up to a full computer.

                                                1. 8

                                                  Peopleware (1987) - The rants against open office plans are worth the price of admission alone. Data-driven conclusions, a bit of disbelief aimed at the gap between what science knows and what business does, with a hefty dose of sarcasm to boot! Developers AND managers alike could all benefit from reading this and following the book’s advice.

                                                  1. 5

                                                    Also, I recently read “Team Geek”, which, despite the strange book title, is actually something akin to a mid-2000s update of “Peopleware”, written from the engineer’s perspective, rather than the manager’s. The authors happened to be Google engineers operating in Google’s smaller Chicago satellite office, working on the “Google Code” project (who were, in a prior life, the maintainers of svn). More information here.

                                                  2. 8

                                                    I mean, Neuromancer is 35 years old, which definitely counts as “old”, and was astonishingly prescient. And as a bonus, it’s a wonderful read.

                                                    1. 6

                                                      The Shockwave Rider by John Brunner (1975) is another absolute SF classic that touches on many themes and ideas that would be of interest to crustaceans: collective intelligence, communication networks, prediction markets, computer “worms.”

                                                      1. 2

                                                        Mentioned down below and jfb commented also. Wonderful book.

                                                        1. 3

                                                          I just noticed the repetition! Here’s a little something extra. I can also recommend a less well-known Brunner book: The Squares of the City (1965). It’s about technocratic social engineering and urban planning in a rapidly modernizing South American city– an intriguing companion to Medina’s book about Cybersyn and Chile (Cybernetic Revolutionaries, mentioned elsewhere in the thread.)

                                                          Some of you will appreciate that Brunner modeled the narrative on a famous chess match (Wilhelm Steinitz vs Mikhail Chigorin.) I was delighted to learn about this but I was not aware of it while reading and it’s not necessary to enjoy the book.

                                                          1. 2

                                                            Also great! I’d forgotten all about it, and now I want to go to the library and grab a copy.

                                                    2. 7
                                                      • Purely Functional Data Structures, Okasaki (1998 – the book, not the thesis)
                                                      • Modern Compiler Implementation in ML (1998) – there are versions for C and Java, but they’re famously un-idiomatic; definitely get the ML version

                                                      These look and sound basic, but each is devoted to building up to (and implementing) an advanced topic. Really, anything from Friedman’s Little series, but these three are both good and old:

                                                      • The Little Schemer (originally The Little LISPer, 1974)
                                                      • The Seasoned Schemer (1995)
                                                      • The Little MLer (1998)
                                                      1. 2

                                                        +1 for the little schemer. It and its predecessor the little lisper were the first books that helped me truly grok how powerful some of the concepts embodied in that branch of the programming language tree are.

                                                        One day, I will have the time to sit down and absorb Clojure or similar fully and write something useful with it :)

                                                      2. 7

                                                        Niklaus Wirth’s “Algorithms + Data Structures = Programs” (1976)

                                                        The code examples (Pascal) are of course rather out of date, however it’s an excellent guide for thinking about and designing algorithms and data structures in order to solve problems!

                                                        1. 6

                                                          Wirth made available a PDF of the Oberon version.

                                                          1. 2

                                                            Oh awesome I didn’t know that! I’ve got a copy of the original (falling apart mind you) and it’s still great :)

                                                        2. 6

                                                          Paradigms of AI Programming: Case Studies in Common Lisp (1990)

                                                          Just started working through it, but it seems to be a great way to learn Common Lisp. I like Norvig’s writing style so far.

                                                          1. 6

                                                            Debugging, by David Agans (2002). There are is no better book on the skill of debugging out there. (Andreas Zeller’s Why Programs Fail is also great, but doesn’t count as “old”.)

                                                            1. 5

                                                              Purely Functional Data Structures - Chris Okasaki 1998 You can also find the same-named PhD thesis on the web. This book is not really highly practical, but it has been a gateway to functional programming for many people, including myself. This book gets you thinking in terms of algorithms using recursion and where the cost is in recursive algorithms (basically more lines = more cost!).

                                                              1. 5
                                                                1. SICP - the classic
                                                                2. Mirror Worlds by David Gelernter (1991) - Describes what the Internet could have looked like if UserAgents actually helped users.
                                                                1. 5

                                                                  Norbert Wiener books. “Cybernetics: Or Control and Communication in the Animal and the Machine” and “The Human Use of Human Beings”.

                                                                  1. 3

                                                                    You prefer Weiner over Stafford Beer?

                                                                    1. 3

                                                                      In terms of Beer, I’d try Eden Medina’s book.

                                                                      1. 2

                                                                        Cybernetic Revolutionaries? Does that actually replace the source material or merely provide extra flavor?

                                                                        1. 3

                                                                          I’d say it provides historical context and a gentle introduction before diving into Beer.

                                                                      2. 2

                                                                        Beer’s out of print & hard to get a hold of. (I have access to a major university library & still can’t get a copy of The Brain of the Firm.) This probably limits how many people are even familiar with his stuff!

                                                                        1. 2

                                                                          Very good point and a real shame IMO. I own a copy but paid more than I’d normally pay for a book for it, and it’s in dead tree so I only got about halfway through it. (I have a super hard time with dead tree books due to low vision. My underpowered eyes can only do so much before I have to stop so as not to over-strain).

                                                                          1. 3

                                                                            I’m sure it’s possible to pirate a copy on libgen or something. I haven’t because I prefer dead-tree for deep reading.

                                                                            Maybe we can agitate the Beer estate to get a new edition in print & ebook.

                                                                            1. 1

                                                                              I’ve seen pirated copies around, but honestly I’m at a place in my life where stealing things just doesn’t work for me anymore.

                                                                              Also, the pirated copies are pretty much badly scanned PDFs. So you get what you pay for :)

                                                                              And yes I’m surprised with the resurgence in interest that they’re still out of print.

                                                                    2. 5

                                                                      I’ve been really enjoying these books on the same theme the last few weeks:

                                                                      • Deming, 1994, The New Economics
                                                                      • Deming, 1983, Out of the Crisis
                                                                      • Shewhart, 1939, Statistical Method from the Viewpoint of Quality Control
                                                                      • Wheeler, 2000, Understanding Variation: the Key to Managing Chaos
                                                                      • Scherkenbach, 1986, The Deming Route to Quality and Productivity
                                                                        1. 4

                                                                          Old CJ Date has been fighting the good fight (and sadly losing) for decades.

                                                                          SQL and Relational Theory, 2nd Edition How to Write Accurate SQL Code By Chris Date is his latest salvo in this long war, and the version I would recommend for most people trying to grapple with the modern DB environment.

                                                                        2. 4

                                                                          In the name of emphasizing the importance of culture & lore in programming, I’d like to recommend a computing folklore book. Rather than the usual (ESR’s New Hacker’s Dictionary, Levy’s Hackers), I recommend Karla Jennings’ The Devouring Fungus.

                                                                          1. 4

                                                                            War and Peace, Leo Tolstoy. I’ve been moved to tears at least four times and I’m only a fourth of the way through the book. Tolstoy’s language is beautiful and perfectly captures what I think of as events and people that rhyme with those in my own life. (Though we are far away in time, space, and social position.) It’s truly incredible.

                                                                            1. 4

                                                                              I don’t think everyone in tech should read this, but The Dream Machine by Waldrop is a very good history of computing. It’s one of the only books I got from the library and then bought a copy of.

                                                                              I don’t think it’s good as an “intro” to computer history. I had read a lot of other history before it, and it tied a lot of things together.

                                                                              It talked about the credit dispute behind the von Neumann architecture, which I didn’t know about before. And the reason that the computer wasn’t patented !!! That is, some credit should have gone to Eckert and Mauchly:

                                                                              https://en.wikipedia.org/wiki/Von_Neumann_architecture#Development_of_the_stored-program_concept

                                                                              https://en.wikipedia.org/wiki/J._Presper_Eckert#%22Eckert_architecture%22

                                                                              It also had some interesting observations on the relationship between Shannon’s work and Turing’s, who were contemporaries but were separated by an ocean. You often read about them separately but I remember thinking they are “duals” of each other :)

                                                                              1. 4

                                                                                It’s been quite a while since I laid eyes on a copy (I got it by way of inter-library loan in college, if I remember right), but Computer Lib/Dream Machines has lurked somewhere in my thinking for pretty much my entire working life.

                                                                                1. 2

                                                                                  Ted found a scan a couple years ago of the first edition & got a reprint going, so (last I heard) you can get it on Amazon (after decades out of print). I recall thinking it was still too expensive last I checked, though, & I’m glad I didn’t need to pay for my copy.

                                                                                  1. 1

                                                                                    Interesting - from a cursory glance it looks to be out of print again, but I’ll have to dig a bit. I notice they list older used copies starting at $145, which is… A bit over the top.

                                                                                    1. 1

                                                                                      The one I got may have been from a limited run – it was probably about five years ago that this happened. $145 is about what I remember the originals going for.

                                                                                2. 4

                                                                                  These are not directly computer science, but I found them to be capturing.

                                                                                  • Structures: or why things don’t fall down. By J. R. Gordon. Engineering. 1978
                                                                                  • The Design of Everyday Things. By Don Norman. Design, how to make things intuitive. 1988
                                                                                  1. 4

                                                                                    Programming a Problem-Oriented Lanugage by Chuck Moore, inventor of Forth.

                                                                                    1. 4

                                                                                      The Shockwave Rider (1975)

                                                                                      I think some of the old Bell Labs folks enjoyed it.

                                                                                      1. 3

                                                                                        Yeah, definitely. It’s pretty staggering how much Brunner got right. See also, Stand on Zanzibar.

                                                                                      2. 3

                                                                                        Назначение человека. Фихте.

                                                                                        1. 3

                                                                                          In the name of emphasizing the importance of culture & lore in programming, I’d like to recommend a computing folklore book. Rather than the usual (ESR’s New Hacker’s Dictionary, Levy’s Hackers), I recommend Karla Jennings’ The Devouring Fungus.

                                                                                          1. 3

                                                                                            Man And The Computer Interesting discussion and predictions about comptuers and networks from one of the inventors of BASIC.

                                                                                            The Art of MetaObject Protocol An interesting approach to implementing an object system. A lot of the concepts here are now being added to other languages, like Herb Sutter’s metaclass proposals for C++.

                                                                                            Lisp Good, but slightly outdated, introduction to Lisp. I have the second edition, and most of the code still works in modern Common Lisp, but is an older style and obviously doesn’t use modern conveniences like QuickLisp. Not a problem, though, because the book is more about the nuts and bolts of the language anyway. Interesting example code involving AI, because the author taught AI at MIT.

                                                                                            Queues Short introduction to queueing theory.

                                                                                            Communication Nets Short intro to the theory of networks.

                                                                                            1. 3

                                                                                              SICP?

                                                                                              1. 3

                                                                                                I wrote a review of two of Brad Cox’s books which I think are still important today. I understand my co-writer, Adrian, is doing similar for Bertrand Meyers’s writing.

                                                                                                Alan Turing wrote something very accessible papers about the nature and application of computable machines. Once you get past the word Entscheidungsproblem in the title, that is.

                                                                                                1. 3

                                                                                                  Maybe a bit of a weird one, and not too old , but I think the Bjarne C++ Programming Language is a very good book to sit and read through. It includes a lot of implementation code for standard library stuff, as well as a lot of exercises you could work through.

                                                                                                  As a kid I got a copy and had nothing else to do but page through it, and each page had some fun little aspects to it.

                                                                                                  1. 3

                                                                                                    Systemantics aka The Systems Bible gets a +1 from me. Very entertaining!

                                                                                                      1. 2

                                                                                                        How old? Refactoring, Improving the Design of Existing Code by Martin Fowler came out in 2000, but the 2nd edition came out this year.

                                                                                                        And please, a Refactoring is a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior.

                                                                                                        If you want to do that and change behaviour, I strongly recommend you do it in two steps. A pure refactor, commit, push, followed by a change in behaviour.

                                                                                                        1. 2
                                                                                                          1. The Non Designers Design Book. Robin Williams
                                                                                                          2. Don’t Make Me Think. Steve Krug
                                                                                                          3. The Design of Everyday Things. Donald E. Norman.
                                                                                                            1. 1

                                                                                                              Not a book, and not very old - but I still think Fielding’s dissertation on REST (representational state transfer) is very well worth the read - especially for the perspective of building a system/software architecture from constraints:

                                                                                                              “Architectural Styles and the Design of Network-based Software Architectures” Roy Thomas Fielding, 2000

                                                                                                              https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

                                                                                                              (Also have a look at the committee.. There are some familiar names…).

                                                                                                              1. 1

                                                                                                                Sorry for derailing the thread in a bit, but I’m looking for similar advice. What “classic”, still relevant or immortal books should I get as a sysadmin/“linux engineer” in terms of our internal training budget in $COMPANY? I have about $500 to use until 2020/1/1 which will just waste if I don’t use it (they just reset the amount to $500 again next year) , and every actual “training” I wanted to take is far beyond $500. I know it sucks a bit, but it’s better to “throw it into books” instead of letting the budget fade away. And I quite liked doing the smae last year, but mostly used that to get “major” reference manuas or “bibles” in my origin language. I’m mostly doing the OS-related work in preparing custom images (or even a “distro”) for very specific domain and devices, which might sound boring but is actually really interesting.

                                                                                                                Even if I might personally have a book you recommend me in my own library, I still appreciate any recommendation as these books will probably stay in the company facility when I leave it, so I always think about passing them to next person as a some sort of heritage.

                                                                                                                1. 2

                                                                                                                  “Data and Reality” is as relevant today as it was in the 1970s.

                                                                                                                2. 1

                                                                                                                  Not exactly old (but not new enough for the other submission):

                                                                                                                  Shop Class as Soulcraft: An Inquiry into the Value of Work by Matthew Crawford (2009).

                                                                                                                  Read this last month. It’s not about programming but parts of this book articulated things I’d experienced or been thinking about. Got me thinking about the differences between kinds of “manual work” I enjoy (repair, etc), kinds of programming work, and other kinds of “knowledge work”.

                                                                                                                  1. 1

                                                                                                                    The Essence of SQL: A Guide to Learning Most of SQL in the Least Amount of Time (1996) by David Rozenshtein

                                                                                                                    1. 1
                                                                                                                      1. Coders At Work
                                                                                                                      2. CODE: The Hidden Language of Hardware and Software.

                                                                                                                      I don’t know if I have a strong third or not.

                                                                                                                      1. 1

                                                                                                                        Of course you should have read “The Art of Computer Programming” Vol.1-4 and do maybe, I dunno, 50% of the exercises, just the ones that interest, before touching a computer. /s

                                                                                                                        Seriously good book to open a random page / section and have a vivid explanation and go deep on some topic, but have no expectations of being able to read cover to cover, i suspect that requires a monastery (or that sort of discipline) to do.

                                                                                                                        Just read 4 pages of the thing. Deep. Now stroke your proverbial beard and knod infront of the PDP-10

                                                                                                                        Also: crime and punishment. I haven’t read it, but added it here to sound weighty.

                                                                                                                        1. 1
                                                                                                                          1. 1

                                                                                                                            Computer Power And Human Reason was a real mind blowing book for me. Discusses the limits of computation in terms of ethics and decision making.

                                                                                                                            https://en.m.wikipedia.org/wiki/Computer_Power_and_Human_Reason

                                                                                                                            1. 1

                                                                                                                              If you are Italian (or you know Italian), I’d recommend “Spaghetti Hacker”. I’m currently still reading it, but I can tell it’s worth before reaching the end.

                                                                                                                              1. 1

                                                                                                                                حي بن يقظان, Hayy ibn Yaqdhan, or Alive, son of Awake one of the first books about autodidactism (1182)

                                                                                                                                Passages from the Life of a Philosopher autobiographic book by the Charles Babbage, inventor of mechanical computers (1864)

                                                                                                                                I would agree on Flatland and add also A Primer of Higher Space (the Fourth Dimension) (1913)

                                                                                                                                The Adolescence of P-1 is one of the first stories about AI (1977)

                                                                                                                                And if you want something really old and still relevant, try Euclid’s Elements (-300) or Newton’s Principia Mathematica (1687)