Essential Books of Computer Science

Great books for computer scientists!
1

by
4.35 avg rating — 9,247 ratings
Rate this book
Clear rating
2

by
4.47 avg rating — 4,829 ratings
Rate this book
Clear rating
3

by
4.44 avg rating — 11,196 ratings
Rate this book
Clear rating
4

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

by
4.20 avg rating — 11,849 ratings
Rate this book
Clear rating
6

by
4.33 avg rating — 23,624 ratings
Rate this book
Clear rating
7

by
4.24 avg rating — 2,094 ratings
Rate this book
Clear rating
8

by
4.45 avg rating — 40 ratings
Rate this book
Clear rating
9

by
4.40 avg rating — 10,387 ratings
Rate this book
Clear rating
10

by
4.01 avg rating — 14,901 ratings
Rate this book
Clear rating
11

by
4.20 avg rating — 4,400 ratings
Rate this book
Clear rating
12

by
4.30 avg rating — 9,442 ratings
Rate this book
Clear rating
13

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

by
4.42 avg rating — 1,813 ratings
Rate this book
Clear rating
15

by
4.10 avg rating — 3,007 ratings
Rate this book
Clear rating
16

by
4.06 avg rating — 668 ratings
Rate this book
Clear rating
17

by
4.34 avg rating — 1,721 ratings
Rate this book
Clear rating
18

by
4.34 avg rating — 1,857 ratings
Rate this book
Clear rating
19

by
4.34 avg rating — 2,672 ratings
Rate this book
Clear rating
20

by
4.31 avg rating — 2,370 ratings
Rate this book
Clear rating
21

by
4.46 avg rating — 1,115 ratings
Rate this book
Clear rating
22

by
4.22 avg rating — 181 ratings
Rate this book
Clear rating
23

by
4.29 avg rating — 1,978 ratings
Rate this book
Clear rating
24

by
4.20 avg rating — 3,212 ratings
Rate this book
Clear rating
25

by
4.04 avg rating — 3,335 ratings
Rate this book
Clear rating
26

by
4.54 avg rating — 937 ratings
Rate this book
Clear rating
27

by
4.36 avg rating — 23,076 ratings
Rate this book
Clear rating
28

by
4.20 avg rating — 1,136 ratings
Rate this book
Clear rating
29

by
4.07 avg rating — 602 ratings
Rate this book
Clear rating
30

by
4.13 avg rating — 3,376 ratings
Rate this book
Clear rating
31

by
4.18 avg rating — 40 ratings
Rate this book
Clear rating
32

by
4.24 avg rating — 1,309 ratings
Rate this book
Clear rating
33

by
4.38 avg rating — 1,886 ratings
Rate this book
Clear rating
34

by
4.21 avg rating — 2,133 ratings
Rate this book
Clear rating
35

by
4.25 avg rating — 474 ratings
Rate this book
Clear rating
36

by
4.36 avg rating — 22 ratings
Rate this book
Clear rating
36

by
4.13 avg rating — 224 ratings
Rate this book
Clear rating
38

by
4.03 avg rating — 40,407 ratings
Rate this book
Clear rating
39

by
4.23 avg rating — 39 ratings
Rate this book
Clear rating
40

by
4.13 avg rating — 7,552 ratings
Rate this book
Clear rating
41

by
4.24 avg rating — 8,781 ratings
Rate this book
Clear rating
42

by
4.17 avg rating — 3,380 ratings
Rate this book
Clear rating
43

by
4.04 avg rating — 586 ratings
Rate this book
Clear rating
44

by
4.30 avg rating — 102 ratings
Rate this book
Clear rating
45

by
3.76 avg rating — 556 ratings
Rate this book
Clear rating
46

by
3.92 avg rating — 373 ratings
Rate this book
Clear rating
47

by
4.23 avg rating — 1,277 ratings
Rate this book
Clear rating
48

by
3.84 avg rating — 32 ratings
Rate this book
Clear rating
49

by
4.29 avg rating — 7 ratings
Rate this book
Clear rating
50

by
4.71 avg rating — 760 ratings
Rate this book
Clear rating
51

by
4.17 avg rating — 648 ratings
Rate this book
Clear rating
52

by
4.30 avg rating — 28,610 ratings
Rate this book
Clear rating
53

by
3.91 avg rating — 11 ratings
Rate this book
Clear rating
54

by
3.90 avg rating — 142 ratings
Rate this book
Clear rating
55

by
4.13 avg rating — 165 ratings
Rate this book
Clear rating
56

