
ACM Classic Computer Science Books Series - adamnemecek
https://dl.acm.org/classics.cfm
======
eweitz
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)

~~~
nickpsecurity
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. :)

~~~
fizixer
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.

~~~
presty
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?

~~~
fizixer
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.

~~~
nickpsecurity
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.

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

------
guiomie
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...](http://www.amazon.com/Anatomy-McGraw-Hill-computer-science-
Hardcover/dp/B00YDJ7T3U/ref=sr_1_2?ie=UTF8&qid=1439747105&sr=8-2&keywords=Anatomy+of+LISP)

~~~
lispm
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...](http://www.amazon.com/Anatomy-Lisp-McGraw-Hill-computer-
science/dp/007001115X/ref=sr_1_1?s=books&ie=UTF8&qid=1439752522&sr=1-1&keywords=anatomy+of+lisp)

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

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

~~~
VLM
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.

