I see this question constantly on HN. Maybe off topic, but do people read books to learn programming? There are a lot of great sources online for learning even the most obscure concepts. Online sources also have the benefit of not being old information. When one begins writing a book, it could be years before it's in the hands of readers. Just seems like a weird way to learn something (especially programming) these days.
Anytime I'm going to poke into a topic I like to nab one of the Head First books. They're a fast, easy way to learn a topic and after I'm done with it and into it deeply I'll find a dry reference.<p>The Pragmatic Programmer
Meta-programming at it's finest. Be a better programmer.<p>Joel on software blog:
Here's an example post.
<a href="http://www.joelonsoftware.com/articles/fog0000000043.html" rel="nofollow">http://www.joelonsoftware.com/articles/fog0000000043.html</a><p>There's quite a bit to learn in there.<p>Many other books available free online. Primarily I suggest you read to an end, and as you get to a stagnation point you alternate between reading to learn new technologies or languages and reading to improve yourself as a programmer.
Even if you have no real interest in C, check out K&R if you haven't. It's a near flawless (imo) example of technical writing and language introduction.
I would recommend "The Art of Readable Code" by Boswell. It is very well-written and enjoyable.<p><a href="http://www.amazon.com/The-Readable-Code-Dustin-Boswell/dp/0596802293" rel="nofollow">http://www.amazon.com/The-Readable-Code-Dustin-Boswell/dp/05...</a>