HN Books @HNBooksMonth

The best books of Hacker News.

Hacker News Comments on
The Art of Computer Programming, Volumes 1-4A Boxed Set

Donald Knuth, Donald John Fuller · 56 HN points · 12 HN comments
HN Books has aggregated all Hacker News stories and comments that mention "The Art of Computer Programming, Volumes 1-4A Boxed Set" by Donald Knuth, Donald John Fuller.
View on Amazon [↗]
HN Books may receive an affiliate commission when you make purchases on sites after clicking through links on this page.
Amazon Summary
The bible of all fundamental algorithms and the work that taught many of today’s software developers most of what they know about computer programming. —Byte, September 1995 Countless readers have spoken about the profound personal influence of Knuth’s work. Scientists have marveled at the beauty and elegance of his analysis, while ordinary programmers have successfully applied his “cookbook” solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books. I can’t begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home… and even at a Little League game when my son wasn’t in the line-up. — Charles Long Primarily written as a reference, some people have nevertheless found it possible and interesting to read each volume from beginning to end. A programmer in China even compared the experience to reading a poem. 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. — Bill Gates Whatever your background, if you need to do any serious computer programming, you will find your own good reason to make each volume in this series a readily accessible part of your scholarly or professional library. It’s always a pleasure when a problem is hard enough that you have to get the Knuths off the shelf. I find that merely opening one has a very useful terrorizing effect on computers. — Jonathan Laventhol In describing the new fourth volume, one reviewer listed the qualities that distinguish all of Knuth’s work. [In sum:] detailed coverage of the basics, illustrated with well-chosen examples; occasional forays into more esoteric topics and problems at the frontiers of research; impeccable writing peppered with occasional bits of humor; extensive collections of exercises, all with solutions or helpful hints; a careful attention to history; implementations of many of the algorithms in his classic step-by-step form. —Frank Ruskey These four books comprise what easily could be the most important set of information on any serious programmer’s bookshelf.
HN Books Rankings

Hacker News Stories and Comments

All the comments and stories posted to Hacker News that reference this book.
Depending on your level of programming ability, one algorithm a day, IMHO, is completely doable. A number of comments and suggestions say that one per day is an unrealistic goal (yes, maybe it is) but the idea of setting a goal and working through a list of algorithms is very reasonable.

If you are just learning programming, plan on taking your time with the algorithms but practice coding every day. Find a fun project to attempt that is within your level of skill.

If you are a strong programmer in one language, find a book of algorithms using that language (some of the suggestions here in these comments are excellent). I list some of the books I like at the end of this comment.

If you are an experienced programmer, one algorithm per day is roughly doable. Especially so, because you are trying to learn one algorithm per day, not produce working, production level code for each algorithm each day.

Some algorithms are really families of algorithms and can take more than a day of study, hash based look up tables come to mind. First there are the hash functions themselves. That would be day one. Next there are several alternatives for storing entries in the hash table, e.g. open addressing vs chaining, days two and three. Then there are methods for handling collisions, linear probing, secondary hashing, etc.; that's day four. Finally there are important variations, perfect hashing, cuckoo hashing, robin hood hashing, and so forth; maybe another 5 days. Some languages are less appropriate for playing around and can make working with algorithms more difficult, instead of a couple of weeks this could easily take twice as long. After learning other methods of implementing fast lookups, its time to come back to hashing and understand when its appropriate and when alternatives are better and to understand how to combine methods for more sophisticated lookup methods.

I think you will be best served by modifying your goal a bit and saying that you will work on learning about algorithms every day and cover all of the material in a typical undergraduate course on the subject. It really is a fun branch of Computer Science.

A great starting point is Sedgewick's book/course, Algorithms [1]. For more depth and theory try [2], Cormen and Leiserson's excellent Introduction to Algorithms. Alternatively the theory is also covered by another book by Sedgewick, An Introduction to the Analysis of Algorithms [3]. A classic reference that goes far beyond these other books is of course Knuth [4], suitable for serious students of Computer Science less so as a book of recipes.

After these basics, there are books useful for special circumstances. If your goal is to be broadly and deeply familiar with Algorithms you will need to cover quite a bit of additional material.

Numerical methods -- Numerical Recipes 3rd Edition: The Art of Scientific Computing by Tuekolsky and Vetterling. I love this book. [5]

