Rant: "Knuth, The art of computer programming" is overhyped
The title. I have read many technical books (mostly compilation, programming languages & automata) , blogs and whatnot, and recently borrowed the above mentioned book Volume4 (combinatorial problems) from a local library. Just to give a try since Knuth is such a respected person in computer science.
It is by far the most frustrating and maddening book i ever laid my eyes upon. The author doesn't make the slightest effort to explain why something is useful, changes examples before explaining why previous example is interesting or how it shows why X is useful. On page 8, he says that "Graeco Latin squares allowed to François Cretté de Palluel to do with 16 sheeps, what otherwise would require 64 sheeps". How & why ?? No fucking clue. I know i am not the smartest person on earth, but i would love a little hand holding here, you know to explain a concept he introduced 2 pages previously, and gave 3 random anecdotes about.
The writing style is a complete opposite of what I (and I believe, what are most people ) am expecting. If you know something, it won't be useful, and you don't know something : don't count on the book for explanation. I had the physical urge to slap Knuth. It's absolutely maddening.
He then goes on his little hobby to gather 5 letter-English-words, and gives some fancy looking graphs with fancy names (3 cubes, Petterson graph, Chvatal graph). For all what i know, it could be graphs called 42 and graph Blabla. Again no clue how it's useful, nor why it's interesting. He introduces some definitions and theorems.
I am on page 26 (thr book is thicker than a bible) i think i am done. This book will not make you a better programmer, i have no idea who and for what reason could possibly find it useful?
If you think i am overreacting and should continue reading, please tell me so, but i don't expect it to get better
It is important to know that these are books for computer scientists more than for software engineers. They are basically mathematics textbooks, about the mathematics of algorithms. They focus on proving theorems rather than implementing useful algorithms.
There is a book called concrete mathematics that is sort of an introduction to TAOCP. If you’re interested in the basics that may be a good place to start. It has a better title than TAOCP in that it explicitly mentions mathematics, but also an equally bad one because it’s very much theoretical rather than concrete.
He reads like an academic. This is a really interesting perspective; I’ve never thought anything of his writing because it’s what I’m used to from normal journals. There is a style, good or bad, that comes from this stuff.
TAOCP is a misleading title. It shouldn’t be computer programming. It should be computer science.
For most people, programming is the engineering discipline. I think that’s a very different art form. Software engineers are rarely dealing with the type of problems TAOCP is concerned about.