Essential Books of Computer Science

Great books for computer scientists!
1

by
4.33 avg rating — 7,646 ratings
Rate this book
Clear rating
2

by
4.46 avg rating — 4,130 ratings
Rate this book
Clear rating
3

by
4.42 avg rating — 9,080 ratings
Rate this book
Clear rating
4

by
4.50 avg rating — 719 ratings
Rate this book
Clear rating
5

by
4.32 avg rating — 15,332 ratings
Rate this book
Clear rating
6

by
4.18 avg rating — 9,711 ratings
Rate this book
Clear rating
7

by
4.40 avg rating — 6,581 ratings
Rate this book
Clear rating
8

by
4.22 avg rating — 1,773 ratings
Rate this book
Clear rating
9

by
4.04 avg rating — 11,081 ratings
Rate this book
Clear rating
10

by
4.17 avg rating — 3,670 ratings
Rate this book
Clear rating
11

by
4.29 avg rating — 8,305 ratings
Rate this book
Clear rating
12

by
4.30 avg rating — 1,217 ratings
Rate this book
Clear rating
13

by
4.32 avg rating — 1,597 ratings
Rate this book
Clear rating
14

by
4.08 avg rating — 2,769 ratings
Rate this book
Clear rating
15

by
4.02 avg rating — 604 ratings
Rate this book
Clear rating
16

by
4.41 avg rating — 1,414 ratings
Rate this book
Clear rating
17

by
4.31 avg rating — 2,061 ratings
Rate this book
Clear rating
18

by
4.34 avg rating — 2,265 ratings
Rate this book
Clear rating
19

by
4.25 avg rating — 163 ratings
Rate this book
Clear rating
20

by
4.33 avg rating — 1,748 ratings
Rate this book
Clear rating
21

by
4.43 avg rating — 769 ratings
Rate this book
Clear rating
22

by
4.11 avg rating — 3,170 ratings
Rate this book
Clear rating
22

by
4.54 avg rating — 652 ratings
Rate this book
Clear rating
24

by
4.03 avg rating — 3,080 ratings
Rate this book
Clear rating
25

by
4.21 avg rating — 1,088 ratings
Rate this book
Clear rating
26

by
4.20 avg rating — 3,000 ratings
Rate this book
Clear rating
27

by
4.20 avg rating — 2,030 ratings
Rate this book
Clear rating
28

by
4.11 avg rating — 515 ratings
Rate this book
Clear rating
29

by
4.15 avg rating — 190 ratings
Rate this book
Clear rating
30

by
4.15 avg rating — 4,906 ratings
Rate this book
Clear rating
31

by
4.33 avg rating — 36 ratings
Rate this book
Clear rating
32

by
4.28 avg rating — 1,812 ratings
Rate this book
Clear rating
33

by
4.24 avg rating — 6,814 ratings
Rate this book
Clear rating
34

by
3.76 avg rating — 458 ratings
Rate this book
Clear rating
35

by
4.39 avg rating — 18 ratings
Rate this book
Clear rating
36

by
3.94 avg rating — 344 ratings
Rate this book
Clear rating
37

by
4.01 avg rating — 30,680 ratings
Rate this book
Clear rating
38

by
3.94 avg rating — 4,520 ratings
Rate this book
Clear rating
39

by
4.24 avg rating — 1,237 ratings
Rate this book
Clear rating
40

by
4.23 avg rating — 390 ratings
Rate this book
Clear rating
41

by
4.24 avg rating — 846 ratings
Rate this book
Clear rating
42

by
3.83 avg rating — 6 ratings
Rate this book
Clear rating
43

by
3.96 avg rating — 481 ratings
Rate this book
Clear rating
44

by
4.27 avg rating — 91 ratings
Rate this book
Clear rating
44

by
4.21 avg rating — 1,112 ratings
Rate this book
Clear rating
46

by
4.04 avg rating — 127 ratings
Rate this book
Clear rating
47

by
3.96 avg rating — 23 ratings
Rate this book
Clear rating
48

by
4.58 avg rating — 12 ratings
Rate this book
Clear rating
49

by
3.97 avg rating — 667 ratings
Rate this book
Clear rating
50

by
4.18 avg rating — 803 ratings
Rate this book
Clear rating
51

by
4.14 avg rating — 540 ratings
Rate this book
Clear rating
52

by
4.16 avg rating — 2,656 ratings
Rate this book
Clear rating
52

by
4.37 avg rating — 1,709 ratings
Rate this book
Clear rating
52

by
4.29 avg rating — 21,072 ratings
Rate this book
Clear rating
55

by
3.86 avg rating — 132 ratings
Rate this book
Clear rating
56

by
3.85 avg rating — 117 ratings
Rate this book
Clear rating
56

by
4.40 avg rating — 10 ratings
Rate this book
Clear rating
56

by
4.25 avg rating — 4 ratings
Rate this book
Clear rating
56

by
3.90 avg rating — 1,080 ratings
Rate this book
Clear rating
60

by
4.13 avg rating — 47 ratings
Rate this book
Clear rating
61

by
4.33 avg rating — 6 ratings
Rate this book
Clear rating
62

by
3.85 avg rating — 1,606 ratings
Rate this book
Clear rating
63

by
4.02 avg rating — 2,573 ratings
Rate this book
Clear rating
64

by
4.13 avg rating — 2,538 ratings
Rate this book
Clear rating
65

by
4.17 avg rating — 121 ratings
Rate this book
Clear rating
65

by
4.40 avg rating — 14,533 ratings
Rate this book
Clear rating
67

by
4.50 avg rating — 50 ratings
Rate this book
Clear rating
67

by
4.72 avg rating — 3,079 ratings
Rate this book
Clear rating
69

by
4.68 avg rating — 228 ratings
Rate this book
Clear rating
70

by
4.25 avg rating — 475 ratings
Rate this book
Clear rating
71

by
4.02 avg rating — 1,133 ratings
Rate this book
Clear rating
71

by
3.90 avg rating — 103 ratings
Rate this book
Clear rating
71

by
3.78 avg rating — 18 ratings
Rate this book
Clear rating
71

by
liked it 3.00 avg rating — 4 ratings
Rate this book
Clear rating
75

by
3.93 avg rating — 15 ratings
Rate this book
Clear rating
76

by
4.16 avg rating — 285 ratings
Rate this book
Clear rating
77

by
3.87 avg rating — 101 ratings
Rate this book
Clear rating
78

by
4.21 avg rating — 290 ratings
Rate this book
Clear rating
78

by
4.20 avg rating — 2,598 ratings
Rate this book
Clear rating
80

by
3.99 avg rating — 783 ratings
Rate this book
Clear rating
81

by
3.83 avg rating — 3,772 ratings
Rate this book
Clear rating
82

by
4.02 avg rating — 1,458 ratings
Rate this book
Clear rating
83

by
4.14 avg rating — 4,861 ratings
Rate this book
Clear rating
84

by
3.97 avg rating — 669 ratings
Rate this book
Clear rating
85

by
3.95 avg rating — 2,555 ratings
Rate this book
Clear rating
86

by
4.12 avg rating — 228 ratings
Rate this book
Clear rating
86

by
3.67 avg rating — 3 ratings
Rate this book
Clear rating
86

by
4.16 avg rating — 623 ratings
Rate this book
Clear rating
86

by
3.85 avg rating — 13 ratings
Rate this book
Clear rating
86

by
4.35 avg rating — 5,023 ratings
Rate this book
Clear rating
86

by
4.11 avg rating — 1,838 ratings
Rate this book
Clear rating
86

by
it was amazing 5.00 avg rating — 1 rating
Rate this book
Clear rating
86

by
4.04 avg rating — 583 ratings
Rate this book
Clear rating
86

by
4.44 avg rating — 301 ratings
Rate this book
Clear rating
86

by
4.67 avg rating — 12 ratings
Rate this book
Clear rating
86

by
4.31 avg rating — 757 ratings
Rate this book
Clear rating
86

by
3.80 avg rating — 5 ratings
Rate this book
Clear rating
86