Randomized algorithms -- Randomized Algorithms by Motwani and Raghavan. [6], Probability and Computing: Randomized Algorithms and Probabilistic Analysis by Michael Mitzenmacher, [7]

Hard problems (like NP) -- Approximation Algorithms by Vazirani [8]. How to Solve It: Modern Heuristics by Michalewicz and Fogel. [9]

Data structures -- Advanced Data Structures by Brass. [10]

Functional programming -- Pearls of Functional Algorithm Design by Bird [11] and Purely Functional Data Structures by Okasaki [12].

Bit twiddling -- Hacker's Delight by Warren [13].

Distributed and parallel programming -- this material gets very hard so perhaps Distributed Algorithms by Lynch [14].

Machine learning and AI related algorithms -- Bishop's Pattern Recognition and Machine Learning [15] and Norvig's Artificial Intelligence: A Modern Approach [16]

These books will cover most of what a Ph.D. in CS might be expected to understand about algorithms. It will take years of study to work though all of them. After that, you will be reading about algorithms in journal publications (ACM and IEEE memberships are useful). For example, a recent, practical, and important development in hashing methods is called cuckoo hashing, and I don't believe that it appears in any of the books I've listed.

[1] Sedgewick, Algorithms, 2015. https://www.amazon.com/Algorithms-Fourth-Deluxe-24-Part-Lect...

[2] Cormen, et al., Introduction to Algorithms, 2009. https://www.amazon.com/s/ref=nb_sb_ss_i_1_15?url=search-alia...

[3] Sedgewick, An Introduction to the Analysis of Algorithms, 2013. https://www.amazon.com/Introduction-Analysis-Algorithms-2nd/...

[4] Knuth, The Art of Computer Programming, 2011. https://www.amazon.com/Computer-Programming-Volumes-1-4A-Box...

[5] Tuekolsky and Vetterling, Numerical Recipes 3rd Edition: The Art of Scientific Computing, 2007. https://www.amazon.com/Numerical-Recipes-3rd-Scientific-Comp...

[6] https://www.amazon.com/Randomized-Algorithms-Rajeev-Motwani/...

[7]https://www.amazon.com/gp/product/0521835402/ref=pd_sim_14_2...

[8] Vazirani, https://www.amazon.com/Approximation-Algorithms-Vijay-V-Vazi...

[9] Michalewicz and Fogel, https://www.amazon.com/How-Solve-Heuristics-Zbigniew-Michale...

[10] Brass, https://www.amazon.com/Advanced-Data-Structures-Peter-Brass/...

[11] Bird, https://www.amazon.com/Pearls-Functional-Algorithm-Design-Ri...

[12] Okasaki, https://www.amazon.com/Purely-Functional-Structures-Chris-Ok...

[13] Warren, https://www.amazon.com/Hackers-Delight-2nd-Henry-Warren/dp/0...

[14] Lynch, https://www.amazon.com/Distributed-Algorithms-Kaufmann-Manag...

[15] Bishop, https://www.amazon.com/Pattern-Recognition-Learning-Informat...

[16] Norvig, https://www.amazon.com/Artificial-Intelligence-Modern-Approa...

There's The Art of Computer Programming by Donald Knuth [1] but it's really dense, and I doubt most people have actually read through it to it's entirety.

For math there's The Princeton Companion to Mathematics [2]

[1] http://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxe...

[2] http://press.princeton.edu/titles/8350.html

The great set of computer science learning resources: http://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxe...

Suitable for lifelong learning.

The Art of Computer Programming http://www.amazon.com/gp/product/0321751043
frigg
Please stop recommending this book if you have no idea what's it about.
HillRat
Oof. Just have them read Numerical Recipes while you're at it. Knuth is great, but it's dense, even when you discount the use of MIX.

Definitely take a look at SICP (http://mitpress.mit.edu/sicp/full-text/book/book.html) and the related HTDP (http://www.ccs.neu.edu/home/matthias/HtDP2e/) -- both will require you to get used to Scheme (it's good for you!), but will expose you to the underlying theory of how to compute, which is critical.

Before those two, you could also start with O'Reilly's "Understanding Computation," which is a bit more Ruby-centric than I prefer, but a non-rigorous take on the same subjects. Petzold's "Code" is also a good, non-specialist place to start. (Petzold's "Annotated Turing" is great, but I'd leave it for a while.)

You should read the "Schemer" series (Little, Seasoned, Reasoned) -- again, lots of Scheme, but wonderful if somewhat idiosyncratic reads.

Going back in time, Wirth's "Algorithms + Data Structures = Programs" is a classic in the field, and a pleasure to read.

CLRS' "Intro. to Algorithms" is a foundational text on algorithm analysis and design, though you might also want to try some of the more popular treatments first (O'Reilly has a few good ones). See also Skiena's "Algorithm Design Manual."

