Depends on what you're doing and what you're interested in.
If you care about computer science, and/or want/need to deeply grok the math behind fundamental algorithms, Knuth is great.
It is unlikely to help you become better at using j-random ruby library, or scaling your Postgres/Redis/whatever boxes, or porting Hexen to HTML5 or whatever. (Actually, maybe on the last one.)
I do think the focus is more academic than a lot of working nerds are comfortable with, and (even though it is easy to learn) I've heard people scoff at learning a hypothetical[1] machine/language to work through problems.
I find it useful. I've never made a concerted push to work though all of it, but I have spent time with parts of it. In general, I'm usually more comfortable working with algorithms, especially when modifying them, that I've worked through in the sort of detail Knuth offers.
TAoCP is more computer science than computer programming. For the typical programmer, most of what is covered in TAoCP is buried in pre-existing libraries and modules.
As for MIX/MIXAL (MIX is the computer, MIXAL is the MIX Assembly Language), trendy languages change. The first volume was published in 1968 -- how many languages from 1968 are still being used today (FORTRAN and ...). MIXAL removes the discussion from language specific tricks and techniques and allows a focus on the algorithms themselves.
I'll always have a set of TAoCP on my bookshelf and refer to it whenever I'm looking for a refresher on core principles.
3 comments
[ 3.0 ms ] story [ 20.5 ms ] threadIf you care about computer science, and/or want/need to deeply grok the math behind fundamental algorithms, Knuth is great.
It is unlikely to help you become better at using j-random ruby library, or scaling your Postgres/Redis/whatever boxes, or porting Hexen to HTML5 or whatever. (Actually, maybe on the last one.)
I do think the focus is more academic than a lot of working nerds are comfortable with, and (even though it is easy to learn) I've heard people scoff at learning a hypothetical[1] machine/language to work through problems.
I find it useful. I've never made a concerted push to work though all of it, but I have spent time with parts of it. In general, I'm usually more comfortable working with algorithms, especially when modifying them, that I've worked through in the sort of detail Knuth offers.
[1] yes, people have implemented MIX.
As for MIX/MIXAL (MIX is the computer, MIXAL is the MIX Assembly Language), trendy languages change. The first volume was published in 1968 -- how many languages from 1968 are still being used today (FORTRAN and ...). MIXAL removes the discussion from language specific tricks and techniques and allows a focus on the algorithms themselves.
I'll always have a set of TAoCP on my bookshelf and refer to it whenever I'm looking for a refresher on core principles.