Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Knuth books and programming

by jjhorner (Hermit)
on Jul 13, 2000 at 20:03 UTC ( [id://22406] : perlmeditation . print w/replies, xml ) Need Help??

This doesn't quite fit the Meditation page, but it fits here more than on the SOPW page.

Well, I decided to beef up my programming skills with a little hard-core Comp. Sci. reading. I ran across a set of three books by Donald E. Knuth: 3 volume set of The Art of Computer Programming.

Will it be worth my time reading through these books, or should I stick to more concrete programming books. I am not the most adept at Algorithms, and the Wolf book is a little more Perl-centric than I was really looking for.

Ideas? Comments? Suggestions? I really need to improve on my coding theory so I will not be limited later on.

I posted this in the Chatterbox, and I got two well-formulated responses, so I know there are some good thinkers here.

J. J. Horner

Replies are listed 'Best First'.
RE: Knuth books and programming
by Abigail (Deacon) on Jul 15, 2000 at 13:33 UTC
    The Art of Computer Programming is a wonderful series. It is the bible of algorithms design. And although it discusses very basic algorithms, it's quite a high level book.

    The Wolf book is not a good algorithms book. In the introduction, the Wolf book says that many algorithm books use pseudo-code and not a "real" language, claiming that that is a drawback of those other books. Unfortunally, the Wolf book shows that using pseudo-code is better idea.

    If you are looking for a good general Algorithms book, go for Thomas H. Cormen, Charles E. Leiserson and Ronald L. Rivest: Introduction to Algorithms, Cambridge: MIT Press, 1990. ISBN 0-262-03141-8. And get yourself the hardcover. My paperback is falling apart from years of heavy usuage.

    -- Abigail

      Nice book. Another book worth of mention is Aho, Hopcroft, Ullman: Algorithms and data structures. Unfortunately I haven't its ISBN code here. I'll fix this node as soon as possible.
        Addison-Wesley Pub Co; ISBN: 0201000237; (January 1983), source
(jcwren) RE: Knuth books and programming
by jcwren (Prior) on Jul 13, 2000 at 20:33 UTC
    Personally, I consider these books part of any essential library. The sorting algorithms and such are far from dated. I think you will find them well worth the investment. You may be able to find some at reduced prices (if you worry about such things) at any college bookstore that resells textbooks.

    Most of what I've learned about sorting and such came from those books.


    e-mail jcwren
      Knuth books are some good books to use. You might also want to pick up some O'Reilly books if you're looking for specific languges ( Esp. Perl ). They've got a great section on Perl programming. I even got my Advanced Perl Programming book signed by Tim O'Reilly. As well as scoring about 5 free books from them...they're a good company. The beatings will continue until morale raises.
RE: Knuth books and programming
by ZZamboni (Curate) on Jul 13, 2000 at 23:17 UTC
    I recently got the boxed 3-volume set (gift from my wife), and I must confess that I've been meaning to start reading them methodically, but haven't. However, over the years I have consulted them for different things.

    IMO, Knuth's books are a must-have for anyone serious about programming. But they are also in-depth treatment of the topics and not "cookbooks". Go to them if you really want to understand how things work and why they work the way they do. And be prepared to do quite a bit of thinking yourself while reading them.

    If all you want is "how do I implement such-and-such algorithm in language X", you probably don't want TAOCP (unless X eq "MIX" :-), but one of the "Algorithms in X" books out there.

    Also, if you are going to buy the books, make sure you get the latest edition (third for books 1 and 2, second for book 3), which has been nicely retypeset and updated.


      I haven't seen the older editions, but aren't they also beautifully typeset? (I thought he wrote TeX so that he could present things the way he wanted to in these books.)
        Yes, that's the reason he started writing TeX. But I think the older editions were not typeset with TeX yet. I have the impression I read somewhere that he gave his original books, together with all his corrections, for someone to typeset in TeX for the new editions. I could be wrong.


Re: Knuth books and programming
by Dominus (Parson) on Apr 19, 2001 at 21:44 UTC
    Says jjhorner:
    Will it be worth my time reading through these books, or should I stick to more concrete programming books.
    It's really funny that you say that. Most people don't like the Knuth books because they are too concrete.

    Mark Dominus
    Perl Paraphernalia

This may be heresy...
by Anonymous Monk on Jul 14, 2000 at 20:37 UTC
    But I haven't found the Knuth books to be as useful day to day as I might have liked. They are a bit dated, and I have little patience, or aptitude for mathematical representations. I suspect this may be a failing on my part, but I learn more studying running code than I do abstract descriptions. Professor Knuth's work casts a long shadow over what we do. I have never had the inclination to learn from the original, just as I have not yet acquired the desire to study my Bible in the original Hebrew and Greek. I am satisfied with the translations done by others.
      Says gaudior:
      I learn more studying running code than I do abstract descriptions. ing running code than I do abstract descriptions.
      See, this is exactly what I mean when I say that people don't like it because it's too concrete.

      Criticizing The Art of Computer Programming for not having "running code" is the most unfair thing you can do. Almost every page has running code, or detailed analysis of the running code that appeared nearby.

      Why doesn't gaudior recognize this? Because the running code is in assembly language, and is full of fussy details about word size and I/O interrupts and memory allocation.

      Most people I know who didn't like The Art of Computer Programming have not actually bothered to read the code; then they complain that it is too abstract.

      Mark Dominus
      Perl Paraphernalia

      Oops, I had not intended to post anonymously. I didn't realize I was not logged in.