The "Dragon Book" (Compilers: Principles, Techniques, and Tools) by Aho, Sethi and Ullman is on every computer scientist's bookshelf for good reason -- it tells you everything you need to know about how the languages you use are built. I also like Holub's "Compiler Design in C," though it's a lot more hands-on.

For understanding OSes, I recommend "The Magic Garden Explained," and Bach's "Design of the UNIX Operating System." Outdated, perhaps, but outstanding in their clarity.

C (yes, you should learn C; like Lisp, it's also good for you even if you only use it rarely): King's "C Programming: A Modern Approach" (though you could start with a popular introduction like O'Reilly's "Head First C"), Plauger's "Standard C Library," Hanson's "C Interfaces and Implementations," and O'Reilly's "Understanding and Using C Pointers," as a start. Van der Linden's "Expert C Programming" is an excellent intermediate text that is also surprisingly readable.

Architecture and design miscellanea: Kernighan's "Practice of Programming," Bentley's "Programming Pearls," McConnell's "Code Complete," and Hunt and Thomas' "Pragmatic Programmer."

I have not yet read, but intend to, Okasaki's "Purely Functional Data Structures."

Make a habit of browsing second-hand bookstores and picking up older computer science books -- they cover by necessity much more foundational issues than most modern books, and do so using simpler architectures and languages. (I have a wonderful text on 68008 programming that has absolutely no practical relevance to the current age, but provides fantastic insights into the nuts and bolts of hardware and OS development.) As a bonus, you'll see how few ideas in computer science are truly new -- as computational bottlenecks shift, theoretical technologies suddenly become practical, or practical ones become outmoded.

Andrenid
Thanks so much for all that. Will definitely work my way through your post and check them all out. Much appreciated.
HillRat
I should point out that my academic background was political science and econometrics, with only a smattering of comp. sci courses in college, so I'm also an autodidact in computer science -- my recommendations come from my own experience.

You will want Knuth's TAOCP (especially since you mentioned you've had trouble with sorting and searching algorithms), but it's not something to start with. Likewise, Hopcroft and Ullman's "Introduction to Automata Theory, Languages and Computation" is a crucial text, but it's highly abstract (much more so than Knuth, which is a very practical work) and very, very slow going. Pick it up later when you're comfortable with mathematical formalisms.

You'll want to, relatively early on, find a readable introduction to discrete mathematics (the mathematics of "countable" objects, like sets and integers) and some of the more useful optimization techniques like linear programming. I used Grimaldi's "Discrete and Combinatorial Mathematics" to good effect.

Eventually, pick up some good textbooks on programming language design (not parsing and compilation), like Turbak et al's "Design Concepts in Programming Languages" and Finkel's "Advanced Programming Language Design."

Also, a few more sitting on my bookshelf that I also highly recommend -- "Computer Organization and Design," "Operating System Concepts" (the famous "Dinosaur book"), and (if you want to get into the nuts and volts of hardware), Horowitz's "Art of Electronics." Great works.

That should tide you over for the next few years -- but it'll be fun reading. Really!

hackerboos
A poor recommendation for a beginner. Dense and frankly boring.

Start with Code by Charles Petzold.

https://www.reddit.com/comments/ch0wt/a_reading_list_for_the...

Andrenid
Thanks!
None
None
OK. So Cormen's "Intro to Algorithms"[1] or Knuth[2].., but be prepared to be gobsmacked and have a graduate level math background...

[1] http://www.amazon.com/Introduction-Algorithms-Edition-Thomas...

[2] http://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxe...

oldbuzzard
On the other hand if you like wordy, I would quite recommend "Compared to What"[1] by Rawlins...

[1] http://www.amazon.com/Compared-What-Introduction-Algorithms-...