by
4.78 avg rating — 212 ratings
Rate this book
Clear rating
99

by
4.33 avg rating — 3 ratings
Rate this book
Clear rating
100

by
3.82 avg rating — 61 ratings
Rate this book
Clear rating
flag this list (?)
174 books · 243 voters · list created June 10th, 2009 by Darklight (votes) .
Tags: computer, science
554 likes · 
Lists are re-scored approximately every 5 minutes.


Darklight 65 books
2 friends
Michael 652 books
289 friends
Nick 2304 books
420 friends
Stephan 0 books
1 friend
Xiachenfeng 21 books
0 friends
Andreas 19 books
2 friends
Kristjan 3556 books
548 friends
Sepand 106 books
53 friends

More voters…


Comments Showing 1-4 of 4 (4 new)

dateDown arrow    newest »

message 1: by Nick (new)

Nick Black Hrmmm there's a few reasons why this quiz made me unhappy:

(a) you need a basic theory book, but Sipser's not necessarily better than Hopcroft/Ullman, and certainly less complete regarding automata and languages. anyone hoping to be less more than a theory tyro needs at least Computers and Intractability, Approximation Algorithms, Randomized Algorithms and a satchel's worth of math books

(b) I have to list APIUE because I felt we needed an operating systems book, but also a practicum, and also something on design; a thorough study of APIUE provides all 3, and also one of the most useful reference books around. but it feels a bit applied for this list.

(c) since you're trying to minimize your votes (so as not to list overly many), there's an emphasis on broad coverage (ie this felt more like "5-7 computer science books to bring to a desert island surrounded by a faraday cage and anechoic wall") -- hence the mandatory inclusion of Knuth and Leon-Garcia (Knuth covers algorithms broadly enough by himself to free up a CLR-ish slot, and you have to know something about networks or you won't be able to piss in modern buildings, let alone write code)

but what about...language design and lambda calculus? the former's too diverse. regarding the latter, only one book could possibly deserve the nod (Barendregt's The Lambda Calculus), but i doubt 5 people worldwide read the fucker in a given Year of our LORD.

what about architecture? hell, the single most important things any systems programmer will need to know for the next twenty years are:

- power wall and thus multi/many-core
- memory subsystems aka Keep your Willy in your Pants and your Data in your Cache

hell, the first question i ask almost every interviewee is "here is a data structure. optimize it for cache, which will be parameterized to you thusly". if they don't get that, they're shown the door.

what about GUIs and databases? well, frankly, GUIs nauseate me and databases are for accountants, the DMV and the sex offenders' office, certainly not elite coders (writing databases is something else entirely). so fuck 'em.

computer graphics ought just be called "graphics math" to cut down on confusion. books about triangles are beyond the scope of this enumeration, unless it's computational geometry for integer programming problems and loop optimization in compilers. numerical computing's the same kinda deal, just harder.


message 2: by Nick (new)

Nick Black Nick wrote: "Hrmmm there's a few reasons why this quiz made me unhappy:

(a) you need a basic theory book, but Sipser's not necessarily better than Hopcroft/Ullman, and certainly less complete regarding automat..."


also: "Artificial Intelligence, a Modern Approach"? ummm, how about a 2 page handout on game trees, A* search and SVM's?



message 3: by Michael (new)

Michael Economy :D

databases are for accountants, the DMV and the sex offenders' office, certainly not elite coders GASP! relational databases are the backbone of nearly all dynamic websites! (it is true however that if you're using one, you definitely not doing any elite coding).


I feel like only 1 programmer in 100 can write efficient code these days. In the last 4 years, despite hardware getting faster, the same programs are running slower than they did and people are doing much less (computationally) than they used to with more powerful machines.


message 4: by Nick (last edited Jul 16, 2009 01:38PM) (new)

Nick Black GASP! relational databases are the backbone

