Wednesday, February 1, 2012

Reading List, Part 1

Jiri Novotny recently published his list of 30 books everyone in the software business should read. A friend linked it on Facebook and asked us what we thought.

I wasn't impressed because there aren't enough software books in the list and some of the books seem trendy or interchangeable with better titles. Jiri lists some excellent books, and I have many of them, but it seems wrong to call out these 30 as special. (My bias towards technical founders surely doesn't help my opinion.) So now I'm on the hook to come up with a top 30 list of my own. Oops.

The Internet is chock full of good reading lists. For example:

The trouble is a top N list of books doesn't make any sense. It's better to see a book as a very personal, very non-interactive conversation with an author. You don't inject a book and reify the ideas in your neurons. One book may be absolutely top in a subject, but if you have trouble understanding the author, or you're not ready for the ideas, you must try other books.

A top N book list only makes sense as a proxy for a top M idea list.

That's too much work for this post, so I'm compromising by tracing some influential books in my life and what ideas I took from them. The specific books will be different for you—perhaps you fell in love with software through the Internet rather than a home computer—even if the ideas are the same.

Love and discovery of software
I have power! Understanding the machine, Static typing, Imperative languages
Good taste (My code is shit!)
Reading code, Finding community (Dr. Dobb's and BYTE in the pre-Internet)
Intellectual play
Dynamic typing, Objects, GC, VMs, Domain languages
REPL, Functional languages, Unification, Back-propagation
Networks, Distributed computing, Processes, Memory, Security
Software design
Actors, Macros, MOP, Type systems
Algorithms
Human interfaces, Usability, Cutting corners
Intellectual honesty

That's 22 books covering a large swath of ideas. I'd swap out books if I were learning for the first time: Erlang instead of Hermes, Ruby instead of Smalltalk and Clojure instead of Scheme are easy swaps. Nobody needs "C Chest" anymore—the Internet has changed everything. Also, given the complexity of modern multi-core hardware, it may be better to skip hardware and imperative languages (and imperative OO languages) to make more room for topics such as lazy evaluation and software transactional memory.

With so many important ideas missing from the list, it's going to be a challenge to choose just 8 more books. Here are my choices in case anyone wants to help:

7 comments:

  1. Really very nice blog information for this one and more technical skills are improve,i like that kind of post.


    SAP training in Chennai

    ReplyDelete

  2. All are saying the same thing repeatedly, but in your blog I had a chance to get some useful and unique information, I love your writing style very much, I would like to suggest your blog in my dude circle, so keep on updates.


    SAP training in Chennai

    ReplyDelete
  3. Great Article I love to read your articles because your writing style is too good, its is very very helpful for all of us and I never get bored while reading your article because it becomes more and more interesting from the starting lines until the end. So Thank you for sharing a COOL Meaningful stuff with us Keep it up..!

    SAP training in Chennai

    ReplyDelete
  4. I must thank you for the efforts you have put in penning this site. I am hoping to check out the same high-grade content by you later on as well. In truth, your creative writing abilities has inspired me to get my own, personal blog now..

    Corporate Training in Chennai

    ReplyDelete
  5. Thank you for your post. This was really an appreciating one. You done a good job. Keep on blogging like this unique information with us.

    Branding Services in Chennai

    ReplyDelete
  6. Very Good article. I like to read your blogs frequently.
    Here is the booming framework Best AngularJS Training in Chennai

    ReplyDelete

Disqus for Ken Fox's Blog