_Concrete Mathematics_ [1] is a good book that is fun to work through. The book can be considered an introduction/prerequisite to Knuth's _The Art of Computer Programming_ series [2], which contains much mathematics. If you would like a book that is not so difficult, _Introduction to Algorithms_ [3] (aka "CLRS") is also highly recommended.

[1] http://www.amazon.com/dp/0201558025/

[2] http://www.amazon.com/dp/0321751043/

[3] http://www.amazon.com/dp/0262033844/

Nice-- but a few more weeks, and you could have gotten Volume 4 included (http://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxe...)
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...)
Locke1689
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.

gjm11
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.)

michael_dorfman
According to the indices, Red-Black trees are mentioned once, on page 477 of Volume 3.
Locke1689
Fair enough.
gjm11
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".

Locke1689
OK, so change it to a "buddy-coalescing memory allocator." This is a pedantic conversation.
TomOfTTB
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.
Stormbringer
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.
TomOfTTB
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.

bad_user
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.

m0nastic
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.
TomOfTTB
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

michael_dorfman
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.

d0mine
Thanks for mentioning the lecture "Why Pi". Here's a direct link to the video http://stanford-online.stanford.edu/seminars/knuth/101206-kn...
Oct 07, 2010 · jolie on MIT female learning to code
Sheesh, there's one in every thread...

Thanks for starting this topic, ladydude. I've been looking for the same sort of advice/extracurricular materials, myself.

This one's on my wishlist. As in, I wish I had the time/cognitive tenacity to read it: http://www.amazon.com/Computer-Programming-Volumes-1-4A-Boxe...

rick_2047
(Fuck my karma, but I just need to say this) I just hated how he presented the point. But that does not change the fact that leading the question with her gender and institute is actually pathetic. Have you ever seen a post like "Male Stanford philosophy major wants to learn neural networks"?

This is what I don't get about women, they rally for women empowerment, equal rights and this and that, then you go about flaunting your female charm (not specifically talking about the thread).

Iris
That's a silly thing to say, not all women rally for women empowerment and not all women go about flaunting their female charm (whatever you may mean by that).

What I'm trying to get at - there's no point looking for contradictions in a group that doesn't abide by a single idealism. Now if the OP tells you that equal treatment is of the foremost importance to her, then feel free to rub the contradiction in her username in her face.

Aug 27, 2010 · 56 points, 55 comments · submitted by tjr
ovi256
BTW, I have an extra set of volumes 1-3 that I got by mistake, if someone's around Paris, mail me to get them. A poor student would be best :)
jlongster
These books are more than a status symbols for aggressive learners. I've poured through many chapters in these books and it really challenged me and continues to solidify a lot of concepts about computer programming.

I particularly remember enjoying being enlightened on where Big-O came from and what is really means in the mathematical world. Really helps me derive Big-O notations from my programs.

amichail
Probably more of a status symbol for most people.

How many of you actually read these books carefully?

rikthevik
I keep them around as a reminder that Computer Science is math. Being able to reason and think mathematically is an important skill for any programmer.

A person can go pretty far doing web work and using scripting languages, but when you get into serious programming (heavily concurrent, resource-critical, real-time, etc) you need to understand the fundamentals.

Having Knuth up on the shelf reminds me to take a second and say, "Hey, think this through some more. Knuth probably figured it out already."

gjm11
1. Me, at least, and I'm absolutely certain I'm far from unique.

2. There's nothing wrong or status-symbol-y about using books of this sort for reference, and reading only the bits one needs.

amichail
What's wrong with less cryptic books like these?

http://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321...

http://www.amazon.com/Introduction-Algorithms-Third-Thomas-C...

xtacy
Depth.

I have read CLRS (the second book in your list); it's really great as an introductory text as it spans a lot of areas. For example, sorting/searching is a chapter in CLRS, while it's a volume in itself in TAOCP (The Art Of Computer Programming). Also, CLRS is written in the style of a textbook, rather than a reference and a newbie would find it easier to follow. And, TAOCP is more of an in-depth reference to practically everything that has been researched in that field so far.

amichail
How many people need this level of depth?
tomjen3
A lot more than you would think - there are plenty of programmers out there that can't tell you the tradeoffs between the different approaches, and they can get away with it, because it appears to work (see thread synchronization, cross-site scripting, data-base injection, null pointers, pointer overflow, etc, etc) until somebody demonstrates that it doesn't.
glhaynes
thread synchronization, cross-site scripting, data-base injection, null pointers, pointer overflow

