Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
ACM Classic Computer Science Books Series (acm.org)
96 points by adamnemecek on Aug 15, 2015 | hide | past | favorite | 19 comments


Several major classics are oddly omitted from that list:

- "The Art of Computer Programming" (TAOCP)

- "The C Programming Language" (K&R)

- "Structure and Interpretation of Computer Programs" (SICP)

- "Artificial Intelligence: A Modern Approach" (AIMA)


I agree and good ones. Bill Gates reportedly said he'd hire anyone who really got TAOCP volumes through and through. K&R is self-evident given dominant language. SICP is given it and LISP's contributions esp in academia. AIMA is only one debatable for field overall although I really enjoyed it and it's indisputably the landmark AI text. :)


I've heard that Bill Gates comment before but I recently bought the books and looked at random pages. I concluded that the kind of person you become after having gone through TAOCP, especially doing exercises and not just reading, you'd be way overqualified, to the point of being useless, for Microsoft or any other 'business-oriented' software company. Microsoft research might hire you, but, they have to look at your publications and you might need to have a PhD degree, so that's also a toss up.

Therefore, if you decide to go through TAOCP cover to cover, know that it's either for your own interest, and that you're willing to become academic/research minded instead of s/w-development minded. After that you might wanna join a PhD program (if you don't have it already) and do research or something.


The person that read TAOCP would have strong understanding, both theory and practice, of implementing algorithms for all sorts of stuff. They'd also be on a team that likely had people with more hands-on or business skill. The combination would make for more effective solutions. As presty pointed out, Microsoft does a lot of work on applications that require solid algorithms. They also have a research division that does cutting edge stuff. See VerveOS and SLAM driver verification below for examples of what they did with various tech they developed.

http://research.microsoft.com/pubs/122884/pldi117-yang.pdf

http://research.microsoft.com/en-us/projects/slam/

Microsoft Research in general http://research.microsoft.com/en-us/


are you really saying that from going through TAOCP someone would be overqualified and useless for working at a company that builds operating systems, dbms, programming languages, virtual machines and compilers?


In a way, yes. (I assume 'going through the book' includes doing exercises, not just reading).

Think of it this way. Is a PhD in combinatorics from the math department, with exposure to programming, the most suitable candidate for the job of building OS, DBMS, PL, VM, Compilers? I don't think so. If (s)he is interested in such a role, (s)he can definitely do a good job. But (s)he would have to be aware that roughly 90% of what (s)he learned and enjoyed while doing combinatorics research would not be relevant to the job. The hiring would depend on a combination of how much of that lifestyle (s)he is willing to give up for this job, as opposed to trying to find a tenure track faculty position where (s)he could continue pursuing research, and how much the software company thinks about the enthusiasm of the candidate (to switch from research to software development).

Going through TAOCP and doing exercises and learning relevant math is a close approximation to that, IMO. Keep in mind that a significant number of exercises in TAOCP are about proving theorems.


If Bill (a) has the position(s) and (b) says TAOCP master is best candidate, then yes the person is "the most suitable candidate" for whatever job he has in mind. The End.

Besides, I can teach anyone software development. Kids do it with Scratch, average people did it with BASIC in school, and lay business people used COBOL, Excel, and Visual Basic. I'm sure someone who can learn everything from algorithm optimization to assembler coding can handle C++ with some on-the-job learning. In all likelihood, they already were programming in various languages if they tried to get such a job.

Nonetheless, Bill says they're a good hire for stuff at Microsoft. That's where it went from "I wonder" to "Yes they are." No need to speculate.


Certainly there are non-"business" type software divisions in Microsoft that can use such people. Compilers, maybe?


That's plausible since TAoCP is a book about compilers...we just have to wait for chapter 12.


It's actually a book about algorithms, especially general ones. It has chapters on compilers or related areas (eg parsing). See here:

https://en.wikipedia.org/wiki/The_Art_of_Computer_Programmin...


Structured Programming, Michael Jackson.


The reason is also in the link

> This list of classic books is the result of a poll ACM conducted where members named their favorite computer science books.


But "Macintosh human interface guidelines" included !


What I find both fascinating and at least a little frustrating is that many recent advances in CS are retreads in concept (though not context) of 1970s work.

If this was the year 2050, what would you guys consider adding to the Classics? If it's not there, what do you think should be done? What's really fundamentally changed the way we think about computing? Is this even possible?

To give an example, for me, I think one thing that's worth having a more fundamental understanding of is the extent to which psychology influences the design space of programming languages. E.g, minimizing the amount of things to hold,in your mental stack already influences natural language, so why not PLs as well? We can then automatically design DSLs/GUIs for end users, select people you'd work well with based on how they conceptualize problems, solve the problem of teaching programming, etc.


In the list is "Anatomy of LISP" ... they go for around 800$ used on Amazon ... why?

http://www.amazon.com/Anatomy-McGraw-Hill-computer-science-H...


People are demanding crazy prices for some tech books. ANATOMY OF LISP is one of those. I've seen on Amazon $8000+ for a 'new' version. I wonder if that's real. There are some rare Lisp books which are often sold for high prices.

Note that it is available a bit cheaper, too:

http://www.amazon.com/Anatomy-Lisp-McGraw-Hill-computer-scie...

This particular book was always rare. It was basically the bible of ancient LISP implementation techniques (70s and earlier). Though, it did not use standard Lisp s-expressions for code, but an algebraic notation that's sometimes used in older books. Generally the content is of high quality. It was published in 1978. Generally if you wanted to know how to implement LISP way back then, you've surely looked at this book.

The book became less important in the 80s, when Lisp started to use lexical binding (Common Lisp in 1984), object-oriented subsystems (Flavors, CLOS), new machine architectures (Lisp Machines, RISC, parallel/concurrent systems, ...).


Hopefully in a few more years they add a few more books to that list, the 90s and 00s are over. Unfortunately it's hard to think of a particular book that should go into the series.

ACM is awesome.


Favorite = enjoyable, not the best textbook award, but the most fun in the sense of I wish I were sitting on the patio reading this book.

Classic = worth reading multiple times at multiple stages of your life and implies its a couple decades old.

The various anthologies of A. K. Dewdney of Computer Recreations columns from the 80s are still enjoyable very light reading. This brings up the issue of nostalgia, when I was a noob those were awesome noob books, today they're probably OK noob books, but maybe there are better current noob books. However in 2015 they are definitely very nostalgic and confuses the issue of favorite / current.

An example of nostalgia in the book selection is Ullman's older automata book (from '69) made the cut and its very nostalgic but personally I prefer Hopcroft Motwani and Ullman's "Introduction to automata theory, languages, computation" from about a decade ago. The new book probably isn't old enough to be a classic yet and the ancient one is probably there via nostalgia.

I think the "7 whatevers in 7 weeks" book series is light fun entertainment. I have no idea if the comparison/contrast style will hold entertainment value in 2035, so its hard to predict if the series will become a classic. Perhaps every IT/language book in 2035 will be comparison/contrast format, or perhaps that style will be considered hopelessly dated. Or beyond mere style issues, maybe people will never advance beyond fad of the month and neophilia.

A predictive list of '00 and '10 books that may become favorite classics in 2020s, 2030s is difficult but could be interesting.


Some proposals for newer classic books:

Thinking Forth (That's from the 80ies. Amazing that they left that out. ACM doesn't like Forth?) Hacker's delight The Art of Computer Systems Performance Analysis The practice of programming Code complete




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: