As 2015 winds down, I’ve found myself with some time to organize my reading list for the new year. Here’s what I want to read in 2016!
This is, as usual, a mixture of programming/computer science and poetry. If you have recommendations for novels, non-fiction, &c, please let me know!
Harold Abelson and Gerald Jay Sussman with Julie Sussman I’ve gotten about a third of the way through SICP twice; in 2016, my goal is to finish it.
Homer (translated by Robert Fitzgerald) I first read The Odyssey in high school. I was unemployed for most of the summer after I graduated from college and read it again; since then, I’ve made it a habit to re-read The Odyssey every summer. (The Fitzgerald translation is my favorite.)
Ed Catmull and Amy Wallace I’m sort of cheating by including this one, since I’ve already started it, but I figure it counts since I’ll finish it in 2016. It’s about managing and leading creative teams in the context of Pixar’s founding and growth, and I’m really enjoying it so far.
Michael Lopp Now that I’m managing a team, I’m setting aside time each week to level up my managerial skills. (It would be nice if I could practice managing as much as I practice programming.) I’ve read Peopleware, which was excellent, so now I’m pretty much reading every management resource I can get my hands on. Since managing humans is a large part of what I do these days, I figure Managing Humans could be of some help.
Martin Fowler This is something of a modern classic in the vein of the GoF book, focused on best practices and recipes for refactoring object-oriented code. I think this could be particularly useful for my Java development, but hopefully the lessons here are applicable to any codebase.
Dean Young I love Dean Young’s poetry and am always excited when a new book of his comes out.
Lawrence Sklar I wrote my undergraduate thesis on the topic of philosophy of physics (specifically, Zeno’s paradoxes of motion in a theory of discrete space). Sklar’s book explores the interdependence of science and philosophy through examinations of spacetime geometry, causation, and the nature of time, so I hope to gain a broader understanding of my undergraduate work by reading Space, Time, and Spacetime.
Q: Want to hear a Ruby joke?
Robin Coste Lewis Voyage of the Sable Venus won the 2015 National Book Award in poetry, but that’s not the reason I picked it—I did my MFA with Robin at NYU, so I know she’s a phenomenal poet and am really excited to read and support her work. (I’m also curious to see if any of the poems she shared in workshop are in this collection.)
Louise Glück I meant to read this a couple of years ago and haven’t gotten around to it yet, so I’m relisting it for 2016. I loved Glück’s The First Four Books of Poems, Ararat, and Averno, so I’m sure I’ll enjoy Poems 1962 – 2012.
Chris Okasaki While I was taking Algorithms: Design & Analysis, parts one and two on Coursera, I became interested in applying what I’d learned to functional programming languages like Clojure (as opposed to Java or Python, which I figure are the languages most students are using). This led me to Okasaki’s book, which I think is an expansion of his doctoral thesis (see below).
I realized this past year that while I’ve been interested for a long time in reading short-form literary work (novellas, chapbooks) and revisiting the classics, I’ve neglected to do so when it comes to reading programming/CS material. So! In 2016, I’d like to read more short-form content (academic papers) and am starting with a mix of classic and new. The newer papers I chose focus primarily on functional programming, type theory, distributed systems, and machine learning. Links are directly to papers (PDFs), most of which are hosted on university websites. Starting with the classics:
John McCarthy I really enjoy writing Clojure, and since Clojure is a LISP, it seems only fitting to read the paper that started it all.
A. M. Turing
I propose to consider the question, “Can machines think?”
This is gonna be good.
A. M. Turing Church technically beat Turing to the punch on this one, but I figure it’s a classic well worth reading regardless.
C. A. R. Hoare I read this paper earlier this year but as per Michael Fogus’ recommendation, I’m reading it again in 2016.
Robin Milner After some long discussions about static typing and Hindley-Milner at RubyConf this year, I became really interested in ML, Haskell, and Idris, so I thought it made sense to read Milner’s paper.
Alonzo Church Ditto the above! Also, I want to better understand the λ calculus.
Chris Okasaki See my above notes for the book version. I’m curious how the paper differs!
David Ungar, Craig Chambers, Bay-Wei Chang, and Urs Hölzle This is a Fogus recommendation (see above). I’ve yet to write Clojure programs that feel disorganized, but 1) it’s possible this will happen with other functional languages (e.g. ML, Haskell), or 2) this may eventually happen when I write sufficiently large Clojure programs.
Christopher Strachey Another Fogus recommendation. I get the feeling I’m about to have a ton of knowledge dropped on me.
John Hughes Yet another Fogus recommendation. I’m not sure there will be any major revelations here, but at the very least I’ll be better able to articulate my argument when someone asks me why I think functional programming is so great.
Ben Mosely and Peter Marks YAFR (Yet Another Fogus Recommendation; honestly, that blog post is gold). This is mostly “mutable state is the root of all misery,” and I’m curious to see where it will go.
Leslie Lamport This seems to be one of the classics in distributed programming, and one of my goals this coming year is to get better at understanding, writing, and debugging distributed systems.
Jay Kreps, Neha Narkhede, and Jun Rao How to Kafka!
Google (This paper wasn’t written by Google per se—there were just too many names to list.) I first read this paper last year, but now that I have more context, I’m hoping to understand it a bit better the second time around.
Pedro Domingos I’m interested in machine learning. This seems like a good place to start!
Hongwei Xi and Frank Pfenning As mentioned, I learned a bit about type theory at this year’s RubyConf, and Gary Bernhardt introduced me to the idea of dependently-typed languages. I picked this paper (and the ones that follow) in order to further explore the topic.
Edwin Brady Idris has been around for a couple of years now, but I only just discovered it!
Edwin Brady Idris manages side-effects via its Effects library, the underpinnings of which are explained in this paper.
Edwin Brady The effects described in the above paper are limited to compile-time state transitions. This paper promises to extend effects to reason about run-time state transitions.
Simon Fowler and Edwin Brady Web programming is pretty much all the programming I do. Anything that promises to help make it safer and more secure is worth checking out. (Also it’s a nice excuse to read another paper about Idris.)