Does TAOCP cover any of those?

None
None
tomjen3
I would expect it to have plenty of algorithms to implement mutexes with, as well as parallel sort algorithms.

There are also going to be a lot of pointer based tricks that you don't get unless you really understand pointers.

None
None
gyepi
A rather superficial status symbol, I'd say: owning a book does not equate to knowing or understanding its contents.

I purchased my copies individually (back when I was a student and I could ill afford them) and, ignoring Knuth's suggesting algorithm for reading the series, read the "interesting" sections quite carefully. I still use them for reference and occasionally find time to re-read parts of it.

gjm11
Pretty ineffective status symbol, too. How many people whom you might want to impress are going to see exactly what's on your bookshelves, and know enough to recognize Knuth as impressive? I'll hazard a guess that most people for whom those are true also know enough to be more influenced by other more meaningful things than what books you happen to have on your shelves.

(I bet some people do buy Knuth as a sort of status signal to themselves, though.)

kjhgfgbhnj
I wonder if heavily thumbed annotated editions cost more?
Someone
I read and understood volumes 1 to 3 front-to-back. I do not think it is that hard to understand, compared to e.g. complex analysis or number theory. Didn't work hard enough on some the exercises, but certainly understood all the simpler ones. I would not recommend reading this to every (would-be) programmer or computer scientist, though. Especially for those wanting to program on 1GHz+ CPUs with 1GB+ RAM, there are things that are more immediately useful. Also, even for the low-level stuff the content of the books is getting seriously dated (e.g. due to the absence of multi-threaded algorithms)
ww520
I have to admit I haven't read the books, lower head in shame. It was too expensive when I was a poor student. Interestingly years later at work there were some Romanian exchange students doing summer internship. When they left, we bought gifts for them. A coworker and I bought the 3rd Volume to give to one of them. That really made her day.
brianm
I use them as references probably more often than any other books I own. That said, I use the internets an order of magnitude more.
jules
I read the first book and didn't find it particularly good. You don't learn a lot from them. You do learn a lot of irrelevant details (like how his machine language works).
rwmj
The first three, in detail. I even tried and failed to do many of the higher exercises :-(
Locke1689
I used it as an algorithm reference for memory allocation.
silentbicycle
I've read parts of vol. 2, especially about random number generation. I found it in a library book sale for a quarter. THAT made my day. :)

I've found a suspiciously high percentage of the people who have totally! read the Art of Computer Programming are unable to answer even basic questions about MIX, by the way.

okmjuhb
That's pretty reasonable with MIX, given that it's a terrible language that was obsolete before it was invented and that all the algorithms are described in English as well.
silentbicycle
No, like they'd never heard of it.
vdoma
Well, they're difficult books to read to begin with. Knuth himself would be surprised if someone has read and understood them all. At the same time, I find they're hyped up a bit (like SICP). There are plenty of other really good algorithms books IMHO.
sp332
http://folklore.org/StoryView.py?story=Close_Encounters_of_t...

(Knuth denies this ever happened.)

gjm11
At http://news.ycombinator.com/item?id=1266502 someone cites a particular occasion on which Knuth supposedly denied the story. As I remarked then, "full of shit" seems quite an unknuth expression.
joe_bleau
Volume 2 is my favorite as well. I think that was the first time I'd been exposed to Benford's Law (http://en.wikipedia.org/wiki/Benfords_law).
rdtsc
That's because there is a big difference between reading and understanding.

Reading can just mean reading word by word, symbol by symbol then putting the book on the shelf. That ends up happening a lot with material that has a lot of formulas and theorems. It could take days for some to understand just a couple of pages.

So basically I not surprised at all that you've met so many people who've read the volumes, but didn't all the subtleties.

I think reading the volumes is the next step in status show-off step after buying and putting them on the shelf.

Also, as many have pointed that MIX is just too obscure. Not knowing much about doesn't really indicate a lack of theoretical knowledge. I would personally skipped over those chapters.

silentbicycle
I was more thinking along the lines of, "Oh yeah, I've read them all. Wait, MIX? What's that?"

I've seen several equally dense, informative CS books (such as Dick Grune's _Parsing Techniques: A Practical Guide_), but Knuth has a specific sort of cachet among xkcd-quoting geek hipsters, so people namedropping him, make a pretense of having read them all the way through, etc.

PStamatiou
clicks on "Tell the Publisher! I’d like to read this book on Kindle"
davidw
So would I - but only if it looks as beautiful as the real thing.

Anyway, don't most people buy those as shelf decorations?

None
None
kjhgfgbhnj
Hardback edition $200

Kindle edition $100

Empty slipcase with fake spines to impress your friends $50

eru
Buy one real, so you can take it out.
kunjaan
These seem to be a perfect graduation gift.
pinhead
Seriously, a list price of $249? Hardcover books are so damn expensive...
kjhgfgbhnj
Sure and what do you get for the price of an iPod?

The life's work of the greatest genius in CS and a set of knowledge that will last you more than your lifetime.

pinhead
Hey, I am not disputing that the content isn't worth while. I just would rather have it in paperback (which is already out, I believe) so it's cheaper and easier to flip through. But I guess that is just my personal preference.
kjhgfgbhnj
I have a paperback edition printed on almost tissue paper I bought in India 10 years ago for about $5
ataranto
Does anyone if you can buy a cardboard mockup of the boxed set that would look like the real thing when placed on your bookshelf next to "Teach Yourself Ruby in 21 Days"? I'm thinking $5.
jason_slack
I have a hard bound set (without the case) that someone can have if they are around the San Jose area. Vols 1 - 3. Maybe a trade or something?
junkbit
So is this just the beginning of part 4?
kjhgfgbhnj
Yes - but the whole of volume 4 is almost a lifeswork! see http://www-cs-faculty.stanford.edu/~uno/taocp.html
Groxx
Anyone know if these are all updated to the RISC system, or is that still in progress?
okmjuhb
That's still in progress (and, given that Knuth is more than seventy years old and still has at least 3 books to go before he will begin to revise them, odds are such a revised set will never be released).
Groxx
That's kinda what I was anticipating. But a guy can hope, right?
tjr
Knuth still seems hopeful, so we might as well join him.
holychiz
oh hell NO!
siglesias
Can somebody elaborate on the use cases of such a set? Are these volumes more theoretical and academic or practical? Is ownership more of a symbol or are they genuinely interesting to read, given a cramped startup lifestyle? What level of formal comp sci education does the author assume?

Not skepticism, just genuine curiosity and intrigue. I don't have a formal CS background, so forgive me for the naiveté if this is obvious stuff.

tlammens
It's all three: theoretical, academic and practical :-) Actually everything is pretty much build up from very basic knowledge.

But beware that it has a high information density and that it is for the mathematically inclined.

To digest in small portions :-)

