News.YC Library
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/
31 comments
[ 3.9 ms ] story [ 65.6 ms ] threadhttp://norvig.com/paip.html
http://mitpress.mit.edu/sicp/full-text/book/book.html
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
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.
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 :-).
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.
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.
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.
language agnostic books: http://programming.reddit.com/info/1y0ux/comments
language specific books: http://programming.reddit.com/info/1y9cj/comments
http://www.amazon.com/Domain-Driven-Design-Tackling-Complexi...
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.
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.
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
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 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.
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