"rt of Computer Programming" by Knuth. Opinions?
This seems to be a huge book among a lot of programmer pros, but I don't see it in Joel's recommended reading list. I was wondering if anyone here has read the series, and if so, what their opinion is.
It's okay ...
Every programmer owes it to themselves to at least look at a copy. Few people who own copies have ever actually read them in any depth. They're a tough read. However, every fundamental algorithm and problem in CS is in these volumes, discussed in detail.
IMO it's a masterpiece, but I can't imagine attempting to read it from cover to cover. If you just want some C code to paste into your program, you're probably better off with something like one of Sedgewick's books. If you want a deeper theoretical understanding, and it's true that for most practical purposes you probably don't need it, then Knuth is the man for you.
The Cormen, Leiserson, & Rivest Algorithms book is excellent. It's very readable and covers a wide range of material. I recommend that you read it first, and then proceed to Knuth if you'd like a more rigorous and mathematical treatment.
CLR( Cormen,.. ) is a very good book for most of things. NP completeness and stuff is not that good though.
Used the Cormen book for two algorithms classes in college. (in school you're forced to by the book, whether you can afford it or not:). I liked it much better than Knuth's books. I'm not smart enough for those (translation - none of that crap translated immediately into making me a better coder). The Corment book however was more practical. P/S an IBM programming competition team from my school used this book as a reference in their competitions. I didn't notice if they had any Knuth volumes :)
Knuth is a genius, but I think the practical value of TAOCP is greatly exaggerated. CLR is more readable and useful, but TAOCP does have interesting historical trivia.
I wouldn't classify it as trivia. As stated by previous posters, I find it to be an invaluable reference on algorithms. The fact that I may seldom implement those algorithms is irrelevant; I bought it because I wanted to know algorithms, and now I have a great reference for them. If you need to implement algorithms, this is *THE* book for you. Period. If you are designing high level code from components, its value quickly decreases.
The thing I find really interesting about TAOCP is that Knuth wrote 3 great volumes, got frustrated with his typesetting tools and seems to have spent the last two decades working on TeX instead of TAOCP volumes 4-7.
Fog Creek Home