Locke1689
All code is also in a unimplemented instruction set architecture, so having a familiarity with some assembler is recommended.
silentbicycle
There seem to be implementations, such as http://www.gnu.org/software/mdk/manual/mdk.html . One person's "unimplemented instruction set architecture" is another's "virtual machine".
Locke1689
I was referring to hardware implementations, but cool nonetheless!
hyperbovine
My experience mirrored this guy's:

I often hear TAOCP described as the series of programming books "that every programmer should read." I think this is simply untrue ... TAOCP was not written to be read from cover to cover ... It's very dense and academic, and the examples are all in assembly language.

(From http://www.billthelizard.com/2008/12/books-programmers-dont-...)

savant
This will likely not help you build your startup unless you need a really strong understanding of Programming concepts. In the words of the wise Wikipedia:

"The famous offer of a reward check worth "one hexadecimal dollar" (100HEX base 16 cents, in decimal, is $2.56) for any errors found, and the correction of these errors in subsequent printings, has contributed to the highly polished and still-authoritative nature of the work, long after its first publication. Another characteristic of the volumes is the variation in the difficulty of the exercises. The level of difficulty ranges from "warm-up" exercises to unsolved research problems, providing a challenge for any reader."

For some people, it will be a status symbol. But honestly, you shouldn't be buying these books unless you actually want to learn something. Just saying you have the books will do you no good and is just a waste of paper.

jackfoxy
I cashed one of those checks once, after photo-copying it first of course. Seems like I paid a lot less for the boxed set of 3 volumes about 13 years ago. I would like to pre-order the hardbound vol 4a.
HN Books is an independent project and is not operated by Y Combinator or Amazon.com.
~ yaj@
;laksdfhjdhksalkfj more things
yahnd.com ~ Privacy Policy ~
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.