by
4.17 avg rating — 18 ratings
Rate this book
Clear rating
57

by
3.98 avg rating — 777 ratings
Rate this book
Clear rating
58

by
3.84 avg rating — 1,781 ratings
Rate this book
Clear rating
59

by
4.07 avg rating — 3,264 ratings
Rate this book
Clear rating
60

by
3.94 avg rating — 5,203 ratings
Rate this book
Clear rating
61

by
4.18 avg rating — 931 ratings
Rate this book
Clear rating
62

by
4.70 avg rating — 10,101 ratings
Rate this book
Clear rating
63

by
4.27 avg rating — 1,156 ratings
Rate this book
Clear rating
64

by
3.92 avg rating — 118 ratings
Rate this book
Clear rating
65

by
3.81 avg rating — 133 ratings
Rate this book
Clear rating
65

by
4.23 avg rating — 13 ratings
Rate this book
Clear rating
65

by
really liked it 4.00 avg rating — 6 ratings
Rate this book
Clear rating
65

by
3.90 avg rating — 1,183 ratings
Rate this book
Clear rating
65

by
4.18 avg rating — 311 ratings
Rate this book
Clear rating
70

by
4.19 avg rating — 53 ratings
Rate this book
Clear rating
71

by
3.43 avg rating — 7 ratings
Rate this book
Clear rating
72

by
4.25 avg rating — 488 ratings
Rate this book
Clear rating
73

by
3.99 avg rating — 836 ratings
Rate this book
Clear rating
74

by
4.02 avg rating — 1,694 ratings
Rate this book
Clear rating
75

by
4.15 avg rating — 2,830 ratings
Rate this book
Clear rating
75

by
4.01 avg rating — 7,430 ratings
Rate this book
Clear rating
77

by
3.96 avg rating — 1,218 ratings
Rate this book
Clear rating
78

by
really liked it 4.00 avg rating — 174 ratings
Rate this book
Clear rating
79

by
4.39 avg rating — 57 ratings
Rate this book
Clear rating
80

by
4.33 avg rating — 6,887 ratings
Rate this book
Clear rating
81

by
4.15 avg rating — 264 ratings
Rate this book
Clear rating
81

by
3.89 avg rating — 1,530 ratings
Rate this book
Clear rating
83

by
4.14 avg rating — 669 ratings
Rate this book
Clear rating
83

by
4.30 avg rating — 649 ratings
Rate this book
Clear rating
83

by
3.97 avg rating — 1,690 ratings
Rate this book
Clear rating
86

by
4.15 avg rating — 2,180 ratings
Rate this book
Clear rating
87

by
3.69 avg rating — 16 ratings
Rate this book
Clear rating
88

by
4.01 avg rating — 1,616 ratings
Rate this book
Clear rating
88

by
3.83 avg rating — 23 ratings
Rate this book
Clear rating
88

by
liked it 3.00 avg rating — 6 ratings
Rate this book
Clear rating
91

by
3.81 avg rating — 16 ratings
Rate this book
Clear rating
92

by
4.51 avg rating — 840 ratings
Rate this book
Clear rating
93

by
3.88 avg rating — 105 ratings
Rate this book
Clear rating
94

by
4.22 avg rating — 2,944 ratings
Rate this book
Clear rating
95

by
4.04 avg rating — 1,843 ratings
Rate this book
Clear rating
96

by
4.10 avg rating — 244 ratings
Rate this book
Clear rating
97

by
4.47 avg rating — 4,829 ratings
Rate this book
Clear rating
98

by
3.86 avg rating — 4,220 ratings
Rate this book
Clear rating
99

by
3.94 avg rating — 2,828 ratings
Rate this book
Clear rating
100

by
4.03 avg rating — 1,537 ratings
Rate this book
Clear rating
200 books · 306 voters · list created June 10th, 2009 by Darklight (votes) .
Tags: computer, science
673 likes · 
Lists are re-scored approximately every 5 minutes.


Darklight 65 books
2 friends
Michael 709 books
286 friends
Nick 2654 books
467 friends
Stephan 0 books
1 friend
Xiachenfeng 21 books
0 friends
Andreas 20 books
2 friends
Kristjan 3851 books
562 friends
sepans 158 books
55 friends

More voters…


Comments Showing 1-4 of 4 (4 new)

dateUp 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

The temperatures are dropping, the days are getting shorter, and the fall book season is nearly upon us. (If you’re reading from the southern...

Anyone can add books to this list.