I'm surprised Donald Knuth's Art of Computer Programming only got 1 upvote. I've never considered the series a good fit for beginning programmers but for someone with 7 years under their belt who is looking for depth of knowledge I really can't think of a better choice of reading material (Plus there's a nifty box set coming out next year:http://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxe...)
Most people that recommend TAOCP haven't read it; and IMHO it's highly overrated.
I've read parts of volumes 1 and 3. This book is awesome if you have the time to digest it, but you get faster results from other books that are easier to read, like Cormen's Algorithms.
It depends on the results you want to get-- TAOCP and CLRS are completely different creatures.
If you are expecting TAOCP to be an Algorithms textbook, you're going to be severely disappointed.
Personally, I find TAOCP to be highly underrated. I find Knuth to be an utter joy (and just yesterday, greatly enjoyed watching the video of the 16th Annual Christmas Tree lecture.)
CLRS is a great Algorithm textbook, but it's not the place to go to find why there is a Pi in the formula for the approximation of Catalan numbers.
I liken TAOCP to Proust. Fawned over by a small subset of people (rightfully so), a larger subset who talks about it but doesn't actually read it, and shunned by the majority as dense and intimidating.
I'd agree with you on Cormen's Algorithms but the original post already mentioned Algorithms (which could mean one of two texts that are considered standard in the field but both cover about the same territory).
But I'd be interested in knowing what books you refer to as far as giving faster results beyond that(TAOCP is dense which I'll agree makes it a difficult read). I've never found a book that covers the same information as TAOCP and while I hated every second of reading it when I was being forced to do so I have to admit the knowledge has served me well
TAOCP is a reference book. Almost no one reads it cover-to-cover. It's the thing you pull out when you need to do some red-black tree magic that you've long since forgotten.
Personally, I still think K&R is the best CS/programming book I've ever read.
I'd disagree with that only because I (and everyone I've ever spoken to about it who has a CS degree) was forced to read it cover to cover (and for the record I hated it at first). The problem with saying it's a reference book is it isn't really written like a reference book. If you don't understand the context of what he's saying I don't see how it would be usable (especially considering the environment it describes is essentially hypothetical). So while I think it could be used as reference I think you have to have read it to use it in that fashion.
My copy of Knuth is at home and I'm at work, so I can't check -- but does TAOCP actually cover red-black trees? My hazy memory says it doesn't, or if it does it gives them at most a passing mention.
(TAOCP is wonderful but I think the great majority of potential readers would be better served by Cormen/Leiserson/Rivest[/Stein]. But when you really need Knuth, nothing else will do.)
And here is the complete text of what Knuth says about red-black trees.
"Elaboration of these ideas [2-3 trees, and a way of representing them as binary trees -- gjm] has led to many additional flavors of balanced trees, most notably the red-black trees, also called symmetric binary B-trees or half-balanced trees" ... followed by a list of references to places where these other sorts of tree, including red-black trees, are discussed.
So, indeed, you wouldn't turn to Knuth for "red-black tree magic".
Knuth exemplifies the difference between programming and computer science. For programmers, the function it may have once performed (serving as a resource for what is the best algorithm to implement for some rare and complex task) has been surpassed by things like Google, and (ironically?) by Stackoverflow itself.
Maybe I'm just not seeing it but I don't see how anyone could have really used it as a reference for algorithms in the first place. There are much better books for that. Beyond that anyone in their late 30s or younger probably started learning in a managed environment which means a lot of what the books says was never useful in a practical sense (for example unless you already know the algorithms being referred to you aren't going to be able to make heads or tails out of assembly)
What it does do is give you depth of knowledge. It helps you to understand the part of the computer you've never even thought of if Java is the first language you ever learned.