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
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:


  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


  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

  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

  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

  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

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

  7. Thank You for sharing your article, This is an interesting & informative blog. It is very useful for the developer like me. Kindly keep blogging. Besides that Wisen has established as Best Corporate Training in Chennai .

    Nowadays JavaScript has tons of job opportunities on various vertical industry. Know more about JavaScript Framework Training visit Corporate Training Companies in India.

    This post gives me detailed information about the technology. corporate training companies in india

  8. Thanks for the great post on your blog, it really gives me an insight on this topic.I must thank you for this informative ideas. I
    hope you will post again soon.
    android application development course in bangalore
    Android courses in Anna Nagar
    Android Training courses near me
    Android Training in chennai

  9. This is really too useful and have more ideas and keep sharing many techniques. Eagerly waiting for your new blog keep doing more.
    Tableau training in Chennai | Tableau Courses Training in Chennai | Tableau training Institute in Chennai

  10. TreasureBox is operated by a group of young, passionate, and ambitious people that are working diligently towards the same goal - make your every dollar count, as we believe you deserve something better.
    chicken coops nz
    rabbit hutch nz
    bed frames nz

  11. Great Article. Thank you for sharing! Really an awesome post for every one.

    IEEE Final Year projects Project Centers in Chennai are consistently sought after. Final Year Students Projects take a shot at them to improve their aptitudes, while specialists like the enjoyment in interfering with innovation. For experts, it's an alternate ball game through and through. Smaller than expected IEEE Final Year project centers ground for all fragments of CSE & IT engineers hoping to assemble. Final Year Project Domains for IT It gives you tips and rules that is progressively critical to consider while choosing any final year project point.

    JavaScript Training in Chennai

    JavaScript Training in Chennai

  12. Welcome to the Join Pak Navy if someone interested to apply for pak navy then they can visit this site as we almost cover everything related to this topic.

  13. Welcome to Advance Case Search at Sindh High Court. You can easily learn how to check case status on Case Search portal of Sindh High Court.

  14. Wow it is really wonderful and awesome thus it is very much useful for me to understand many concepts and helped me a lot. it is really explainable very well and i got more information from your blog.

    Data Science Course in Pune
    Python Classes in Pune


Disqus for Ken Fox's Blog