[HN Gopher] Knuth's Art of Computer Programming, V 4B, has gone ...
       ___________________________________________________________________
        
       Knuth's Art of Computer Programming, V 4B, has gone into print
        
       Author : inetsee
       Score  : 551 points
       Date   : 2022-10-04 15:49 UTC (7 hours ago)
        
 (HTM) web link (www-cs-faculty.stanford.edu)
 (TXT) w3m dump (www-cs-faculty.stanford.edu)
        
       | Pet_Ant wrote:
       | Who will finish the book when he is gone? This is too important a
       | work to not finish.
        
       | AlbertCory wrote:
       | 50 years ago, he claimed he was going to write 10 volumes of
       | TAOCP. The actuarial tables are not encouraging here.
       | 
       | He doesn't respond to emails, but his assistant does, and I sent
       | a copy of my book about Xerox to his home address. No answer. But
       | hey, it was worth a shot.
        
         | linguae wrote:
         | Speaking about Xerox PARC, about a month or so ago I was
         | actually at the 50th anniversary of Smalltalk event at the
         | Computer History Museum in Mountain View; Adele Goldberg
         | participated in an in-person interview, and Dan Ingalls was
         | also interviewed via live streaming. There were many luminaries
         | in the audience, including David Ungar (one of the leading
         | researchers behind the Self object-oriented programming
         | language), but one standout moment was when a very tall elderly
         | man walked up to me to read my nametag. It took me about 30
         | seconds to recognize that he was the author of Concrete
         | Mathematics and The Art of Computer Programming: Donald Knuth!
         | 
         | Once I recognized him, I told him that I preordered a set of
         | the latest edition of The Art of Computer Programming. He made
         | a joke about collecting royalties from all the books he sold.
         | 
         | I'm glad I had the opportunity to speak to Donald Knuth! I
         | actually saw him earlier this year at a Stanford symposium, but
         | I didn't get to speak to him.
        
           | AlbertCory wrote:
           | I was there, too. Didn't see Knuth, though.
        
       | f1shy wrote:
       | I learned about the TAOCP in 2008 or even earlier. At that time,
       | I already thought, I will not be able to have the first 4 Volumes
       | complete.
       | 
       | Is there any hope that somebody will continue the work?
        
       | varjag wrote:
       | Seeing the photo of Knuth picking cotton in Uzbekistan, my ex-
       | Soviet citizen's first thought was "now what they did pack him
       | for".
        
       | O__________O wrote:
       | In Google's recent "Hacking Google" series [1] they appeared to
       | credit Knuth via his bug reward program in his books [2] as
       | having created the first software bug bounty offer.
       | 
       | Anyone aware of any software bug bounties that predate Knuth's?
       | 
       | ___________
       | 
       | [1] https://news.ycombinator.com/item?id=33066313
       | 
       | - specifically:
       | https://youtube.com/watch?v=IoXiXlCNoXg&list=PL590L5WQmH8dsx...
       | 
       | [2] https://wikipedia.org/wiki/Knuth_reward_check
        
         | eesmith wrote:
         | FWIW, here's a side-ways mention of Knuth's bounty, from
         | http://ed-thelen.org/comp-hist/B5000-AlgolRWaychoff.html
         | 
         | > So I sat down with him and proofread the pages as they came
         | out of the typewriter. It seemed that he was composing and
         | typing as fast as I could read. By morning the manual was done.
         | Years later when don's first book came but, he told me that if
         | I would proofread it for him that he would pay me a dollar for
         | every error that I found, including typographical errors. I
         | took the offer as a great personal compliment at the time, but
         | I think that he probably made that a standing-offer to anyone.
         | 
         | also from earlier in that essay:
         | 
         | > don claimed that he could write the compiler and a language
         | manual all by himself during his three and a half month summer
         | vacation. He said that he would do it for $5000. Our Fortran
         | compiler required a card reader, card punch. line printer and
         | automatic floating point. Don said that he would not need the
         | card reader or card punch, but he wanted a magnetic tape unit
         | and paper tape. I asked Gerard Guyod how Brad could have been
         | suckered into paying this college kid $5000 to write something
         | that had to be a piece of junk if he was only going to spend
         | three and a half months on it. Gerard whispered his response to
         | me. He said "We think that he already has it written. He
         | probably did it in his spare time while working in the computer
         | center at Case Institute." I still wasn't entirely satisfied
         | with that answer because I was a college graduate whose first
         | job was for 5325 per month and I had just changed jobs and was
         | making $525 per month. Besides that it was taking mortal human
         | beings 25 man-years to write compilers: not three and a half
         | man-months. I thought that Brad had taker leave of his senses.
        
           | macintux wrote:
           | Thanks, there are a lot of gems in that piece.
        
         | IncRnd wrote:
         | As a saddening commentary, Knuth stopped sending those checks
         | in 2008 because of problems with check fraud. Since this refers
         | to Knuth, I carefully parsed that not as "because of check
         | fraud," but, "because of problems with check fraud." There is
         | an interesting difference between those two.
         | 
         | From your wiki link:                 Initially, Knuth sent
         | real, negotiable checks to recipients. He stopped doing
         | so in October 2008 because of problems with check fraud. As a
         | replacement, he       started his own "Bank of San Serriffe",
         | in the fictional nation of       San Serriffe, which keeps an
         | account for everyone who found an error since       2006.[2]
         | Knuth now sends out "hexadecimal certificates" instead of
         | negotiable       checks.
        
       | PeterStuer wrote:
       | Just picked up a near pristine vol.1 first edition in a uni
       | library selloff. Wonder how they got a copy so unread after all
       | these years.
        
         | bombcar wrote:
         | I suspect the printer could glue the last 90% of the pages
         | together on each volume and many wouldn't notice. It's a very
         | aspirational book to have, but not many have read much of it.
        
         | sitzkrieg wrote:
         | well it is simple, as the countless comments above attest to:
         | very few people actually read the tomes.
         | 
         | but hey maybe impressive no damage from being lugged around
         | between check outs :)
        
       | ColinWright wrote:
       | A copy personally autographed by Knuth will be up for auction in
       | the Gathering For Gardner fund raiser.
       | 
       | * The Art of Computer Programming, Volume 4B: Combinatorial
       | Algorithms, Part 2
       | 
       | * https://www.amazon.com/Art-Computer-Programming-Combinatoria...
        
       | the-printer wrote:
       | I am relatively unfamiliar with these books, but the fact that
       | Knuth publishes them in "fascicles" is hilariously intriguing. I
       | have a superficial understanding of Knuth's character as a
       | programmer but I get the impression that the work is portrayed in
       | a folksy, arcane sort of way.
       | 
       | Am I far off?
        
         | kragen wrote:
         | What's hilarious or intriguing about it? Is it just that you're
         | not familiar with the practice of publishing things in
         | fascicles?
        
           | the-printer wrote:
           | Yes, actually, you are correct! Hilarious in the sense that I
           | am amused; it makes me laugh; it brings me joy. Intriguing in
           | that makes me want to read them. The years-long effort
           | reminds me of Robert Caro's series on Lyndon B. Johnson. It's
           | as if he's been blogging for decades, but in book form.
           | 
           | Tantalizing.
        
             | bombcar wrote:
             | Knuth got annoyed at the state of mathematical publishing
             | decades ago, and in a fit not seen since (maybe Linus and
             | git counts) stopped what he was doing, learned enough about
             | typesetting to become a domain expert, wrote TeX, and then
             | resumed what he was doing.
             | 
             | So when he uses typesetting/printing terms, he's using them
             | correctly.
        
               | the-printer wrote:
               | Thanks for this. It's fascinating, truly.
        
               | f1shy wrote:
               | Not only TeX, also Metafont, because we was not satisfied
               | with available computer types.
        
               | bonzini wrote:
               | And designing the Computer Modern font, which is
               | certainly not the most artistic or beautiful but still in
               | use and more than decent.
        
       | Bayko wrote:
       | Can someone honestly tell me if they have actually read these
       | books AND found them useful ON TGE JOB? What do you guys do for
       | work? I tried reading part 1?? Like ten years ago and it was
       | pretty much assembly language or something I believe. And gave up
       | since it wasnt something that I needed in academia back then and
       | there were far better ways to learn DSA
        
         | Labo333 wrote:
         | I'm currently going through Fascicule 6A dedicated to SAT
         | solving and I can tell you it is by far the best reference. I
         | haven't found anywhere else a complete reference that builds a
         | SAT solver from scratch while explaining why each technique is
         | used.
         | 
         | Regarding more classical algorithms, I never bothered reading
         | the other fascicles. I think there are much more practical
         | references but none is as complete and detailed as Knuth's
         | treatment. He goes to the bottom of any algorithm, not just
         | proving it has the right complexity but also asking what inputs
         | are the most difficult, what other problems it can solve, etc.
         | In the end you understand the field much better and have a good
         | idea of what the boundary of knowledge (ie research) looks
         | like.
         | 
         | But, and I say that as an ICPC world finalist, if you just want
         | to solve practical problems you probably won't need TAOCP.
        
           | lupire wrote:
           | Knuth's chapters are mostly decades old. I don't think they
           | are near the boundaries of research. (except the starting
           | boundaries.)
        
         | kieckerjan wrote:
         | Over 25 years ago I was researching algorithms for a search
         | engine I had been commissioned to write, and for its disk
         | allocation strategy I had settled on a "buddy algorithm" from
         | The Art of Computer Programming Vol 1. It had nice properties
         | and was easy to make.
         | 
         | I implemented it to a tee, only to see it fail (I think in the
         | part that merges abandoned blocks). I banged my head against
         | this problem for days before finally daring to entertain the
         | notion that the algorithm might be flawed. This was TAOCP after
         | all!
         | 
         | Turned out my university library had an old edition and I had
         | run into one of the scarce bugs in it (which had been duly
         | fixed in the next edition).
         | 
         | So yes, I have used TAOCP on the job and, to prove it, a scar
         | of which I am rather proud.
        
           | lupire wrote:
           | If you can't find a bug that exists in your copy of TAOCP,
           | maybe you didn't learn what it was teaching you :-)
           | 
           | (Adapted from Feynman, who apologized for errors in his
           | Lectures, but refused to accept blame for anyone who cited
           | them in a dispute. The truth speaks for itself.)
        
         | bcwarner wrote:
         | The most use I've gotten out of it was when I had it on my
         | bookshelf in my Zoom background while TAing a class I think.
         | One of the head TAs recognized it and asked if I had actually
         | read it, and I told him I managed to read through volume 1 once
         | and not solve many of the problems, which took about 3 months
         | reading ~10 pgs/day. He was still impressed, and I think it
         | helped me get the head TA role after he graduated, as he
         | nominated me for it.
         | 
         | In terms of actual programming use, not much, but I still
         | haven't read the other volumes yet.
        
           | lupire wrote:
           | Shouldn't TA jobs be handed out based on you knowledge and
           | teaching and management ability, not fashion prejudice?
        
         | nottorp wrote:
         | > found them useful ON TGE JOB?
         | 
         | Algorithm training is useful on most jobs for preventing you
         | from going accidentally quadratic.
        
         | wollsmoth wrote:
         | I bought volume 1, figuring if I actually worked up the
         | gumption to finish it I'd continue from there. It looks very
         | nice on my bookshelf.
        
         | commandlinefan wrote:
         | > actually read these books AND found them useful ON THE JOB
         | 
         | I did read all three - it took me about three years to get
         | through all three and (at least try to) work each exercise.
         | Useful on the job? No, not really, but I can't think of a non-
         | fiction book(s) I've enjoyed reading much more than these. All
         | of the code examples are in assembler, and not just any
         | assembler, his own imaginary assembler (but you can download a
         | compiler and an emulator for it). I'd be hard-pressed to come
         | up with anything that he covers here that's not already part of
         | the standard library of _any_ programming language you could
         | possibly consider using - but it 's still great reading, and
         | illuminating in indirect ways.
        
         | lifefeed wrote:
         | Vol 1 is just an intro to math and his language, you don't
         | really need it, but it's kinda fun.
         | 
         | I read some of Vol 2, Seminumerical Algorithms, to hone my
         | instincts on how random numbers work in practice. I have
         | referred to it on occasion when people say things like, "if we
         | seed the random number generator, take the random number, then
         | feed that into the seed, the result would be more random."
         | 
         | I read most of Vol 3, Sorting and Searching, when applying for
         | jobs. It was more interesting than leetcode grinding. I don't
         | know if it was more useful, but it was better for my sanity.
        
           | disgruntledphd2 wrote:
           | I dunno, I found that chapter 2 was incredibly useful, as he
           | covers all the fundamental data structures very very well.
           | Mind you, I actually learned his assembly (MMIX) so maybe it
           | was more useful for me.
        
         | dragontamer wrote:
         | I'm not sure if TAoCP is "workplace on the job" material.
         | 
         | TAoCP is aiming at damn near "perfection" of programming.
         | Donald Knuth is analyzing the exact assembly language of all of
         | his decision-making with these algorithms. The assembly
         | language is represented as a random variable, and an _exact_
         | count of those assembly language statements (in loops and other
         | complex jumps) is analyzed.
         | 
         | Everything from the highest-level algorithm design /
         | mathematical concepts is discussed... down to the lowest-level
         | assembly level details / implementation of the code. And
         | everything in between.
         | 
         | -----------
         | 
         | As such, when Knuth / TAoCP covers a subject, it feels
         | comprehensive, in a way that no other writer has ever
         | accomplished.
         | 
         | So how does this work out in practice? Well, there's plenty of
         | tutorials on hash tables out there. But only Knuth's writing on
         | Hash tables / linear probing has ever hit the entire subject
         | for me.
         | 
         | Other books will go over linear probing vs quadratic probing vs
         | double-hashing. Meanwhile, Knuth carefully derives the formulas
         | of each, and how it changes at the assembly level
         | implementation.
         | 
         | -----
         | 
         | Is that useful for workplace environment? Probably not. In
         | work, you only need to know "Linear Probing Hash Tables work
         | like this, do it", and maybe not the analysis of it.
         | 
         | But if you're doing more fundamental programming, such as "GPU
         | Implementation of Hash Table", something that very few other
         | people have done... the Knuth-level analysis is the only thing
         | that hits "rock bottom" and gives me all the insight "behind"
         | the data-structure and its design.
         | 
         | I'd say Knuth's stuff is for people who invent new fundamental
         | data-structures or other implementation details like that. Its
         | not for typical workplace programming.
         | 
         | --------
         | 
         | For anyone who wants to know Knuth's writing style, I think his
         | writing on Alpha-beta pruning (from the 1970s) is an excellent
         | introduction to Knuth's writing style.
         | 
         | "An Analysis of Alpha-Beta Pruning" by Knuth / Moore, 1975.
         | 
         | Alpha-beta pruning always was kinda mystical to me. But Knuth
         | recognizes the intermediate steps needed to understand the
         | subject fully. The brilliance of discussing F1 (branch-and-
         | bound) before discussing F2 (alpha-beta pruning) cannot be
         | understated.
         | 
         | Knuth recognized that branch-and-bound is what most people
         | thought of by Alpha-beta pruning. But then comes up with
         | specific examples where F2 (true alpha-beta pruning) makes a
         | difference over F1. And then uses math to demonstrate how often
         | these cases come up.
         | 
         | Does it help in implementing AB pruning? I dunno. But it helps
         | a lot if you wanna change AB pruning / change the fundamental
         | search and understand why things are done that way. You only
         | need to study "F2" if you're copy/paste programming. But the
         | study and analysis into "F1" (branch and bound) holds deeper
         | understandings to the entire concept of search trees.
         | 
         | Even if you never, ever, ever will program F1.
        
         | elcapitan wrote:
         | I don't own any of them, but sometimes get them from the
         | library for interview prep. Totally over the top for that, but
         | sometimes inbetween googling and overcomplicated other books
         | it's a nice relief to read through these lines, into which very
         | obviously a lot of thought has gone. The opposite of all the
         | fast-lived crap we have to deal with on a daily basis, and
         | therefore also useful for the job. Motivating, I would say.
        
           | lupire wrote:
           | Fun is fun, but if you want help with Leetcode, something
           | like CLR(S) is more helpful.
        
         | linschn wrote:
         | A colleague of mine had invented a technique for factoring
         | composite numbers, that he thought would be quite fast.
         | 
         | I thought a little about it and saw that it would degenerate
         | into sat solving.
         | 
         | I checked taocp and indeed my colleague's idea was in there.
         | Also a faster algorithm was presented in the relevant section.
         | I lended the book to him and we saved around a month of work.
        
           | bombcar wrote:
           | This is exactly what TAOCP can be best at - if you know
           | enough about the problem domain to be dangerous, or even to
           | build a solution, you will know enough to read the relevant
           | portion of TAOCP, where it is very likely you will find
           | value.
        
           | lupire wrote:
           | There is quite a lot of money waiting for you if you ever
           | figure out how to factor composites quickly. (Any old bum can
           | factor primes quickly.)
        
             | linschn wrote:
             | We had a very specific use case, where the input was a
             | known composite, and some properties of the factors were
             | known.
             | 
             | Also, while no fast algorithms are known (and may never be
             | depending on if p=np) some are faster than others depending
             | on the properties of your inputs, and choosing the right
             | one can mean saving a lot of time and effort.
        
         | hardwaregeek wrote:
         | IMO Volume 1 isn't that useful because it's mostly setting up
         | the mathematical and architectural foundations. Knowing how to
         | evaluate limits and recurrence relations isn't particularly
         | valuable knowledge for the average programmer.
         | 
         | I enjoyed the dancing links stuff from a recent fascicle. I
         | used it to build a sudoku solver in C. So it's moderately
         | useful.
        
         | daoist_shaman wrote:
         | It's something nice to put on the shelf and fantasize about
         | enjoying, one day, when there's time.
        
         | dyingkneepad wrote:
         | I read selected parts of it while in the University, studying
         | Computer Science. I think that is the more appropriate time for
         | you to read such a book, since it gives you the basics.
         | 
         | I read the section on Hash Tables while at work because one of
         | our hash table implementations was exactly what he proposed in
         | his book and there was no explanation on why some things were
         | done, especially the choice of the hashing functions. I first
         | tried looking for the information in other books (like Cormen
         | et al.) but everybody just simply references the book from
         | Knuth without explaining things either. So I bought it just for
         | that...
         | 
         | I really really wanted to have time to read the rest of it. But
         | also my comic book collection and a whole lot of other books I
         | bought in the last 30 years. Maybe one day.
        
           | lupire wrote:
           | TAOCP is far far more than the basics.
        
         | treffer wrote:
         | TAOCP is the encyclopedia of algorithms. It is usually not
         | something you read front to back.
         | 
         | I have so far found 1-2 references that I could otherwise not
         | decode, plus wanted to know about n-way sorting.
         | 
         | And that's how I would recommend to use it. I have it on my
         | shelf to pull it out if I have to. Which is rare but it does
         | happen. And as such it proved value to me, on the job, as I
         | know how to get into these things as needed. But it has a
         | similar insane price to usefulness ratio as an encyclopedia.
         | 
         | What I've done so far? Everything from Sysadmin to DevOps to
         | Engineer (data heavy) to SRE to Data Engineer.
         | 
         | If you want to learn DSA then you should probably start with
         | something that goes less deep, is less complete but covers
         | useful algorithms from many areas.
        
         | deltasepsilon wrote:
         | It just means you're not doing anything interesting on your
         | job.
         | 
         | If you have constraints, i.e. not enough compute, not enough
         | memory, not enough storage, then you'll need a solution and,
         | odds are, somebody has had the same problem before and it's
         | been written up already in Knuth's TAOCP. Of course, the
         | problem won't be exactly in the form it's been written up, but
         | you have to have enough experience and knowledge to know the
         | abstract form of your problem in order to figure out what parts
         | of TAOCP would be useful to you.
         | 
         | Want a concrete example? Well, I'm in the generation that go to
         | assume that storage was basically constant access regardless of
         | whether you wanted to access the 1st byte, or the Nth one. New,
         | high-performance memory like NAND flash, is weird because it's
         | fundamentally unreliable. In order to make NAND reliable you
         | have to do stuff, and some of the stuff you can do, makes NAND
         | look like tape, and accessing tape is best done sequentially.
         | Guess what TAOCP has? All these great ideas about maximizing
         | random access to sequential media.
        
           | wing-_-nuts wrote:
           | >It just means you're not doing anything interesting on your
           | job.
           | 
           | That man had a family...
        
             | bombcar wrote:
             | The vast, vast majority of us may be doing _difficult_
             | work, maybe even _necessary_ work, but much of it is not
             | really that _interesting_.
             | 
             | It's good to remind myself that I'm basically a plumber for
             | the internet tubes.
        
           | dc-programmer wrote:
           | Serious question - why wouldn't you search for the algorithm
           | you need (or the problem statement) on Google scholar these
           | days? I have the books but if I ever found myself reaching
           | for them at work, I would consult most recent literature
        
             | lupire wrote:
             | The book is a nice way to give you a hint about what exists
             | and what stuff is called. From there you can search for
             | more.
             | 
             | Of course other resources exist, many of which cite TAOCP
             | or are derived from it
        
         | martincmartin wrote:
         | I once used them at work. I had a monitor that was too low, so
         | putting a volume or two of Knuth under it raised it to the
         | right height.
         | 
         | That's the only time I've ever used them though.
        
           | giantg2 wrote:
           | Quite expensive for that use.
        
             | jahewson wrote:
             | And yet significantly cheaper than Apple's Pro Stand.
        
               | jonnycomputer wrote:
               | funniest comment of the day.
        
               | leoc wrote:
               | And more prestigious to boot.
        
               | randcraw wrote:
               | My laptop is raised to the height of my other monitors by
               | Feynman's boxed set of Lectures on Physics, Aho &
               | Ullman's Foundations of Computer Science, and a Scott
               | Adams compendium.
               | 
               | This way my computing is based on a strong foundation...
        
               | giantg2 wrote:
               | I mean like how about using a cheaper book. Cookbooks are
               | almost literally a dime a dozen at yard sales. Too bad
               | phone books aren't what they used to be.
        
               | toast0 wrote:
               | Printer paper is a good choice as well. Reams are quite
               | sturdy and generally available in offices. You can
               | titrate the height in very small steps if needed. And the
               | stand is easy to reuse when it's no longer needed. Not as
               | low cost as used cookbooks though.
        
         | kragen wrote:
         | TAOCP is not job training now, if it ever was; that is trying
         | to get the cart to pull the horse.
         | 
         | The point of a job, unless you're lucky enough to get a job
         | where you can change the world, is to pay your living expenses
         | so that you have the leisure to do things like read TAOCP and
         | write Sudoku solvers. If that's not your idea of an enjoyable
         | vacation, don't read it; you'll regret it.
        
           | openfuture wrote:
           | The world changes through the collective effort of the people
           | who inhabit it. Not because some demigod wrote a script.
        
             | kragen wrote:
             | Mostly the world changes due to unpredictable emergent
             | phenomena, but occasionally you do get intentional changes
             | as well. But intention is individual, not collective;
             | there's no such thing as collective intention. At best you
             | have many people's intentions in agreement. Rarely does
             | that arise in a workplace.
        
             | bo1024 wrote:
             | The one can be a special case of the other...
        
           | dyingkneepad wrote:
           | Writing a decent Sudoku solver takes just a few hours... I
           | did this last year in order to refresh my memory on how Ruby
           | worked. Reading TAOCP would take a few more hours than that.
        
             | lupire wrote:
             | Luckily, you are more than a few hours from death.
        
         | klik99 wrote:
         | Part 1 is the most "useless" - it's basically required reading
         | to be able to read the rest of the book. There are a few
         | sections in data structures that I read to actually apply (I
         | can't remember the exact parts, but I remember pouring over the
         | book), but mostly it's enjoyable if you like programming for
         | programmings sake. If you think of programming as a practical
         | means for achieving some end (job or creative pursuit) then
         | these books aren't for you. There is absolutely practical stuff
         | in here, but it's all shown from first principles.
         | 
         | At any rate, don't judge the book on the first part - the first
         | part is important to get the rest of the book, and it's as well
         | written as the rest, but it doesn't reflect how much fun
         | (again, fun for those who are into programming in itself) the
         | rest of the book is.
        
           | slavapestov wrote:
           | Part 1 has some cool material. The mathematical
           | preliminaries, polynomial arithmetic to motivate linked
           | lists, and symbolic differentiation to motivate trees. The
           | MIX simulator written in MIX too!
        
           | lupire wrote:
           | A great book is to be pored over with a pour-over.
        
         | thomasahle wrote:
         | As an algorithms researcher, I have often been reading Knuth on
         | the job.
         | 
         | Most of the time, perspiring with worry that a 1960s article
         | might have scooped me.
        
         | kramarao wrote:
         | I used them to implement a random number generator in an
         | embedded system to generate morse code, for training ham radio
         | operators. I also used him KMP algorithm for writing pattern
         | matchers.
         | 
         | I suspect that most of these algorithms have been implemented
         | and available as libraries for people to use. The challenge of
         | programming has moved from designing such isolated algorithms
         | to modeling the problems, modularizing the code, creating an
         | evolutionary path for a system, and balancing the wants of
         | tomorrow with the needs of today.
         | 
         | Still, if you are working at the core problems of organizing,
         | searching, sorting, managing data, you might might the books
         | useful.
        
           | lupire wrote:
           | This is also why MIT switched its intro to CS class from
           | Scheme to Python ~15 years ago.
        
         | [deleted]
        
         | lupire wrote:
         | Do you normally expect to read encyclopedias for your job?
        
         | jseutter wrote:
         | I used them to implement an arbitrary precision math library
         | for an embedded processor that needed to do some precise
         | calculation in an autonomous environment. The embedded
         | processor had no floating point capabilities.
         | 
         | The book showed me the method of how to do it efficiently in a
         | manner that could be adapted to the 16 bit architecture I was
         | working with. It also showed me how to detect and handle
         | overflow situations, as well as when they would happen. It kept
         | me from creating a buggy, error-prone pile of crap code that
         | I'm certain I would have created at the time.
         | 
         | At the same time, it took me a couple of days of study to
         | understand the two or three pages I was interested in. The
         | material was the most condensed material I have consumed in
         | computer science. Like you say, you have to learn a new machine
         | architecture and assembly language to understand the examples.
         | Things you learn from those books come at a high cost in terms
         | of time and effort.
         | 
         | It reminds me of studying the bible, where cross checking,
         | reading different translations, studying hebrew and greek, and
         | the culture of the day are all necessary if you want to get the
         | best understanding you can. The TAOCP books are scholarly
         | articles and almost a kind of shorthand notation of computer
         | science concepts.
        
           | kragen wrote:
           | It may not be a coincidence that one of the author's other
           | books is on Biblical studies: https://www-cs-
           | faculty.stanford.edu/~knuth/316.html
           | 
           | I didn't realize it had been blurbed by a professor emeritus
           | at a seminary (as well as Martin Gardner).
        
             | Tomte wrote:
             | My take on it: https://www.2uo.de/Books/316-bible-texts-
             | illuminated/
        
               | kragen wrote:
               | Interesting! A small correction: "innumerate" means
               | "incapable of doing arithmetic"; perhaps you meant
               | "innumerable", which means "incapable of being counted".
               | Also you have "wuthor" for "author", "bible" for "Bible",
               | "donAt" for "don't", "WHat" for "What", and
               | "theologician" for "theologian".
        
               | GuB-42 wrote:
               | That's a $15.36 comment
        
               | birdyrooster wrote:
               | I lolled at theologician
        
               | bombcar wrote:
               | Theologician sounds like a perfectly cromulent word, we
               | should establish a doctorate in it immediately.
        
               | Tomte wrote:
               | Thank you!
        
               | irrational wrote:
               | "redaing" for "reading"
        
           | radicalbyte wrote:
           | I've spent a lot of time doing the latter and had trouble
           | understanding the former the one time I needed it (during a
           | high pressure project where I simply didn't have time or the
           | quiet time to spend two days digesting it).
           | 
           | Glad to know that the problem isn't totally me :)
        
         | rented_mule wrote:
         | TAOCP was invaluable for a couple of jobs I had.
         | 
         | One job involved indexing arbitrarily large books (gigabyte+
         | was not uncommon) on an embedded CPU with less than 1MB of RAM
         | available to the indexer (this is 15+ years ago, before smart
         | phones). It also involved searching hundreds of those books in
         | a few seconds with ~8MB of RAM available. Indexing was taking
         | place on a single core CPU while the user was using the device,
         | so the indexer had to be able to stop its work within a few
         | milliseconds of any user action and resume later without losing
         | progress. On the surface, Knuth's concepts felt old fashioned
         | (abstract assembly language and talk of multiple tape drives
         | for intermediate storage). But that mapped very well onto this
         | indexing problem. Books and indexes resided on an SD card and
         | individual files on the SD card could act very much like
         | Knuth's individual tape drives. Doing append only operations on
         | those files (as you would want to do on a tape drive) proved
         | fast and reliable. My 1MB of RAM would have been an
         | embarrassment of riches when the original volumes of TAOCP were
         | released. I don't remember if any of the algorithms that
         | shipped as part of that device were straight out of TAOCP, but
         | the thinking involved was _heavily_ influenced by those books.
         | Whenever I was stuck, it was back to Knuth.
         | 
         | My next job was focused on distributed systems. We were
         | rebuilding an ads system because the older one couldn't handle
         | the scale needed. That involved lots of MapReduce and lots of
         | stream processing (before there were good open source stream
         | processing packages to build on top of, this started in 2010).
         | Those same tape drive oriented algorithms came right to the
         | surface again. When processing TB or PB of data, you want
         | single pass algorithms wherever you can come up with them -
         | merely linear isn't good enough. Same as tape drives - there's
         | a huge benefit if you can avoid having to rewind. And so many
         | stream processing primitives (windowed joins, groupings, etc.)
         | are _exactly_ what people were doing with tape drives 50 years
         | ago. Now we were using many GBs of RAM spread across many
         | machines, but relative to the amount of data being processed,
         | it was still miniscule.
         | 
         | This all required spotting the similarities between the world
         | Knuth drew his examples from and the constraints I was working
         | under. But once I did, his concepts were quite useful. And the
         | framework for thinking about things was more valuable to me
         | than any specific algorithm or data structure. It was much more
         | useful to me as a narrative to read rather than a reference to
         | pull something out of.
        
         | todd8 wrote:
         | I read these the first time so far back that the extensive
         | section (with the fold out pages) covering sorting on external
         | tape drives was of interest to me. Over the intervening years
         | I've gone back to these books many times to check on my
         | understanding of subjects. (I've also bought and used all of
         | his other books too: TeX, Concrete Mathematics, and other
         | collected works.)
         | 
         | I worked as an OS Architect at IBM and then Chief Scientist at
         | a very successful startup. Subjects like analysis of
         | algorithms, memory management, optimizing disk access, search
         | tries, random number generation, and many more found in TAOCP
         | have all been useful in my professional life. I've had to give
         | many technical presentations and to present my designs to
         | committees of experts and CS professors. Knuth wasn't the only
         | source of my preparation for this kind of work, but he was a
         | very important source.
         | 
         | Are there better books on algorithms? Maybe. I also like the
         | popular _Introduction to Algorithms_ [1], Sedgwick 's
         | _Algorithms_ [2], and Skeina 's _Algorithm Design Manual_ [3].
         | All of these are good and all of them sit on the shelf right
         | next to Knuth 's books. Depending on the subject, any one of
         | these might have the best treatment. BTW, Sedgwick was a Ph.D.
         | student of Knuth.
         | 
         | To keep up with the literature I also recommend a membership in
         | the ACM with access to their digital library.
         | 
         | [1] Thomas H. Cormen , Charles E. Leiserson, et al. (2022),
         | Introduction to algorithms, MIT Press.
         | 
         | [2] Robert Sedgewick and Kevin Wayne, (2011), Algorithms,
         | Addison-Wesley.
         | 
         | [3] Steven S. Skiena, (1997), The algorithm design manual,
         | Springer.
        
         | Tomis02 wrote:
         | Useful on the job? Absolutely. They give me hope that when my
         | life is over I'll have done something more significant than
         | pushing bits between API calls.
         | 
         | Disclaimer: I'm nowhere close to finishing any of the books.
        
         | secondcoming wrote:
         | I bought them on a whim and they just lay around for years. I
         | gave them away to someone who thought they were interesting.
         | The assembly language he invented added very little to his
         | work.
        
         | bugfix-66 wrote:
         | I've been randomly skipping around inside these books for a
         | long, long time. They're full of little gems that you won't
         | find elsewhere.
         | 
         | For example, in Volume 4A there's a simple technique for
         | comparing two pointers in bit-reversed form. This technique was
         | patented by Hewlett-Packard as a method of randomizing search
         | trees (treaps):
         | 
         | https://bugfix-66.com/fdb8bb4fa84cf810aa25ff40c88a13c1874410...
         | 
         | From Volume 3, here is by far the fastest method of sorting
         | integers (Singleton's method), an algorithm I have used
         | professionally several times (e.g., for beam search in a speech
         | decoder):
         | 
         | https://bugfix-66.com/834f0677c85b23c0bf1047d3654ab7c27ff054...
         | 
         | Knuth's books are just packed with gems like that.
         | 
         | The meticulous high quality of the books is also remarkable.
         | However, if you look very carefully you can find rare mistakes.
         | I received payment from Knuth and have an account at his bank:
         | 
         | https://www-cs-faculty.stanford.edu/~knuth/boss.html
         | 
         | Getting your name on the above list was once a Hacker rite of
         | passage.
        
           | Tomte wrote:
           | > However, if you look very carefully you can find mistakes.
           | 
           | Opened the book, thought "no, it can't be". Agonized for days
           | and weeks if I'm making a fool of myself.
           | 
           | Sent the bug report.
           | 
           | First word in first sentence in first paragraph in first
           | chapter was wrong. Got my cheque. ;-)
        
             | mkehrt wrote:
             | What was it?!
        
               | Tomte wrote:
               | "Infinitely many alphabets can be generated by the
               | programs in this book".
               | 
               | But the number of parameters is finite, and all
               | parameters have a finite number of possible values.
               | 
               | His errata changed the wording thus:
               | 
               | Zillions of alphabets can be generated by the programs in
               | this book. (https://ftp.rrze.uni-
               | erlangen.de/ctan/systems/knuth/dist/err...)
        
               | dalke wrote:
               | In the late 1990s I implemented an algorithm from one of
               | Knuth's books. (An algorithm to generate prime numbers.)
               | I found a mistake!
               | 
               | I was so excited.
               | 
               | I then checked the errata. It was known.
               | 
               | It took another 20 years before I found an actual
               | mistake, regarding the early history of superimposed
               | codes. A very specialized topic where I have one of the
               | few copies of the patent challenge distinguishing between
               | _random_ superimposed codes and _arbitrarily selected_
               | superimposed codes.
               | 
               | I have a check.
        
               | desio wrote:
               | Incredible.
        
       | Brystephor wrote:
       | So who is the target audience for this type of work? I mean if I
       | want to learn more about something such as combinatorial
       | algorithms, this doesn't seem like it'd be the right place to
       | begin. I want to learn more about the things that I don't know,
       | but at the same time, learning absolutely everything about a
       | single category is typically more depth than I require.
        
       | jjice wrote:
       | There's something beautiful about his work on the series. He's
       | been working on it for years, built TeX (not sure if that was for
       | this series or other books of his), and has such ambitious plans.
       | He's a serious legend in the field of computer science and we're
       | lucky to have someone like him to have provided our industry with
       | so much incredible knowledge. I'm interested to see how the
       | series progresses for the next 30 years.
       | 
       | He also seems like the kind of guy you'd want to have a cup of
       | coffee or tea with. Always seemed like a fun and sweet guy in the
       | interviews I've seen with him.
        
         | falcrist wrote:
         | Decades.
         | 
         | It looks like he started working on it in 1962.
         | 
         | Just imagine being that intelligent and pouring 60 years of
         | your life into something like this.
        
           | rusk wrote:
           | Sounds blissful
        
         | melling wrote:
         | The origins of TeX from Knuth himself:
         | 
         | https://youtu.be/9IM_dqjBkIw
         | 
         | His books were the reason he started TeX.
        
         | carl_dr wrote:
         | > I'm interested to see how the series progresses for the next
         | 30 years.
         | 
         | Donald is 84. And each time I'm reminded of that I get sad,
         | it's very unlikely we'll get another 30 years of his work.
        
           | javajosh wrote:
           | He's already well over the avg life expectancy for American
           | men. But hey, good genes exist and it's possible he's got
           | another 20 lucid years.
        
             | melling wrote:
             | The average age is from birth. What's the expected age
             | having lived to be 84?
             | 
             | People can live well into their 90's. Hopefully he's got
             | another book in him. These people are still alive, for
             | example:
             | 
             | Jimmy Carter: 98
             | 
             | Henry Kissinger: 99
             | 
             | Warren Buffet: 92
             | 
             | Charlie Munger: 98
             | 
             | Mel Brooks: 96
             | 
             | Alan Greenspan: 96
             | 
             | Noam Chomsky: 94 in December
        
           | Tortoise wrote:
           | Unfortunately, for an American man at age 84 he would only be
           | expected to live (on average) another 6.44 years. See:
           | 
           | https://www.ssa.gov/oact/STATS/table4c6.html
        
           | [deleted]
        
       | uptownfunk wrote:
       | Can someone write a volume 0 or volume -1 or some guide so noobs
       | like me who want to enter this treasure chest can do so. I got
       | lost just trying to start this so it might be over my head. I
       | know Python, rusty on Java and cpp never touched assembly.
        
         | uptownfunk wrote:
         | And how to understand the programming language used?
        
           | Jtsummers wrote:
           | https://www-cs-faculty.stanford.edu/~knuth/mmixware.html -
           | _MMIXware_ by Knuth introduces the updated assembly.
           | 
           | https://www.mmix.cs.hm.edu/supplement/index.html - _The MMIX
           | Supplement_ by Ruckert
           | 
           | The first introduces the updated assembly language, the
           | second updates all the MIX programs from Volumes 1-3 to MMIX.
        
         | f1shy wrote:
         | That would be "the hobbit" ? :)
        
         | leoc wrote:
         | _Concrete Mathematics_ is basically an expanded version of the
         | mathematical content of Volume 1, apparently. Not that it's a
         | doddle either.
        
       | dboreham wrote:
       | Possibly the last physical book I will buy.
        
       | eddof13 wrote:
       | I don't want Knuth to Robert Jordan/George RR Martin himself so
       | I'm waiting for vol 5 to complete before purchasing the set
        
         | llaolleh wrote:
         | Imagine if we got an HBO adaptation of TAOCP.
        
           | sophacles wrote:
           | The show-runners would exercise some creative license, and
           | we'd end up with things like o(n) being worse than o(n!) in
           | the show, but not in the book. Even worse now that there's a
           | video version of the classic - it's deviations from the text
           | would start to be seen as "the better one" and the software
           | bloat problem would dramatically intensify worldwide as
           | everyone rearranged their algorithms.
        
           | jcl wrote:
           | No doubt it would be filled with gratuitous union-finding
           | that wasn't present in the original.
        
         | gs17 wrote:
         | There's 6 and 7 planned too, might be a bit of a wait. It's a
         | real shame he isn't likely to finish the series, I would really
         | be interested in that final volume (compilers).
        
           | jcranmer wrote:
           | The website notes that 6 and 7 are "only if the things I want
           | to say about those topics are still relevant and still
           | haven't been said." This does make me think that he isn't
           | particularly planning on working on these books at all,
           | especially given that the timeline goes "volumes 4 & 5,
           | revise volume 1-3, reader's digest 1-5, then maybe work on 6
           | & 7"
        
       | Decabytes wrote:
       | As someone who perpetually abandons projects, I just admire that
       | he has kept going with this for so long. It's a huge and daunting
       | commitment to make, and the fact that he is 84 and has completed
       | another book is impressive, even if he never finishes.
        
       | dragontamer wrote:
       | I was hoping that Fascicle 7 would come out, as that would be on
       | Constraint Programming, and I think that's very similar to SAT-
       | solvers (Fascicle 6) and the BDDs that he's already covered.
       | 
       | Then again: SAT-solvers are a big enough subject matter on their
       | own that backtracking search + SAT-solvers is more than enough to
       | fill a volume of its own. So choosing these two subjects as
       | volume 4B makes sense.
       | 
       | -----------
       | 
       | As a fan of constraint programming, I'd love to see Knuth's take
       | on the subject. I hope he doesn't skip over Fasicle 7.
        
         | boonsuan wrote:
         | have you read his current draft of fascicle 7a (7.2.2.3
         | Constraint Satisfaction)? it is currently 145 pages and is
         | available at https://cs.stanford.edu/~knuth/fasc7a.ps.gz
        
           | dragontamer wrote:
           | I wasn't aware of this! Thanks for the info. I'll give it a
           | lookthrough.
           | 
           | Its not exactly an easy subject, so I'll need some time to
           | digest the material. Especially if its written in Knuth's
           | famous "difficult, but terse" style.
        
       | g9yuayon wrote:
       | Nostalgia time! When I graduated years ago, Knuth's books were
       | still all the rage because the central themes in the CS
       | departments in universities were fundamentals: algorithms,
       | compiler theory, operating systems and what not. We referenced
       | TAOCP for implementing the priority queue using fibonacci heap
       | for our OS projects. We studied chapters on vol 2 for some of the
       | numerical algorithms, and etc. We read Parsing Techniques cover
       | to cover to understand how to write a parser. We still carefully
       | studied AI: A Modern Approach and the dragon/dinosaur/tiger book.
       | Every once in a while a discussion on Knuth's work went to the
       | first page of HN or Programming Reddit. Then, we got more and
       | more mature libraries, and we rarely needed to understand 10
       | different algorithms that solve the same class of problems.
       | Consequently, we got fewer discussion about Knuth's work too. Of
       | course, it's super fun to read his meticulous discussion of
       | combinatorial algorithms in Vol 4. It just that TAOCP does not
       | appear as essential to as many people as a decode ago.
        
       | azalemeth wrote:
       | I once had the pleasure of listening to Knuth speak at my
       | university's computer science department. I joined the very large
       | queue of other people, and expected the great man to totally
       | revolutionise my understanding of - well, I didn't know what, but
       | _something_. Computer programming to TeX, I don 't mind. I was
       | expecting enlightening solutions to famously difficult problems,
       | a great study of algorithms, that kind of thing.
       | 
       | Well, what happened was that he spoke for nearly two hours on
       | self-referential aptitude tests. The kind of "20 questions" game
       | where the 20th question is "The maximum score obtainable on this
       | test is (a) 18 (b) 19 (c) 20 (d) indeterminate (e) achievable
       | only by getting this question wrong" and all of the others are
       | inherently recursively linked. I had no idea these things
       | existed, even less of an idea why anyone would want to study
       | them, and came away later with both mind dripping down the side
       | of my skull and a greater appreciation of SAT solvers and
       | compiler design in functional programming languages. Highly
       | recommended.
       | 
       | (And if anyone wants to do the quiz, it's here: [1] https://www-
       | cs-faculty.stanford.edu/~knuth/paradox.pdf)
        
       | aamargulies wrote:
       | Many years ago I needed to understand hashing for an important
       | work project. I sat down and read Knuth's chapter on hashing. It
       | was very, very good and it helped to greatly accelerate my
       | project work.
       | 
       | However.
       | 
       | What I also learned is how impossibly large a topic even just
       | hashing is. A section of Knuth's encyclopedia isn't sufficient
       | space to cover it thoroughly (for some definition of thoroughly)
       | and further research showed how much progress had been made in
       | the subject since Knuth published his work.
       | 
       | This isn't a complaint about Knuth, again, I'm grateful for how
       | much his writing accelerated my understanding. But further
       | research underlined how impossible a task he's undertaken.
        
       | boonsuan wrote:
       | very amusingly, the entire 700+ page volume covers only Sections
       | 7.2.2.1 and 7.2.2.2 of _The Art_.
       | 
       |  _The lyf so short, the craft so long to lerne_
        
         | c1ccccc1 wrote:
         | Reminds me of this story:
         | https://slatestarcodex.com/2017/11/09/ars-longa-vita-brevis/
        
       | [deleted]
        
       | cromwellian wrote:
       | A few years ago I had the pleasure of meeting Knuth in his home,
       | my wife was doing some photography for him. He took me to his
       | room and showed me his setup, he was researching Soduku
       | algorithms at the time. His hands were blisteringly quick, moving
       | between EMacs panes, triggering evaluations and printing of
       | results, as fast as any 20 year old. In his 80s , he hasn't
       | seemed to suffer any mental decline.
       | 
       | I started talking to him about some of the latest AI research and
       | he mentioned the papers authors, he had already read them! Not
       | only is he still very productive at 84, but he has not ossified
       | into one particular subject but he continues to keep abreast of
       | other related fields.
       | 
       | He also played his huge pipe organ for us, he was gracious,
       | humble, down to earth, truly a treasure. I only wish he could
       | live another hundred years, selfishly so I could see Volumes 5,
       | 6, and 7 of Art of Computer Programming finished.
       | 
       | I should not with some sadness that COVID hit not long after and
       | that year we lost a number of other luminaries in the field like
       | Jon Conway.
        
         | pksebben wrote:
         | may we all age so gracefully. perhaps part of the secret is to
         | work like Don.
        
       | coreyp_1 wrote:
       | This is one of those book series that I really, _really_ want to
       | purchase as a beautiful, matching, leather-bound set. And, yes, I
       | would read it for pleasure, and I would treasure it.
        
         | voakbasda wrote:
         | I was thinking the same thing when I clicked on the comments. I
         | somewhat expect this will be the last volume in the series, so
         | one could now hope to buy a "complete" set. I would love to
         | revisit and explore all of the material using modern
         | programming languages.
        
           | jsmith45 wrote:
           | One might hope that he can at least complete 4C such that
           | volume 4 is complete. I am skeptical that volume 5 or later
           | will see the light of day, But I also cannot predict the
           | future.
        
             | lifthrasiir wrote:
             | This comment made me check the history of the official
             | TAOCP page [1] through the Wayback Machine. Volume 5 was
             | estimated to be ready in 2009 at the very first snapshot
             | (1997), in 2010 by 2003, in 2015 by 2007, in 2020 by 2010,
             | in 2025 by 2015 which is the latest estimate today. At the
             | first glance this looks like an eternal "10 years later",
             | but note that that estimate didn't change since 2015 and
             | the 2025 estimate is now only 3 years away. Does this mean
             | that Knuth does plan to publish anything related to Volume
             | 5 by that time?
             | 
             | [1] https://www-cs-faculty.stanford.edu/~knuth/taocp.html
        
         | klik99 wrote:
         | Same - it's just a joy dropping into some random section and
         | reading through, but my copies are a little abused by that
         | practice. I'd love to have a second set for aesthetics and
         | display.
        
         | helsinkiandrew wrote:
         | Each volume is taking longer and longer (4A and 4B and work on
         | 4C have taken over 20 years). Mr Knuth is 84 and if there are 3
         | more volumes...
        
           | irrational wrote:
           | Maybe Brandon Sanderson can write the last three books.
        
             | ok_dad wrote:
             | The joke, for anyone else here who isn't a book nerd (my
             | wife is), is that now whenever an old author dies with
             | unfinished work, or hasn't finished their work (that's you,
             | George!) people make a joke "Just let Brandon Sanderson
             | finish it!" because Mr. Sanderson is an absolute writing
             | beast, he's a "100x writer" if there ever was one and he is
             | working on (or finished?) a book series[0] by a now-dead
             | author and most people think he made it _better_.
             | 
             | [0]: https://en.wikipedia.org/wiki/The_Wheel_of_Time
        
             | krull10 wrote:
             | Well played
        
             | openfuture wrote:
        
             | tmtvl wrote:
             | Never heard of him, is he another great computer scientist?
             | 
             | I'd love it if someone like Chris Wellons or Per Bothner
             | could work on them, but filling Knuth's shoes may be a big
             | task for one man.
        
               | thfuran wrote:
               | No, he's a fantasy author who finished the last few
               | volumes of a popular epic fantasy series after its
               | original author died.
        
               | imaltont wrote:
               | Also convinced he writes in his sleep with the amount of
               | books he releases.
        
               | aaroninsf wrote:
               | https://www.theverge.com/c/23194235/ai-fiction-writing-
               | amazo...
        
               | ars wrote:
               | He got a little bored during COVID and accidentally wrote
               | 5 books: https://youtu.be/6a-k6eaT-jQ this led to what I
               | think is the most funded Kickstarter ever: https://www.ki
               | ckstarter.com/projects/dragonsteel/surprise-fo...
        
             | jrop wrote:
             | Journey before destination
        
         | noyesno wrote:
         | Bookbinding is a great hobby. Or you can commission someone to
         | create leather-bound covers for your book?
        
           | bombcar wrote:
           | Yes - you can find book rebinders who can take a paperback
           | book and make a bound book out of it.
        
         | WillAdams wrote:
         | R.A. MacAvoy has the titular character do this in her wonderful
         | novel _Tea with the Black Dragon_
        
       | amelius wrote:
       | Still hoping for a next edition of his "Searching and Sorting"
       | volume, to include modern search engines.
        
       | user3939382 wrote:
       | I can barely find time to read 3-4 pages of a novel before I pass
       | out before bed. I look at volumes like this, Churchill's The
       | Second World War, Summa Theologica, and wonder if I could ever
       | get through these things in my lifetime.
        
         | hguant wrote:
         | Churchill's Second World War books are an incredibly easy read
         | for how information dense they are, as is his "History Of the
         | English Speaking People."
        
           | [deleted]
        
         | bombcar wrote:
         | The Summa Theologica is actually relatively easy to read,
         | especially if you have some background in it and a good
         | translation.
         | 
         | Since it's divided into sections, you can poke it before bed
         | now and then. You don't even have to buy it: https://aquinas.cc
        
       | WhitneyLand wrote:
       | From the (apparently still hand-coded html) web page:
       | 
       | The fourth volume of The Art of Computer Programming deals with
       | Combinatorial Algorithms, the area of computer science where good
       | techniques have the most dramatic effects. I love it the most,
       | because one good idea can often make a program run a million
       | times faster. It's a huge, fascinating subject, and I published
       | Part 1 (Volume 4A, 883 pages, now in its twenty-first printing)
       | in 2011.
        
       | rietta wrote:
       | Very cool. I own the originals and the 4th but sadly I have to
       | admit that even though I am a reasonably accomplished developer
       | with a couple of CS degrees I have a hard time understanding this
       | work and have not yet really read it. I feel like I am publicly
       | admitting failure just posting this. I still have time to make
       | sure these are not just bookshelf decorations though.
        
         | moron4hire wrote:
         | Honestly, despite everyone's claims of how "beautiful" the
         | books are, I think they are rather terribly formatted.
         | 
         | For example, the first volume consists of 2 "chapters". Each
         | chapter spans about 250 pages on its own. So actually not a
         | chapter, but a section, or maybe even a book in its own right.
         | Then, each chapter is broken into sections and subsections that
         | flow one into the next. There's a fundamental lack of
         | whitespace and breathing room in a book that is supposedly
         | "beautifully formatted".
         | 
         | At the very beginning of the book, there is a flowchart for how
         | you're expected to read the book. It's not linear. It's not
         | even close to linear, even within a specific topic. So why not
         | just format the book in the suggested reading order?
         | 
         | I don't agree that Knuth is a great communicator. He's verbose
         | when he could be succinct. He's taciturn when he should
         | expound. He's prone to flowery language with humorous barbs in
         | his introductions (and they can be quite funny, if you are
         | clued in enough to what he's talking about already), but then
         | spews dense mathematical notation when he gets into details.
         | 
         | So yeah, there's a lot of interesting information in the book,
         | but it's a struggle to read it. Some people will say it's
         | supposed to be a struggle, it's meant to make you work. Why?
         | Programming is already hard on its own. Why make the act of
         | reading about programming hard, too? I think, for the amount of
         | effort being put into them, they could have been written more
         | clearly. It makes the books feel like they are designed to mark
         | an in-crowd of mathematicians who learned programming rather
         | than to teach people computer science.
        
           | lupire wrote:
           | You read a math book slowly, so you don't need whitespace for
           | help skimming. Extra whitespace would make the huge books
           | even huger.
           | 
           | Beautiful formatting here refers to the _text_ , not the
           | whitespace.
        
             | moron4hire wrote:
             | Except _everyone_ who talks about how to read the books
             | successfully--including the books themselves--talk about
             | jumping around in them in a way that requires _a lot of
             | skimming_.
             | 
             | I don't find the text in any other book I own to be
             | insufficient, or even noticeably that different from
             | Knuth's books (with the obvious exception of some fly-by-
             | night print-on-demand stuff purchased off Amazon in recent
             | years). It's an assertion in want of proof. TeX might be
             | the greatest example of Yak Shaving in human history: Knuth
             | spent at least 30 years between Volumes 3 and 4 to work on
             | TeX because of dissatisfaction with layout in V3.
             | 
             | This is what I'm talking about. Notice the use of colored
             | blocks and whitespace to break up the flow of the page, to
             | callout different asides and section headers.
             | 
             | https://twitter.com/Sean_McBeth/status/1577388169418383363
             | 
             | Adding whitespace doesn't have to make the book _longer_.
             | It could just make the book _wider_. Besides, paper is
             | cheap.
             | 
             | https://twitter.com/Sean_McBeth/status/1577388234589478914
        
               | andrepd wrote:
               | Subjectively, I like TAoCP's typography much better. But
               | hey, that's just me.
        
               | fragmede wrote:
               | Paper's having supply chain issues, same as everything
               | else. https://www.npr.org/2021/10/04/1043145212/supply-
               | chain-issue...
        
               | commandlinefan wrote:
               | > everyone who talks about how to read the books
               | successfully
               | 
               | I will be a counterexample: I read all three cover to
               | cover, and seriously attempted every single exercise
               | (although in some cases, "attempted" just meant "actually
               | understand what he's asking, which in itself sometimes
               | took me several days). I didn't skim or jump around at
               | all.
        
           | svat wrote:
           | Writing style is subjective and I find Knuth's delightful:
           | almost every paper of his that I've read has been fun. Even
           | in his technical papers he writes at the level an
           | undergraduate student with decent mathematical background (or
           | a strong high-schooler) could mostly understand, which suits
           | me just fine, especially compared to some other academics who
           | write only for their peers / graduate-level and higher. And
           | in any case, all the mathematical parts of TAOCP can be
           | safely skipped if one is not interested.
           | 
           | But regarding your complaint about formatting, note that the
           | book design of the TAOCP volumes is not Knuth's doing:
           | someone at Addison-Wesley came up with them in the mid-1960s,
           | and the first three volumes were published with Monotype
           | (hot-metal) typesetting. When Knuth wrote TeX in the late
           | 70s/early 80s, his goal was simply to retain the style of the
           | books. (The layout was fine; the publishers were trying to
           | move to phototypesetting and the _fonts_ were poor
           | https://tex.stackexchange.com/questions/367058, so he needed
           | digital fonts and wrote METAFONT to create them, and he
           | needed TeX just to be able to use those fonts.) Perhaps the
           | book _Concrete Mathematics_ will be a better example for you
           | to critique, as Knuth had more of a hand in its typesetting
           | (though there too a book designer was involved; the article
           | _Typesetting Concrete Mathematics_ has some details,
           | reprinted in the _Digital Typography_ volume and a poor scan
           | of its earlier publication here:
           | https://tug.org/tugboat/tb10-1/tb23knut.pdf).
           | 
           | About chapter length: the initial table of contents was one
           | book of 12 chapters; Knuth wildly underestimated the printed
           | length of what he had written (not many people know he
           | actually wrote the whole book, all 12 chapters, in the 1960s,
           | amounting to about 3500 pages -- since then you can say he's
           | been updating the chapters and publishing each section when
           | he thinks it's ready), so the plan changed to seven volumes
           | with the same chapters. And the chapter sections' lengths
           | have themselves grown with the growth of the subject; as you
           | can see, the current volume 4B is just a tiny fraction of the
           | projected Chapter 7: covers 7.2.2.1 and 7.2.2.2.
           | 
           | Also, about the flowchart for how to read the books: it's
           | partly a joke about flowcharts, but the suggested reading
           | order is very much linear:
           | https://i.stack.imgur.com/UCsOx.png -- in words, it's just
           | something like "read the chapters in order, skipping starred
           | sections on the first reading. Also, feel free to skip boring
           | sections, and skim math when it gets difficult" (he addresses
           | the mathematics in the preface on p. viii).
        
         | dirtsoc wrote:
         | Acceptance is the first step on the road to recovery.
        
         | krylon wrote:
         | I vaguely recall an anecdote being told here on HN where Donald
         | Knuth met Steve Jobs. Steve Jobs said something along the lines
         | of "I admire you very much, I have read all of your books!", to
         | which Donald Knuth replied something to the effect of "I don't
         | think so." (more politely, though, I presume).
         | 
         | Which is to say I don't think many people have actually worked
         | their way all through them. Neither have I, there's no shame in
         | that.
         | 
         | And, as you point out, it's not too late to give it a try.
        
           | WillAdams wrote:
           | The story is related at:
           | 
           | https://www.folklore.org/StoryView.py?project=Macintosh&stor.
           | ..
           | 
           | but probably didn't happen that way.
        
           | davidrupp wrote:
           | https://www.youtube.com/watch?v=DmbGs290qeM -- Dr. Knuth sets
           | the record straight at a talk being given by Randall Munroe
           | (of xkcd fame). Spoiler alert: "I only met him a couple of
           | times [...] and in each case I was impressed by him probably
           | more than he was impressed by me."
        
         | radicalbyte wrote:
         | You're not the only one. If we're honest most of us buy the
         | series as a mark of status / pride, not out of any plan to
         | actually read it. I mean yeah I do plan to. Probably once I've
         | retired. But that's a long way away :-)
        
           | leereeves wrote:
           | I use it more like a dictionary. I don't read it from start
           | to finish, but if I need an algorithm for something, I look
           | it up in Knuth.
        
             | jpgvm wrote:
             | This is the function my copy of TAOCP serves. I'm not
             | anywhere near knowledgeable enough to digest all of it, but
             | when I need something and I want to understand the ground
             | theory behind it then to Knuth I go.
        
         | Q6T46nT668w6i3m wrote:
         | If you're interested in reading them (and they are extremely
         | readable), you should first know something (not everything)
         | about programming and discrete mathematics. If you watched some
         | YouTube videos on logic, sets, graphs, etc. you'll be more than
         | equipped. Knuth has even written a book, Concrete Mathematics,
         | that covers these pre-requisites but it might be faster and
         | easier to watch a Khan Academy video!
        
           | lupire wrote:
           | That's not really what Concrete Mathematics is about. It's
           | not a prereq to TAOCP.
        
           | Jtsummers wrote:
           | Does Khan Academy cover the math topics of _Concrete
           | Mathematics_ yet? Looking at their list of math courses I don
           | 't see a single discrete math course in the bunch.
        
             | BeetleB wrote:
             | Concrete Mathematics has some fairly advanced stuff (e.g.
             | asymptotics) which I doubt Khan Academy covers.
        
               | Jtsummers wrote:
               | Right, which was what I was getting at. The person I
               | responded to had written:
               | 
               | > Knuth has even written a book, Concrete Mathematics,
               | that covers these pre-requisites but it might be faster
               | and easier to watch a Khan Academy video!
               | 
               | Which suggests KA as an alternative to CM. Which doesn't
               | follow if it doesn't cover the same material.
        
             | Q6T46nT668w6i3m wrote:
             | I have no idea! I just used it as an example of
             | "educational video on YouTube!" :-)
        
           | moron4hire wrote:
           | Uuuuuh. I know _a lot_ about programming and discrete
           | mathematics (I used to tutor both, and I 've used a lot of
           | discrete math throughout my 20 year career as a software
           | developer) and I still struggle with the books. Maybe your
           | definition of "something" varies from mine.
        
         | dragontamer wrote:
         | The 1st Chapter is one of the best mathematical discussions
         | I've ever read, bar none. But hardcore math isn't needed for
         | most of us programmers. Knuth knows this.
         | 
         | I suggest skipping around on an "as needed" basis.
         | 
         | Try Volume 1, Section 2.2 "Linear Lists", as a starting point.
         | I promise you its an easier read than you expect. Despite being
         | relatively easy material, you will probably learn something
         | about arrays with just maybe ~3 or ~4 pages worth of reading
         | material.
         | 
         | Start at the start of Section 2.2. Maybe work your way
         | backwards to Section 2.1 as you realize its not as hard as you
         | think (so you start at the "proper" starting point). And then
         | go on from there.
         | 
         | Its really basic stuff. But hitting "rock bottom" on the
         | subject of arrays, stacks, queues, and such is fascinating.
        
           | why-el wrote:
           | He wrote his "Concrete Mathematics" book specifically to
           | address your first point. I admit its the only book of his I
           | read cover to cover and it wrecked me.
        
         | pasquinelli wrote:
         | the impression i have--i'm not sure where i got it from, could
         | even be from the first book itself--is _the art of computer
         | programming_ 's mission is to be a useful resource if, a
         | thousand years from now, computer science finds itself starting
         | from scratch. contemporaries can learn from it, but by even
         | just buying copies you increase the odds that the books can be
         | recovered and used in that hypothetical situation.
        
         | jupp0r wrote:
         | I always viewed them as more of a reference where I could read
         | up how to find and implement somewhat specialized algorithms. I
         | really lack the discipline/interest to read those from front to
         | back, so you are not alone. Incredible books though!
        
         | jjice wrote:
         | My dad gave me them as a (fantastic) gift. They're tough. I
         | haven't sat down and really gave them the old college try yet,
         | but I want to at some point. I do feel a bit like a phony
         | having them on my shelf without reading them yet though. They
         | are brutal though.
        
         | synergy20 wrote:
         | I too have the whole collection but never read it, they're so
         | thick and life is so busy...
        
         | pjmorris wrote:
         | Same here. I was toward the end of an associate's degree in
         | programming and finding Knuth Vol 1 in the library stacks felt
         | like discovering there was a whole continent of intellectual
         | effort where I'd only seen a tiny neighborhood. It helped
         | motivate me to go get a BSCS. But 40 years later, I've still
         | only dipped into it from time to time (I did buy my own copy
         | :))
        
         | ChicagoBoy11 wrote:
         | I've felt exactly like this about NKS. I have tried many times
         | to understand it, but I come up empty. Half the time I think
         | "well, maybe IT IS just nonsense?" and half the time I think
         | I'm probably just not mentally sharp enough to get it. But I
         | try every couple years or so, but the activity has yielded
         | little more than being a paperweight in my house and a quiet
         | exercise in looking at pretty pictures for me.
        
           | lupire wrote:
           | NKS isn't a new kind of science, but it's not nonsense. It's
           | a poorly cited thorough monograph on cellular automata.
        
           | kzrdude wrote:
           | I wonder what the second-hand value of that brick is. It's
           | the only hope I have for that one.
        
       | svat wrote:
       | Note that, to get an idea of the contents, you can see the
       | previously published fascicles, and earlier drafts online (pre-
       | fascicles):
       | 
       | * Mathematical Preliminaries Redux:
       | https://cs.stanford.edu/~knuth/fasc5a.ps.gz
       | 
       | * 7.2.2 Introduction to Backtracking:
       | https://cs.stanford.edu/~knuth/fasc5b.ps.gz
       | 
       | * 7.2.2.1 Dancing Links:
       | https://cs.stanford.edu/~knuth/fasc5c.ps.gz
       | 
       | * 7.2.2.2 Satisfiability:
       | https://cs.stanford.edu/~knuth/fasc6a.ps.gz
       | 
       | The first three were published together as "Volume 4, Fascicle 5"
       | in 2019, and the last one--Satisfiability--was published as
       | "Volume 4, Fascicle 6" in 2015. Of course the actual publication
       | as Volume 4B has hundreds of fixes and additions beyond what was
       | published earlier, and a lovely preface that you can read here:
       | https://www.informit.com/articles/article.aspx?p=3143614
       | 
       | > _You might think that a 700-page book has probably been padded
       | with peripheral material. But I constantly had to "cut, cut, cut"
       | while writing it, because [...] new and potentially interesting-
       | yet-unexplored topics kept popping up, more than enough to fill a
       | lifetime; yet I knew that I must move on. [...] I wrote nearly a
       | thousand computer programs while preparing this material, because
       | I find that I don't understand things unless I try to program
       | them._
        
         | xwolfi wrote:
         | Imagine being this guy at work, writing "thousands of computer
         | programs" all unproductive, while being paid for the priviledge
         | !
         | 
         | It's probably as interesting as it is for a Christian to read
         | the Bible or a Marxist to read The Capital: many dont feel the
         | need.
        
           | senko wrote:
           | How's that unproductive?
           | 
           | He writes these programs to research things, and then
           | publishes an authoritative book on the subject.
        
           | smitty1e wrote:
           | For the Christian, reading the Bible is internally
           | transformative.
        
           | reidjs wrote:
           | He is writing programs to help him publish a volume for one
           | of the most important series on computer programming. we have
           | different definitions of the word productive.
        
           | gameman144 wrote:
           | "Imagine being Noah Webster at work, writing 'thousands of
           | definitions' of words that already exist, and being paid for
           | the privilege!"
           | 
           | There is value in providing reference texts. There is value
           | in providing sample usages of programs to the unfamiliar.
           | There is value in demonstrating alternative means to reach
           | the same goal.
           | 
           | Donald Knuth's work of cataloguing and examining the
           | different branches and leaves of computer science would be
           | valuable _even if_ he weren 't also a world-class computer
           | scientist in his own right (which he just happens to be).
        
       | aasasd wrote:
       | Since the pipe organ will be inevitably mentioned in the
       | comments, I'm gonna plug the Youtube channel 'Look Mum No
       | Computer', whose gear-crazy author in now apparently in the final
       | stages of installing and patching up an organ in his seemingly
       | interminable basement, after moving it from someone else's house:
       | https://youtube.com/shorts/XGL3rskcQD0
       | 
       | Said organ was built by its late owner not just _in_ the house,
       | but pretty much into the walls of the house, and as a result the
       | thing had to be ripped out of there rather grotesquely, and then
       | rewired again at the new place:
       | https://youtube.com/watch?v=8PwwRR8deHk
        
       | magicloop wrote:
       | Ironically once I studied a part of TAOCP dealing with parallel
       | bit computation as I heard it would help with a Chip vendor I was
       | applying to for a job. The end-of-day boss fight interview
       | arrived with a puzzle I directly solved with my TAOCP knowledge.
       | The result was they failed me on the interview. They said the job
       | wouldn't stretch me. As the years have passed I wonder if what I
       | should have said was "there's no way I could solve this but I
       | know about it from TAOCP already so this is what you do ..."
        
         | goldenkey wrote:
         | Overqualified or underqualified. Sigh...
        
       ___________________________________________________________________
       (page generated 2022-10-04 23:00 UTC)