4 ms·
Everyone with a good computer science education should be able to digest his books. I know that around here college education is often derided as outdated, impr
by ht_th 11y ago
Everyone with a good computer science education should be able to digest his books. I know that around here college education is often derided as outdated, impractical, too costly (which is a USA-ian problem), or outright irrelevant, but what Knuth writes about ain't rocket science yet important for many a programmer to understand. He writes in a quite readable style about the fundamentals of programming and computer science theory that's relevant to that programming. I know most programmers mostly glue together prefab components into working systems that successfully serve millions, but if one wants to go beyond the surface, to ask why it all works the way it does, a good computer science education is an advantage.
- nmrm2 11y agoI would argue that anyone who can read and understand TAOCS in its entirety is extremely privileged. Even if the entire CS curriculum was just "Read TAOCS", only the most motivated and hard-working students would make it through. TAOCS is enormous and a lot of the content is dense; even if it is possible for anyone with a (good) CS degree to digest, finding the time to do so would constitute a significant life commitment/accomplishment. Probably above/beyond that of getting a degree. Even this single section within a single chapter could be used as the basis of an entire course.
- ht_th 11y agoI agree with you. It might make for an interesting course: the teacher develops instructional materials fitted for the class she's teaching, using Knuth's chapter as a reference and foundation, guiding and challenging students to dig deep on this topic. I'd like such a class, both as a teacher and a student, I think.
- nmrm2 11y agoI have thought a lot about this. The primary benefit of TAOCS is that it's self-contained and all written in the same voice/style. It's much higher quality than a lot of other texts on the subjects it covers, but a given chapter is not necessarily that best text for the given topic. It would be really cool if there were a "TAOCS" elective offered every single semester, just for the sake of fun. I would love to teach a course like that. I think it would work really well for e.g., an honors program ("to get honors in the major, one option is to enroll in this course for 4 consecutive semesters") More generally, I think the policy that courses should use TAOCS where a chaper exists for the topic at hand would certainly increase the quality of courses at non-top CS programs (certainly, it would have at mine). But in general, there are often texts that do a better job at covering a topic. E.g., this is a really interesting chapter, but I think there are probably better introductory texts on SAT (entirely subjective, of course). Which is to say, if I know the area well then I will probably not use TAOCS. But if I don't then TAOCS is a safe choice.
- anthony_d 11y agoI like your sentiment, but your "good computer science education" sounds a lot like a "true scotsman". A lot of the people I work with have BS's in CS and a lot don't. I haven't seen any correlation between a real in depth understanding of computer science and a CS degree. I agree programmers should be able to read and understand Knuth's books, but I don't think a CS degree is preparation. Would you think someone needs a CS degree if they already have a good understanding of the books? My complaint with college is that it seems to be mostly fluff. If you show up and pay the bills then you'll get your degree.
- RogerL 11y agoDefine 'need'. In college I learned, besides all the normal CS stuff: * writing * accounting * organizational psychology * small amounts of business stuff * lots of EE, digital and analog * how to read and write research papers * how to research * how to prove theorems (important if you are inventing your own) * linear algebra, calculus, stats and probability, discrete algebra * physics I-III, plus 1 semester of experimental physics * chemistry (I,II, no organic) * a bit of philosophy * circuit design * numerical computation It would be a Herculean task to take all that up in your spare time to the level I did at school (I still learn on my own time, so you have to catch up not just with what I did at school, but everything afterwards). It's 4+ years of opportunity to bump against really good minds. I went to professors and said "I want to learn x". (think of the course catalog as a suggestion!) That got me, among other things a co-authorship with a professor on an academic book. All of that has been relevant to my career except for the chemistry. Even with that, my first job could have used it if I had stuck around more, and it is useful to know if you want to be scientifically literate. Or, you know, you can punch your time cards, do the bare minimum, and graduate with a pretty useless certificate. College as voc tech to learn to manipulate the LAMP stack is probably a poor choice of time. If you want to be able to take a job to compute cancer statistics, program robots, build digital interface cards, perform computer vision, simulate the ocean, write aircraft wing simulations, model and research traffic flow, work on medical devices, you almost certainly need more then votech and/or self learning, IMO. I've done most in that list professionally, and friends of mine have done the rest (no rockets in that list, but I was offered a job to do that, turned it down). There are multiple paths to life, but the chance to just think and learn for awhile is pretty incredible if you can afford it.
- codeshaman 11y agoMaybe I've exaggerated and downplayed my ability a bit for more drama. Of course I could digest the books if I absolutely wanted or needed to. But probably I won't need to, because others have done it already and have implemented those ideas efficiently enough that I can just use their work. There are a lot more problems that need to be solved at higher levels these days and many of them aren't even in computer science. That's were I spend most of my research time - the coding/cs stuff is easy now. The point I was trying to make was that Knuth is one of the granddaddies of this whole reality that we populate and that was my attempt to express my gratitude. I'm infinitely curious about everything, but at some point in life you realise that you can't go too deep in all directions, because it's a fractal of knowledge out there, so some things you just have to trust to be true and move towards new grounds.
- McUsr 11y agoAnd if you don't be sure to have at least a good book on discrete mathematics handy.