A story: My junior year, I took the intro to databases class at GT (CS4400), because they canceled my fucking graduate automata theory class in developments that can ultimately be traced back to the introduction of GUIs and people no longer a new assembly language every few years (in a Cormac McCarthy-like future, this will all change, and we'll also get to eat people). In one of those passive-aggressive bits of responsible behavior that so pockmarked my undergraduate career, I didn't bother attending until the first test. This wasn't so irregular as it was SOP -- what for textbooks, after all, if not autodidactically-freed time to explore massive SGI machines from the underwear-beclad comfort of one's weedful dorm?

Problem was, I'd forgotten to purchase the book, and knew no one in my class...it was an unpleasant night indeed, studying random things about databases, SQL, etc via undirected google searches. I entered with trepidation.

30 questions, multiple-choice (wtf? only CS class I can remember with multiple-choice) on the relational algebra. I read it through, not really knowing any terms, thinking I'll probably just drop the class...but as it turned out, assuming logical coherency in the questions and answers, there was only one likely, consistent assignment of semantics. I quickly reverse-engineered the selections, the projections, the joins and the closures, marked down my answers, and triumphantly departed for a nice Chianti and some fava beans.

Saying this list needs a databases book is like saying it needs a book on predicate calculus, which is like saying it needs a book on real analysis, which is like saying it needs The Elements of Programming and that rather than CS degrees we all ought get math degrees (one ought, of course, get both). Taken the other direction, it's like saying we need a book on scrotumtightening perl and a lab practicum with Windows NT.

What were we talking about? Sorry, I rant in my old age.

of nearly all dynamic websites!

I must admit to never having worked on a "dynamic website"; if I were to build such a thing, I'd almost certainly do it as a C apache module, and initiate the project by rewriting apache =D. Just for fun, from an old classic:
Where does the typical Real Programmer work? What kind of programs are worthy of the efforts of so talented an individual? You can be sure that no Real Programmer would be caught dead writing accounts-receivable programs in COBOL, or sorting mailing lists for People magazine. A Real Programmer wants tasks of earth-shaking importance (literally!).

* Real Programmers work for Los Alamos National Laboratory, writing atomic bomb simulations to run on Cray I supercomputers.

* Real Programmers work for the National Security Agency, decoding Russian transmissions.

* It was largely due to the efforts of thousands of Real Programmers working for NASA that our boys got to the moon and back before the Russkies.

* The computers in the Space Shuttle were programmed by Real Programmers.

* Real Programmers are at work for Boeing designing the operation systems for cruise missiles.

Some of the most awesome Real Programmers of all work at the Jet Propulsion Laboratory in California. Many of them know the entire operating system of the Pioneer and Voyager spacecraft by heart. With a combination of large ground-based Fortran programs and small spacecraft-based assembly language programs, they are able to do incredible feats of navigation and improvisation-- hitting ten-kilometer wide windows at Saturn after six years in space, repairing or bypassing damaged sensor platforms, radios, and batteries. Allegedly, one Real Programmer managed to tuck a pattern matching program into a few hundred bytes of unused memory in a Voyager spacecraft that searched for, located, and photographed a new moon of Jupiter.

The current plan for the Galileo spacecraft is to use a gravity assist trajectory past Mars on the way to Jupiter. This trajectory passes within 80 +/- 3 kilometers of the surface of Mars. Nobody is going to trust a Pascal program (or Pascal programmer) for navigation to these tolerances.


I feel like only 1 programmer in 100 can write efficient code these days. In the last 4 years, despite hardware getting faster, the same programs are running slower than they did and people are doing much less (computationally) than they used to with more powerful machines.

It's a damn shame. Then again, for that lucky 1%, you're now able to accomplish things you couldn't dream of 10 years ago -- combinatorial stuff like protein folding and tilings, thermonuclear simulations at the particle level in six degrees of freedom, moving around 10Gbps of Ethernet on COTS, supporting hundreds of unimaginably bloated ruby/php processes in just a few gigabytes of RAM LOL.... =D

Check out Network Algorithmics: The Design of Fast Network Devices and Hacker's Delight. Hackin' ain't dead punk fuckin' rock!

you're alright, MICHAEL


back to top



Related News

For more than a decade, Neil deGrasse Tyson, the world-renowned astrophysicist and host of the popular radio and Emmy-nominated televi...

Anyone can add books to this list.