Books for Programmers

Tuesday March 22, 2016

Someone found my email address on github and wrote asking me to recommend books about software development. Well, here is one book on software development in general, and roughly one book each in connection with Python, JavaScript, Clojure, R, and git.

Software development in general

Some years ago a mentor lent me a copy of The Pragmatic Programmer. It is a very useful collection of The Right Way to do things. It's a set of ground rules for doing good work that can make you and the people you work with more effective.

The Pragmatic Programmer

For more books on software development "in general", it looks like Atwood's list is quite good. I should read some of those. He even lists Tufte!


I encountered Think Python and the rest of Downey's books while teaching some data science courses. It's a nice intro to computer science, programming, and Python, and it's available for free online.

Think Python


If you want an intro to programming and JavaScript, I think everyone agrees that Eloquent JavaScript is the right book. If you know how to program and want the dense low-down on JavaScript, the classic is JavaScript: The Good Parts. There's probably more modern stuff because now you can start a whole company and even convince people to fund you, all with JavaScript. But here's a book I actually read:

Functional JavaScript covers interesting functional programming techniques with JavaScript and the underscore library. I liked the content, but I also liked the writing so much that I looked for more by the author, which is what led me to the Clojure book below.

Functional JavaScript


Clojure is a neat language, and The Joy of Clojure is a neat book. There is a ton to learn. It's "a Clojure book", but as the subtitle, "Thinking the Clojure Way", indicates, the language and the book are not bashful about philosophy, and it's a different philosophy from a lot of other languages and ways of thinking. Use and appreciate functional programming with immutable data structures.

The Joy of Clojure


Years back I loved The Art of R Programming for acknowledging that you need to program in R. Some books treat R like it's a statistics GUI that, for reasons unknown, you happen to have to type to use.

Nowadays I think Hadley's freely available Advanced R is by far the best R book. Despite the title, it does also cover introductory material, but the pace is quicker and the depth is greater than The Art of R Programming.

Advanced R


git is not a language, it's a version control tool, but I'm including it here because there's an obvious book for it which is free online. It's called Pro Git. Newcomers to git sometimes find git confusing, and there's a simple solution: read the book. Read the whole book. Just read it.

Pro Git

See also Books for Professionals.