This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
No, I haven't purchased a copy yet, but it will go on my 'need to get this' list. I have a set of volumes I-III my dad bought back in the 70's. They still have the price tags on them. $23.50 each - the total for those being less than this new, single volume (retail).
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
300 of which are answers to exercises (and who knows how many pages for the exercises themselves).
Thank you for enlightening me on that. Often, the sheer size of these books intimidate me.
I am slowly learning the art of reading books a few pages at a time, spanning a couple of months. I much prefer finishing a book in one go, quickly.
Joined: Mar 22, 2005
Anyone who has read any of the TAOCP books from start to finish has my admiration, although I think one would have to be a bit weird doing that. I think they're much more likely to be used as reference books, or as introduction to specific topics, and not so much to be read in full.
Ulf Dittmer wrote:Anyone who has read any of the TAOCP books from start to finish has my admiration, although I think one would have to be a bit weird doing that. I think they're much more likely to be used as reference books, or as introduction to specific topics, and not so much to be read in full.
ahh I see. I have never skimmed over TAOCP myself, so that detail evaded me.
Maybe the average programmer, who makes simple web applications as a living, doesn't really need it. But if you want to become an expert programmer, you'll have to understand as much as possible about the low-level workings of computers and how to analyze and design algorithms.
Bert Bates wrote:... won't most of these algorithms end up being handled by an API that someone else wrote and we just use?
Yes, somebody has to write those algorithms - for sure, but my idea is that not many people do. For instance, java.utils has several sorting APIs. It seems to me that a handful of people implemented those sorting algorithms, put them in the API, and the rest of us get to use their implementations.
Well, I agree that most people don't need to read TAOCP, but if you want to become an expert programmer then this is ofcourse one of the classic masterpieces to read. Ofcourse most programmers rarely ever need to implement (part of) a standard library of a programming language, and the ratio of people writing that kind of software to people using it is maybe 1 : 100,000 or so. But even if you're never going to write software like that, it can be very educational to learn about how the fundamental algorithms and data structures work, and it will make you a better programmer.
Joined: Oct 14, 2002
I agree with *most* of what you said. But now there are four volumes of Knuth. Probably a couple of thousand pages. My guess is that if you want to be an expert programmer there is probably about 10% of Knuth that would be sufficient to really get up to speed. The problem is knowing what that 10% is?
On Amazon there is a quote from Bill Gates that more or less says: "If you read and understood all of Knuth, send me your resume."
Knuth started with this in 1962 (49 years ago! ) and the plan is to have a volume 4B, 4C, 4D and 5, 6 and 7. Wikipedia says that volume 5 is planned for... 2020! Is Knuth planning to live to be 130 years old? Otherwise he won't have enough time for volumes 6 and 7...
And Wikipedia also mentions what you said Bert:
Wikipedia wrote:Covers of the third edition of Volume 1 quote Bill Gates as saying, "If you think you're a really good programmer . . . read (Knuth's) Art of Computer Programming . . . You should definitely send me a résumé if you can read the whole thing."
A footnote to that mentions:
Wikipedia wrote:According to folklore.org, Steve Jobs actually made the incredible claim.
Ulf Dittmer wrote:Anyone who has read any of the TAOCP books from start to finish ...
is a weird geek.
I don't claim to have read the first volumes in one sitting, or even over many nights, but I did read all three of them back in the 70s. Sadly, the MIX (mythical assembly language that Knuth invented) has not aged well. The ideas are timeless, and the algorithms world class. No one implements stuff in assembly anymore. Well, maybe a tiny few, but even the embedded folks have been using C most of this century.
I'm currently reading Knuth's Concrete Mathematics. Its clearly a textbook for a specific course, a fairly technical one taught at Stanford.
John Todd wrote:Maybe I'm wrong but the volume's contents aren't accessible for the average programmer.
The contents are so dense and mathematical heavy and academic, right?
I've not seen Volume 4, its just finally out. Not sure which volume you are talking about. Concrete Mathematics is fundamentally a math book that is the foundation for serious study of algorithms, Big Oh notation, and all that.
I would not say that the first three of AOCP is mathematically heavy. They are designed for serious students.