Over the past year I have purchased many books and collected suggestions for books to read. I leafed through each one and decided which ones are most interesting to read next. Once I compiled the list of books the challenge is deciding which one to read first. That is where this post comes in.

The goal is to create a directed graph of books to read. I started by enumerating the books using the dot language. Once all of the books were entered I began connecting the obvious dependencies. For instance, it would be useful to have a basic understanding of Erlang before attempting to develop web servers with Erlang. Hence, Learn You Some Erlang comes before Building Web Applications with Erlang.

After the obvious relationships were explored I had a bunch of groups with minimal relationship between them. Choosing the order for reading these groups was more arbitrary and mostly based on my impression of each book from the brief time I spent initially evaluating it. With some time tinkering I observed that there were three general categories of books: Erlang and scalable web applications, object oriented design and Ruby, and communication with Asperger's. I decided to leave each group separate and pick which category to explore when I was ready to read the next book.

I am going to start with Learn You Some Erlang because I had already worked through half of it over Christmas break. Here is the graph I constructed to determine the order of reading. I plan to periodically update the image with my progress. There is an alphabetized list of the books with links after the image.