

News.YC Library - bmaier

Piggybacking on the recent Where to Start Programming and Hacker School Threads... What texts and works do you feel are essential and should be a part of every hackers library.  <p>Looking for books and also free online material. Any topic from strict programming texts to more abstract works.<p>I'll start: <p>Church-Turing Thesis: <a href="http://plato.stanford.edu/entries/church-turing/" rel="nofollow">http://plato.stanford.edu/entries/church-turing/</a> 
======
bluishgreen
For my 2 cents these are books I read in the past year and was very impressed
with the clarity of the presentation.

Theory of Computing. Michael Sipser.

Introduction to Algorithms, by T. H. Corman, C. E. Leiserson, and R. L. Rivest

How to design programs [http://www.htdp.org/2003-09-26/Book/curriculum-
Z-H-1.html#no...](http://www.htdp.org/2003-09-26/Book/curriculum-
Z-H-1.html#node_toc_start)

I think I will add something that I am interested in, it is not of interest to
programmers, but heck, we are hackers!

All the Math you missed: Thomas A Garrity

Mathematics: Form and function. Mac Lane.

These are the first 2 books I would buy if I am interested in math and want to
know more. These books are simply index books. They go over the land mark
concepts in mathematics along with the key theorems and how they evolved in
the historical context. You will be surpriced at how obvious things took years
for people to learn and will come to appreciate the value of mathematical
knowledge.

The algorithm will be like this: You want to know about some field of
mathematics. Say Differential geometry. You can consult the sections on both
these books. Will take you about 3 full days. And then go ahead and read the
list of suggested books. This is the real gold mine of both these books., they
suggest the best books for all of the sub-fields of math. Besides they really
list the key theorems in a few pages with proof sketches and this is like a
map for you. You can follow the map to exactly where you want. This sort of
idea, you will get only after studying that field for say a year. And these
books just give it to you right away.

I think we need a continuous thread for this sort of book suggestion, reviews
etc.

~~~
far33d
Sipser and CLR are Classics. Absolute Necessities. Don't trust anyone who
"studied CS" and doesn't know of these books.

------
dfranke
In no particular order:

The Art of Computer Programming, by Knuth

Compilers: Principles, Techniques, and Tools by Aho, Sethi, and Ullman (the
dragon book)

Structure & Interpretation of Computer Programs, by Abelson and Sussman

On Lisp, by Graham

A First Course in Database Systems, by Ullman and Widom

The C Programming Language, by Kernighan and Ritchie

The Cathedral and the Bazaar, by Raymond

~~~
jey
> _The Art of Computer Programming, by Knuth_

Too dense and theoretical, even for someone who enjoys it. Introduction to
Algorithms by Cormen, Leiserston, Rivest and Stein is more understandable and
practical. It does cover everything useful and is thorough, it just isn't
pedantic. [1] <http://tinyurl.com/yr257c>

> _Compilers: Principles, Techniques, and Tools by Aho, Sethi, and Ullman (the
> dragon book)_

 _Maybe_. You might want to try Engineering a Compiler by Cooper and Torczon
instead. Again, it's more practical/useful/interesting. But if you're dying to
write a parser generator, go ahead and read the Dragon Book.
<http://tinyurl.com/ys3ql7>

> _Structure & Interpretation of Computer Programs, by Abelson and Sussman_

Available for free: <http://mitpress.mit.edu/sicp/full-text/book/book.html>

Dunno about the databases book, but the rest are also good.

1\. Unless you really, really need those tape sorting algorithms.

~~~
jmzachary
>> The Art of Computer Programming, by Knuth > Too dense and theoretical, even
for someone who enjoys it. Introduction to Algorithms by Cormen, Leiserston,
Rivest and Stein is more understandable and practical. It does cover
everything useful and is thorough, it just isn't pedantic.

I completely agree. I own three volumnes of TACP and have very rarely used
them. They look good and give instant programmer cred when you utter their
titles, but they just haven't proven that useful to me. CLRS, however, is a
staple on my programming bookshelf and is well worn.

I'll add Programming Pearls and The Mythical Man-Month to the list that is
already growing. Both of those books have given me really good insights over
the years.

~~~
dfranke
> I own three volumnes of TACP and have very rarely used them. They look good
> and give instant programmer cred when you utter their titles, but they just
> haven't proven that useful to me.

Much of TAoCP is simply worth reading straight-through. I don't use it as a
reference all that often either, but when I do, it has never let me down.

~~~
snifty
I find it sort of weird to talk about these books as if they were O'Reilly
titles or something; they're not meant to be "used" so much as studied
(slowly!).

------
euccastro
Most programming books I'd recommend have been repeated a lot recently in
news.yc, so I'll add a couple good ones on usability:

The (Psychology|Design) of Everyday Things, by Donald Norman (it comes under
both titles; 'Psychology' is an older edition.)

Don't Make me Think, by Steve Krug

And a timeless one on writing:

The Elements of Style, by Strunk and White

------
tim
free computer science video lectures:
<http://www.lecturefox.com/computerscience>

The first on the list is great: Dr. Garcia presents the outstanding computer
science lecture Machine Structures (C, Assembly, CPU design...) at the
University of California Berkeley.

------
pramodbiligiri
The Art of Unix Programming by Eric Raymond:
<http://www.catb.org/~esr/writings/taoup/html/>

------
omouse
_Snow Crash_ , _Cryptonmicon_. Both are by Neal Stephenson.

Another pair of good fiction novels are _Plowing the Dark_ and _Galatea 2.2_
by Richard Powers.

Sometimes you need good fiction to inspire you.

~~~
jmzachary
I like The Mysterious Island by Jules Verne for startup/hacking inspiration.

------
Autre
Kernighan & Ritchie, The ANSI C Programming Language

Kernighan & Pike, The UNIX Programming Environment

Kernighan & Pike, The Practice Of Programming (Really, anything written by
Kernighan is pure joy, even a man page)

Jon Bentley, Programming Pearls

Papadimitriou &Lewis, Elements of the theory of computation

------
Goladus
<http://www.paulgraham.com/onlisp.html>

<http://norvig.com/paip.html>

<http://mitpress.mit.edu/sicp/full-text/book/book.html>

------
Jd
From reddit:

language agnostic books: <http://programming.reddit.com/info/1y0ux/comments>

language specific books: <http://programming.reddit.com/info/1y9cj/comments>

------
davidw
All the suggested computer books are pretty good, but you'll bump into those
sooner or later if you're looking. You can't avoid them.

What' I'd recommend, in addition to those, are some mind-broadening books that
give you some ideas about other disciplines. I'm particularly interested in
economics, because that's very important for understanding the whys and hows
of the market. If you just want one recommendation, "Information Rules" is a
good one.

I summarized a bunch of books I like here:

<http://www.squeezedbooks.com>

In particular, others that I would recommend:

\- Crossing the Chasm

\- In Search of Stupidity: Over Twenty Years of High Tech Marketing Disasters

\- The Innovator's Dilemma

~~~
Goladus
If you're reading this site, you'll probably bump into them. You average
microsoft or java guy may not, though. He may only have been exposed to
whatever books his college used for algorithms, computation, etc.

------
pretzel
Godel Escher Bach, by Hosfstadter

~~~
Keios
Good book, it should be in everyone's library but it won't help you learn
about hacking.

~~~
pretzel
I would argue that it does. The talks about holism vs reductionism, the
introduction to programming with in it, extending to writing programs that
write themselves and other strange loops are all very relevant.

Perhaps most relevant of all is learning how such varied fields relate. It's
all very well being a hacker, but working out how hacking is a general thing
not specific to computers is quite edifying. Learning how the tenents of the
hacker are seen in religion, philosophy and art as well as science is quite
profound.

~~~
Keios
You can stretch this line of thought to any though provoking book.

------
herdrick
The Little Schemer and its sequel, The Seasoned Schemer. Both have excellent
shelf space (or weight) to enlightenment ratios.

~~~
dfranke
I also recommend the Reasoned Schemer if you're a schemer trying to grok
Prolog.

~~~
herdrick
Yeah, I've heard that's good. Is the Mini-Kanren thing you build a useful
constraint logic programming language to use from within your Scheme programs?
Sometimes CLP is exactly what you need; it'd be great to have it at the ready.

------
dawie
The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David
Thomas

------
palish
Domain Driven Design

[http://www.amazon.com/Domain-Driven-Design-Tackling-
Complexi...](http://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-
Software/dp/0321125215)

------
mattmaroon
How to Win Friends and Influence People

------
RevolutionsEnd
I would recommend The Programmer's Stone on www.reciprocality.org . While not
a very standard book with many factually disputed points, its a book that
really made me think about the art and essence of computer programing.

------
jcwentz
The Lambda Papers: <http://library.readscheme.org/page1.html>

