Live data from Hacker News

Ask HN: Is Knuth's TAOCP worth the time and effort?

news.ycombinator.com

41–50 of 141 posts

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#41

> based on its stellar reputation as one of the indispensible, foundational computer science books that every programmer should read. A while back, I was joking with some friends that TAoCP is to the programming world what Finnegans Wake is to English literature: you're not supposed to read it, nobody's ever actually read it. We all just say we've read it, talk about how brilliant it is, and place it prominently on o…

In truth, if you haven't actually read Finnegans Wake, you've missed a grand literary experience.

In truth it is an extremely difficult book to read due to its experimental writing style. See for yourself:

https://ebooks.adelaide.edu.au/j/joyce/james/j8f/complete.ht...

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#42
post #32

Earlier quoted context omitted.

Certainly, I realize he's not writing about the cool new library for Python or something, but even just looking at actual computer science stuff, the field is expanding rapidly.

> "but even just looking at actual computer science stuff, the field is expanding rapidly." Is it though? Hash tables - 1953, Red-Black trees 1972, Quicksort 1959, etc...

Look at Knuth's future book plans, and consider all the things he's not putting in them that are current. He's also revisited the books some, and plans to do so again in the future.

I don't mean to take away from the books - they're beautiful and full of a lot of timeless knowledge. There's just something that seems a bit ... I can't even find a word for it ... about the endeavor.

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#43
I've read the first volume. I do not have a math-heavy background. Knuth's dry humor is great. The scope and effort put into the books are astounding.

I did not learn much of practical use for my day-to-day programming. Sadly, I will probably never read the other two volumes in my boxed set. They look great on the shelf.

The MIX assembly language was my least favorite aspect of the book - and I ENJOY creating and tinkering with toy virtual machines.

