4 ms·
Why I run away from Knuth
- edw519 18y agoWhat about all those $2.56 checks you could be getting?
- michael_dorfman 18y agoNot unsurprisingly, articles like this say more about the author than about Knuth. Knuth is not for everybody. No question about that. But for people who are interested in the area he covers, there is no one better.
- jobeirne 18y ago"Not unsurprisingly"? That hurts my head.
- deleted 18y ago[deleted]
- michael_dorfman 18y agoYeah, one negative too many, huh? Well, I guess you can save the extra one for next time.
- maw 18y agoYou shouldn't use no triple negatives neither.
- signa11 18y agosome like water, some like wine. to each his own.
- jcl 18y agoDespite some overlap, there is a difference between computer science and programming. Knuth concentrates on the former, so you'll be disappointed with his books if you're only looking for the latter... The title "The Art of Computer Programming" is somewhat misleading in this regard.
- cousin_it 18y agoIn rigorous areas like math and CS, simple things often sound difficult because nobody tried hard enough to simplify the presentation. Some books hit the sweet spot, like Ken Binmore "Fun and Games" or Cormen, Leiserson, Rivest "Introduction to Algorithms". Knuth doesn't.
- mudge 18y agoI thought K&R2 was pretty easy to read and understand, hardly, "painful and difficult".
- sdp 18y agoI've worked with Java and C++ for several years, but I need to learn C for a project I'm doing this summer. Having heard many good things about K&R2, I picked it up and I'm astounded at the clarity of the piece. By today's standards, it does have a few fairly academic examples (if I wanted to convert fahrenheit to celsius, I would use google), but otherwise it has excellent examples of functional code written in a concise style to clearly demonstrate how to use the language to get things done. The author mainly seems to be implying that K&R2 is "totally not related to what [the author is] doing right now as a programmer in some company."
- SwellJoe 18y agoAgreed. K&R is one of the best teaching texts I've ever read. It's paced wonderfully, and explained extremely clearly. I had tried numerous other C texts before getting K&R, and never managed to get very far...pointers, in particular, seem to be very poorly covered by everybody else.
- alexk 18y agoThe author wants the knoweledge that can be immediately applied; in my opinion it's the common mistake: without understanding the basics (which is full of Math's) all what you'll have is the set of recipes for your everyday tasks, and won't be able to master really challenging problems.
- briansmith 18y agoThe most serious problem with Knuth's TAOCP books is that they are severely out of date. For example, Volume III (searching and sorting) only has two paragraphs that even mention virtual memory and memory caches at all. That is a huge issue--if you have a sorting problem that is bad enough that you need to break out Knuth, then you probably need to know to implement the algorithms in a cache-oblivious manner. Further, you need to know when you can rely on the VMM (mmap and swap) and when you must explicitly manage disk-based data separately from RAM-based data.
- yan 18y agoI doubt I agree. Knuth covers the fundamental, distilled algorithms very comprehensively. I really don't think covering VM, cache issues/width of cache lines, as well as virtues of pinning pages in memory is completely in his scope. If he did that, he'd have to talk about architectural issues such as out of order execution and depth of pipe-lines, which he obviously has no interest in since he developed his own `ideal' (M)MIX architecture specifically for the books. I feel that the best way to approach actual algorithm implementation is to see what Knuth has to say about it in terms of virtues of some algorithms vs others and then to study the environment it will be running on to tweak the general algorithm.
- jcl 18y agoI have to agree with Brian... Caching is not a purely practical concern; it is important to the analysis of algorithms as well. It looks like Knuth agrees: http://www.softpanorama.org/Lang/c.shtml http://www.softpanorama.org/Lang/c.shtml Donald: I mentioned earlier that MMIX provides a test bed for many varieties of cache. And it’s a software-implemented machine, so we can perform experiments that will be repeatable even a hundred years from now. Certainly the next editions of Volumes 1-3 will discuss the behavior of various basic algorithms with respect to different cache parameters. In Volume 4 so far, I count about a dozen references to cache memory and cache-friendly approaches (not to mention a "memo cache," which is a different but related idea in software).
- yan 18y ago
- gruseom 18y ago(if pointy-haired-boss (progn 'do-politics) (format t "write code & enjoy ;-)")) You don't need the progn. :)
- jrockway 18y agoExactly what I thought when I read the article. It sounds like he's heard that Lisp is cool, so he pretends he is a Lisp expert, but he has no clue about that (or Knuth). Sad. Anyway, I was thinking he meant funcall instead of progn, but in that case he should just have written (do-politics). Finally, shouldn't that be pointy-haired-boss-p? ;)
- gruseom 18y agoshouldn't that be pointy-haired-boss-p? ;) Heh. I almost thought so too, but the variable could be referencing the boss himself rather than information about his existence. Somehow I think it's more Lispy that way. And (progn 'do-politics) does look like a mistake for (do-politics) but then again I kind of like the fact that the form evaluates to a useless symbol in the pointy-haired case. Really, there are all kinds of things one could say about this little expression. One could write an entire critique. :)
- jrockway 18y agoUpon further reflection, how about: (if (pointy-haired-p boss) ... Ah, coding by committee. How pointy-haired of us :)
- gruseom 18y agoMust I have a boss? (if (and boss (pointy-haired-p boss)) ... coding by committee. How pointy-haired of us I object. This is sarcastic pair programming!
- henning 18y agoThe basic claim here seems to be that there is little use for deep, rigorous algorithmic thinking in the monotonous day to day work of business applications that constitutes the majority of paid programming work. Why does this lessen the value of books like Knuth and CLRS? And what does it say about the boring projects the author works on? The truth is, in a business app, wiring up the interface to a database is usually not the hard part. The hard part is dealing with political bullshit, dealing with people, making sure the interface is right, gathering domain knowledge and understanding users' needs, deciding what features matter and which don't given your budget and time constraints, and other things that have little to do with J2EE, .Net, and other ephemeral daycoder staples: these are high-level issues anti-intellectual philistines like the author of this post flatly refuse to acknowledge the significance of. It is possible to artificially fabricate situations in a business where invoking deep, powerful ideas from computer science is necessary. But often there is a much simpler solution that necessitates much simpler techniques: this is the right thing to go for, even though solving the wrong problem may have an appealing, elegant solution that proves that you're a really smart person. Knowing when to be a fancypants computer science whiz and when to make a 5 line call to an existing library is really where maturity and mastery come in to software development, IMO.
- menloparkbum 18y agoThere is no substantive content about any of Knuth's books in this article. I don't believe the author has read any of the books - most people commenting on Knuth haven't. The piece is just incoherent rambling about how math is hard - NOT something that should be voted to #1 on the front page of anywhere, especially HN.yc. The following excerpt sums it up: "...I am an average man, with an average IQ. I could have have failed the Mathematics exam of 10th class in 1996. I was very poor at Mathematics and I was expecting only 22 or 34 marks out of 100 and anything less than 33 means you have failed the exam but I purchased 2 very heavy-books of Mathematics, which our teacher called best references books for 10th class and studied them at the cost of my health for 2 months and then I got 83 marks but those health problems, the pain in the neck are still with me after 12 years ) . Since I was weak in Mathematics may be thats why I don’t like Knuth’s style ..."
- donw 18y agoThat's what I thought after reading the first paragraph. If anything, I find Knuth's books to among the most approachable, partially because he has a good sense of humor, but mostly because Knuth writes in a very conversational style.
- radu_floricica 18y agoNow what I _really_ want is a way to identify all the people who voted this story and substract their votes from all future posts. Can I? Please?
- msg 18y agoI've always thought Knuth was quite entertaining and droll, even in his scientific work. Like the time he showed up for Randall Munroe's Google talk and asked about the n log (log n) sort algorithm discovered by his dark apprentice Elaine. http://xkcd.com/342/ http://xkcd.com/342/ I think the problem with reviews like this one that say "I wish this guy had written a different book" is that they refuse to take the work and the author on their own terms. TAoCP is obviously on a mission to rigorously define algorithms at the heart of computer science, compare them, and make provable statements about their complexity. On those grounds, none of the pedagogical texts the author prefers holds a candle to the blinding glory of TAoCP. (Of course, they weren't really trying to.) It's the same with all kinds of art. Come to it full of expectations that the art doesn't fulfill, and you won't make the connection... but that's not the art's fault.
- aggieben 18y agoThis was my cue to take my exit to the back button: Though they were programming books but they were not written to show you the reality of what happens when you use scp to copy file over a network. *How that scp program looks like and Why it is so strange at 1st.* Those books will never tell you ( in code ) that their could be errors, their could be failures, their could be some problem in making a connection, that, for obvious reasons, you have to use ” -ansi -pedantic -Wall -Wextra” while working with GCC but all we learned were TURBO C and a book on DOS 6.2 ( this shitty-book had cost me my precious 600 rupees )I put Knuth in the same category. He just explains, explains and explains the algorithms, with 100% Mathematics, in the most detailed manner ever done and leaves the applications of those algorithms up to you. They are not designed for people like me. He would rather read a book that tells him about the possible errors that the scp program might print out instead of a Knuth book. Got it. Back to my regularly scheduled programming.
- llimllib 18y ago(You know that you used "queue" when you meant "cue" right? Not trying to make fun of you, just pointing out that they're homophones with different meanings and it's kind of jarring to read the wrong one)
- Hexstream 18y ago"Those books will never tell you ( in code ) that their could be errors, their could be failures, their could be some problem in making a connection" There could even be wrong usage of "their" 3 times in a row in an error message!
- llimllib 18y agoCan somebody who upvoted this tell me why? It doesn't make any sense to me, other than that it points out that Knuth is mathy (holy cow!)