Ask HN: If you would have to choose one book what would it be?
There are many wonderful programming books that I would like to read and understand. Here are some examples:
* PAIP (Paradigms of artificial intelligence programming) * SICP (I read this but didn't complete ALL the exercises) * TAOCP * Others?
The problem is that each of these books would take me months to go through, but that's ok for me because I know that the benefits are enormous.
My question is: which one would you study first? Are there any other books that I should read first? My goals with programming is to create web and desktop (mac, iphone) apps if that's relevant.
12 comments
[ 3.8 ms ] story [ 36.6 ms ] threadhttp://en.wikipedia.org/wiki/The_Mythical_Man-Month
http://en.wikipedia.org/wiki/The_C_Programming_Language_%28b...
It's always important to understand what's going on under the hood, even if you don't need to open it.
It'll teach you how to write maintainable code.
That being said: I'd definitely start with SICP, for one reason: the video lectures, available at http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma...
They'll take you about 20 hours to go through, and as far as I am concerned, are the best introduction to Computer Science you can get in that short a time-frame.
Beyond that, off the top of my head the number one theory book for working programmers would be Introduction to Algorithms by Cormen, Leiserson, Rivest and the new guy.
Then you have it backwards. You should be building, not reading.
Slow way: Read book --> apply what you learn
Fast way: Write code --> Get stuck --> Find a book
I know this is not intuitive, but trust me, it works much better. We all love the feeling of cracking open a fresh new book (or pdf) and bathing ourselves in all this newfound knowledge. But this method is not very efficient. Much of what you read you will never use and much of what you need you will never read about, no matter what the book is.
Better to pick a project and just start building it. Come up for air every once in a while and consult whatever book fills in what you need to know to build your project. True learning comes from building, not reading. This method takes the best of both worlds and gets you to your stated goal much quicker.
Although this may not be down your alley, it's perfect for anyone new to programming in general.