Ask HN: What are some of the best written programming books?
It is incredibly readable; the code and the stories mixing amazingly with real world examples and what not.
What are some of yours?
It is incredibly readable; the code and the stories mixing amazingly with real world examples and what not.
What are some of yours?
http://www.amazon.com/The-Programming-Language-Brian-Kernigh...
Java Concurrency in Practice (2006) is older but relevant and clearly describes concurrency on the JVM. A must read for any Java, Scala, Clojure, etc. software engineer; well-written, enjoyable, concise.
Practical Object Oriented Design in Ruby by Sandi Metz is a fun read packed with good principles for working in Ruby that are applicable in general to object oriented programming.
Smalltalk Best Practice Patterns by Kent Beck is worth a read because the general principles are applicable to any OOP language.
Clean Code by Robert Martin is excellent but a time commitment. (If you had to pick between SICP and Clean Code because time is at a premium I'd err on the side of Clean Code for practicality. Writing maintainable code is paramount.)
The Joy of Clojure (Fogus/Houser) is excellent and mentally digestable even if you have no Lisp or Clojure background.
Why's poignant guide to Ruby - http://mislav.uniqpath.com/poignant-guide/book/
Uncle bob have put beautifully here (5th paragraph): http://thecleancoder.blogspot.com.br/2010/08/why-clojure.htm...
Anything coauthored by Kernighan is a good bet, though the material is not quite so ageless. Similar remarks for P.J. Plauger.
Norvig doesn't just write exquisite code, but good prose too.
I always liked Abelson & Sussman's style, even though it's more textbookish. Abelson also co-wrote Turtle Geometry, which is almost unknown these days and still eye-opening. (It's more of a math book than a programming one, but its point is to be both.)
Daniel Hillis: The Pattern on the Stone, The Connection Machine.
Richard O'Keefe, The Craft of Prolog.
Jon Bentley.
I remember pg's On Lisp as good.
The Pragmatic Programmer: Hunt and Thomas
The C Programming Language: Kernighan and Ritchie
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.
Always a good one when you want to brush up on arcane knowledge.
http://www.cs.cmu.edu/~dst/LispBook/
Bump for the K&R as well, great book, helped me get my feet wet with C quickly and effectively.
The Pragmatic Programmer: Hunt and Thomas
The Mythical Man Month: Frederick Brooks
More recent than most books mentioned here, but I found it remarkably well-written. Irrespective of what happens to Scala, this book has a good chance to be useful 10 years from now.
http://www.amazon.com/Computer-Systems-Programmers-Perspecti...
A Github hosted list of free programming books (merging SO and other sources): https://github.com/vhf/free-programming-books/blob/master/fr...
Designing Data-Intensive Applications
The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
By Martin Kleppmann
http://shop.oreilly.com/product/0636920032175.do
The author has great sense of humor.
And Kent Beck's http://www.amazon.com/Smalltalk-Best-Practice-Patterns-Kent/...
How to Design Programs - An Introduction to Programming and Computing
- Stevens: Advanced Programming in the Unix Environment
and more recently,
- Kerrisk: The Linux Programming Interface.
Also, almost anything by Kernighan (with several different co-authors).
Programming Erlang by Joe Armstrong
Programming Elixir by Dave Thomas
Seven (more) Languages In Seven Weeks by Bruce Tate
Think Bayes, Think OS, How To Think Like A Functional Programmer (Think OCaml) and The Little Book of Semaphores by Allen B. Downey
Helped me a lot when I ventured into 3D graphics and game programming.
Not so much programming, but very good if you're interested in how your computer actually works.
http://www.amazon.com/Geek-Sublime-The-Beauty-Code/dp/155597...
This book made me understand that writing software is not just about creating opaque binaries with _stuff_ inside. It's also about what does this binary depends on, which symbols does it exports, how is it built, etc.
Might be jumping in at the deep end if he's never seen lisp before, but it was originally published in french...
Practical Object-Oriented Design in Ruby by Sandi Metz. http://www.poodr.com/
http://mislav.uniqpath.com/poignant-guide/book/chapter-1.htm...