Hacker News new | past | comments | ask | show | jobs | submit login
News.YC Library
32 points by bmaier on Aug 22, 2007 | hide | past | favorite | 31 comments
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.

Looking for books and also free online material. Any topic from strict programming texts to more abstract works.

I'll start:

Church-Turing Thesis: http://plato.stanford.edu/entries/church-turing/




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

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.


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


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


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


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


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


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


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

Hey, you never know. Tapes have only been truly obsolete for a few years now, for sufficiently large amounts of data. If you're Walmart's DBA and already have millions invested in hardware, those algorithms could come in handy :-).


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


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


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.


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.


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



Godel Escher Bach, by Hosfstadter


An absolutely wonderful book, if you haven't read it then get it now!


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


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.


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



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


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


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.


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


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


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.


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



How to Win Friends and Influence People


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.





Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: