Ask HN: What are some of the best written programming books?

57 points by ishanr ↗ HN
I recently read Russ Olsen's Eloquent Ruby and I loved it.

It is incredibly readable; the code and the stories mixing amazingly with real world examples and what not.

What are some of yours?

61 comments

[ 2.9 ms ] story [ 128 ms ] thread
Check out the Stealing The Network series if you're into security -

it's a bunch of short stories about network security usually written from the POV of a hacker who's trying to gain access to a system. The stories are very tech-heavy to the point that parts of the stories are non-fiction, with huge excerpts from console sessions and the like.

Programming Pearls: Jon Bentley

The Pragmatic Programmer: Hunt and Thomas

The C Programming Language: Kernighan and Ritchie

Seconding Programming Pearls by Jon Bentley. Although a bit dated, I reread this book for its insight in to problem solving. It is a great primer for programming problem interviews.
My favourites are more about the general craft of software development than specifics e.g.

The Pragmatic Programmer: Hunt and Thomas

The Mythical Man Month: Frederick Brooks

You may also enjoy Glass' Facts and Fallacies of Software Engineering, it's similar to Mythical Man Month (and cites it and overlaps in parts) but the focus is a bit wider, with many small essays on a particular problem in programming or management of programmers
the d programming language by andrei alexandrescu (ISBN-13: 978-0321635365)
Parallel and Concurrent Programming in Haskell By Simon Marlow
Might be an unpopular language but "Learning Perl" was pretty helpful for me when I was coming up.
Learning Perl is an excellent book. It's one of the reasons I still consider Perl a pretty good teaching and learning language, despite it's bad reputation among some programmers. All of the big O'Reilly books for Perl are truly excellent, in fact, and a big part of why O'Reilly developed such a reputation for excellence (which, I think, has faded somewhat in the past decade or so...at least for me...I don't tend to automatically choose the O'Reilly title, anymore, whereas that used to be what I always picked up first).
Great book, my first general purpose programming language was going to be Python but the book I was reading was so poorly written that I picked up Learning Perl and have been doing Perl all my career.
It's a real shame that Perl isn't a popular language anymore. At least there's still an active community.
Some love for - The C Programming Language - Kerninghan & Ritchie -

http://www.amazon.com/The-Programming-Language-Brian-Kernigh...

I have this book at home, have read it and although it covers a lot in a short volume, I didn't get out of it as much as I did out of C Programming: A Modern Approach by KN King. Once I bought King's book, C made a lot more sense, the book was fun to read and follow. K&R's book was, to me, less "how & why" but more "how". Pointers, in particular, is what I enjoyed more in King's book. That chapter alone made buying the book worth its money.
Clean Code -- Robert C. Martin
Operating Systems: Design and Implementation - Andrew S. Tanenbaum

Always a good one when you want to brush up on arcane knowledge.

I really enjoy the Big Nerd Ranch books, although I am a bit biased because they sign my paychecks.
I love the one for iOS development. It's perfect even for people new to programming. Will you ever re-write the Andriod version to be just as beginner friendly? I would love to hand it off to my girlfriend so she can learn how to do apps. Right now it is harder to grok than the iOS one.
Michael Kerrisk's The Linux Programming Interface is truly great.
Thinking in Java, Java Generics and Collection, Head First Design Patterns
For both entertainment value and incisive exploration of dark corners in the language, "Expert C Programming: Deep C Secrets" is a fantastic book.
Programming in Lua by Roberto Ierusalimschy is one of the best introductions to any programming language. Hw writes the new version along with each language release now, on the grounds that if you cannot explain it right then the language feature probably needs fixing.
That was one of the rules for the Qt documentation too, back when I worked on it. It's a great rule.
Design Patterns: Elements of Reusable Object-Oriented Software http://www.amazon.com/Design-Patterns-Elements-Reusable-Obje...

Practical Object-Oriented Design in Ruby by Sandi Metz. http://www.poodr.com/