MMIX (MIX's modern RISC successor) will probably be a lot nicer.

Perhaps assembly languages are essential to demonstrate the concepts properly. And I understand the arguments against using a popular low-level language such as C. But it sure would have been nice to have a simple and readable pseudo-language for the examples rather than MIX!

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#44
>TAOCP worth the time and effort?

Early in my career, I got the first three volumes.

The volume on sorting and searching was the most useful, and there the most useful was AVL trees. Next, heap sort and the Gleason bound. Sort-merge? I'd known that already, but if don't then can learn it there. Radix sort? That's what the old punched card machines did; in some cases it's faster than heap sort (doesn't contradict the Gleason bound because that bound assumes that the sorting is from comparing pars, and radix sort doesn't do that). Radix sort could be still be useful in special cases. Lists, queues? Obvious.

The fast Fourier transform remains important, and some of what Knuth writes about it is good and tough to find elsewhere.

Somewhere in those first three volumes are some really good summaries of combinatorial formulas, with some results not easy to find elsewhere.

The volumes give some good examples of how to do the math to evaluate the performance of an algorithm -- might need to do that sometime, e.g., for some guaranteed performance in some embedded system -- and if need to do that then it's far easier to read at least the start on how from Knuth than reinvent it yourself and likely easier than from other sources.

The level of clarity, precision, and quality in Knuth is about as high as those go and a great example for others.

That's most of what I got from those three volumes.

For the later volumes, right, I didn't bother. But, if I have a question that might have an answer in one of those volumes, then, sure, I will eagerly look.

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#45
There is this Hindu[1] tale[2] that goes like this:

A king once solicited a scholar to read an ancient hindu text, so that the king may better understand God. The scholar goes away, and after a period of time comes to the king. The king asks "Have you read the text?" to which the scholar replies "Yes I have." The king does not believe the scholar and sends the scholar to read the text.

Some time passes by, and the scholar returns. The king again questions the scholar, and again the scholar replies that he has read the text. The king sends the scholar away telling the scholar to read the text.

Some time passes by, and the scholar does not return. After some additional time, the king has grown impatient and sends some men to find the scholar. When they arrive at his home, the scholar is no where to be found, and has seemingly disappeared.

After studying the text so diligently, the scholar has ascended to heaven and joined God.

My assumption is that once you've truly read The Art of Computer Programming, you will transcend your human form and be one with the Cloud.

[1] Source: My dad, who is not the most reliable person when it comes to these sorts of things.

[2] I'm paraphrasing it, as I am also no the most reliable person when it comes to these sorts of things.

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#46
post #11

pipeline stalls, designing for cache performance, branch prediction, multithreading, etc. Those are issues for a subset of computer hardware. Embedded computing is still huge and has drastically different performance requirements. TAOCP is designed to stand the test of time, not focus on micro-optimizations that generally have limited performance impact and are a waste of time 99% of the time.

> TAOCP is designed to stand the test of time, not focus on micro-optimizations . . .

Hmmm. My edition of "Sorting and Searching" has a section devoted to tape-sorting.

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#47

> based on its stellar reputation as one of the indispensible, foundational computer science books that every programmer should read. A while back, I was joking with some friends that TAoCP is to the programming world what Finnegans Wake is to English literature: you're not supposed to read it, nobody's ever actually read it. We all just say we've read it, talk about how brilliant it is, and place it prominently on o…

In truth, if you haven't actually read Finnegans Wake, you've missed a grand literary experience.

The first chapter is deliberately impenetrable, using obscure words from many different languages. I've seen commentaries that explain what it's supposed to mean, but it strikes me more as a tall mountain that exists to be climbed. It's more like you're translating it than reading it.

That said, if you can convince people to house rule it as a word-source for a Scrabble game, you can terrify people who want to challenge.

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#48
There's always been a divide between algorithm design and analysis (covered in TAOCP and most algorithm books), and hardware implementation details like pipeline stalls, cache performance, and branch prediction.

That doesn't mean the algorithm books are useless, it means they give you a bunch of options, and you have to decide which algorithms and data structures will perform best on the specific hardware you're using.

But, at the same time, TAOCP is terrible as a practical algorithms book. It's perfect for graduate level algorithms classes deep diving into mathematical proofs and analyses, but for practical, "real life" coverage I prefer Skiena's "Algorithm Design Manual."

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#49
Do you need to people to tell you what to do?

Asking other's advice is as stupid as judging a book by its cover.

If you have studied a tad, or read books in the past, there are ways to efficiently evaluate a book:

Read some pages randomly. Think 30s if you liked it. TAOCP is indigest for sure.

Then take a topic for which its relevant. Read it. Did you learnt something?

A) no, either you or him is an idiot. Go to B)

B) Was it luck? Reproduce nth time (n being left to your choice and whatever)

C) after nth iterations : - is something interesting worth learning? - can you understand the book (don't lie to yourself)? - do you like reading it?

Then look at the tag price. You look at your internal evaluation and buy or not the book according to your needs.

I liked reading part of this book, and i grasped the underlying context fast enough to be so bored (trying to build a consistent mapping between algebrae and code) that I never opened it again.

In microelectronic you learn to draw your logic on Silicium and wire the logic... It is much more powerful and is one of the key concept of parallelism. Geometric approach.

But, this is my subjective opinion of the book. Talent comes with strong balance between opinions and curiosity.

If you want to understand better computers I would suggest to take a look at VHDL rather than TAOCP ... if it SUITS you.

You should be the master in your choices.

Re: Ask HN: Is Knuth's TAOCP worth the time and effort?

#50
post #27

Earlier quoted context omitted.

> But, there is a lot to offer in the industry of programming. Knuth picked an order to offer this information and is going in that order. Perhaps it's sacrilege, but I've always considered it kind of weird to take on a project like TAOCP in a field that's growing far faster than it can be documented by one person.

The fundamentals of computation remain the same.

Sometimes I believe it strongly, sometimes I don't. Do deep fundamental, mathematical analysis help in the accidental social complexity found on programming stacks sometimes ?
Post reply on HN