Reading Books in a Parallel and Non-Sequential Way

Reading many books is hard. There are so many great books to choose from, and there's too little time to read them all. And with so much literature available, you run the risk of not reading the stuff that is most relevant to your current situation.

So here's what I do.

Though I love reading blogs and wikis, I prefer to read books when I need some serious learning. It's because information on the web is usually fragmented, and doesn't tell you a complete story about a topic from start to finish. The high level of programming experience required on blogs like Scott Hanselman's Computer Zen almost makes me nauseous ("Using Boo for Scripting Banshee", WTF is that?), and wikis, SDK's and on-line tutorials never seem to be written with a human reader in mind ("Now let's switch from dynamic typing to transactional web services, with a bit of cryptography in between, and you can figure out for yourself how those topics are related…").

With books I am able to learn about a topic from the barest basics ("In the beginning there was the Start button…") to the most advanced levels ("And finally, with this undocumented option, you can re-engineer the whole Internet."), consuming a continuous flow of knowledge that is often well thought-out (both logical and understandable). And I can do that at my own pace, which is not too fast, thank-you-very-much.

But, there are problems:

  1. I need to learn about several interesting topics at the same time. I need knowledge about C# 3.0, and about Entity Framework, and about RESTful services, and about SQL Server 2008, and about ASP.NET MVC, and about writing Clean Code…
  2. The order in which I need that knowledge doesn't coincide with reading first one book, and then the next. Because the first chapters of the next book probably give me a higher return-on-investment than the last chapters of the book I'm reading now.
  3. Using physical bookmarks to remember where I am in each book doesn't work well, as I sometimes need to jump ahead in a book, skipping less-valuable chapters that might be more valuable later. This is clearly an agile principle: defer reading things you don't really need to know right now.

I need to read my books in a parallel and non-sequential way.

So, here's what I started doing this week:


I create a sticky note listing all chapters of a book, and I stick it on the first page. On this note I circle every chapter that I've already read. You can see that I skipped chapters 6 and 8 of Programming Entity Framework, because they are about using Entity Framework with stored procedures and Windows Forms. And I'm not using either at this time, so they're not that valuable to me right now. But I think I will read those chapters some time later, so I'm keeping the options open.


I'm also halfway through the book Essential C# 3.0. In this case I've already seen that I don't want to read chapter 20, which is about platform interoperability, which I find completely uninteresting. (Let's face it: wanting to be platform-independent so that you can easily switch platforms, is just as useful as wanting to be bisexual, because it easily enables you to switch genders. Not many people think that's very important.)


My simple new system enabled me to add more books to my "in-progress" stack. I noticed my generic programming skills are in serious need of being polished. So I've added Clean Code to the stack. Every time when I want to do a bit of reading (which, as with every professional software engineer, is almost every night), I now can select which book and which chapter should have the highest return on investment for the work I will be doing the very next day. While in the meantime, unlike with blogs, wikis, and SDK's, I am steadily gaining a complete picture of some topic. Plus, it gives me not code coverage but knowledge coverage. I know how much I know. And I know how much I don't know.

Ain't that neat?

Oh, BTW. If you don't know what to read, then a good start would be to check out any of these 3 lists: Top 50 New Software Development Books, Top 100 Best Books for Managers, Leaders & Humans, and Top 100 Best Software Engineering Books, Ever.

(image by moriza)

Twitter TwitterRss SubscribeEmail NewsletterDelicious Bookmarks

Latest, greatest and favoritest posts:
Top 50 New Software Development Books
Top 100 Best Books for Managers, Leaders & Humans
Top 100 Best Software Engineering Books, Ever

  • Agile Is NOT a Risk Management Strategy
  • Join the CLUB (Coding Like Uncle Bob)
Related Posts
free book
โ€œHow to Change the Worldโ€
  • Gaston Rommens

    Great system!
    I have the same problem. Half read books with cards in them to mark my current reading position. That fails when you read them non sequential.
    Your sticky notes system works fine.


    I think this post will resonate with many of us. I am also reading 3/4 four books at the same time:
    * Advanced C# 2008 (I come from C++ and started on .NET only months ago)
    * Agile Estimating and Planning (my previous job had a “waterfallish” process (more likely a V-Model))
    * Patterns of Enterprise Application Architecture(I come from a mobile world)
    * The Mytical Man Month (just for fun… yes, it must be the fifth time that I read this book)
    … plus other things that matters most in my life beside software: I am re-reading a good book on parenting and another one on personal finances. Listening to podcasts while commuting, reading blogs at lunch-break.
    Clean Code is my wishlist on I migtht try your sticky notes method to keep track of what I have read and what not ๐Ÿ˜‰

  • James Bach

    I would not use that solution, because it’s too much paperwork. But fortunately, the problem doesn’t exist for me, so I don’t need any solution to it.
    I don’t need to remember whether I read a chapter or not, because my goal is not to “read chapters once.” My goal is to get the knowledge that I need. Therefore, if I think I need to read something, I read it, whether or not I’ve read it before.
    I flip through a book and decide what looks interesting. Then I read that. The end.
    No post-it required, but I do find that a bookmark helps, just to pick up where I left off if I want to.

  • Jurgen Appelo

    Interesting. But this couldn’t possibly work for me. Because I _don’t know_ what it is that I need to know.
    If I only read what I _think_ I need to know, then I’m skipping a lot of valuable stuff that I never thought I would need.

  • Dima Malenko

    Nice idea ๐Ÿ™‚
    I wonder how it would apply to non-fiction other than technology books, something like business and management books. Those usually have more sequential structure with chapter tied stronger than in average programming book.
    Any experience with that?

  • Jurgen Appelo

    Hi Dima, I have no idea how that’s going to work. But I’m definately going to try it. ๐Ÿ™‚

  • Josh Nankivel

    Good point Dima. There’s probably a spectrum of applicability based on how a particular book is structured.
    On the one end, you have a programming book that is structured like a reference manual. You can read just one chapter and get exactly what you need.
    On the other end, there are books that really require a full read. You can not jump into a chapter in the back, because you will be lost. These books are more like a discussion between the author and the reader.
    Most books fall somewhere in the middle. The first few chapters may be foundational, and from there they get topic-specific. In that case, I would want to identify and read those “pillar” chapters all the way through, and then pick and choose after that.
    Josh Nankivel

  • Sonja Duijvesteijn

    Sounds like a great idea! But as I always seem to get the packet of post-its that don’t actually stick all that well I’ll just pencil in some notes in the index.
    No need to skip backwards and forwards between the post it and the index to see which chapter is most interesting at the moment and more space to add in something else. “Read again after finishing chapter 5”.
    Love the idea though (:

  • Dima Malenko

    I’m also going to try ๐Ÿ™‚ The more some I all the time somehow find myself reading several books in parallel.

  • Dima Malenko

    Hi Josh,nice idea about “pillar” chapters – I think each good book has such chapters.

  • Sashi

    What if you are reading books online ๐Ÿ™‚ (safari oreilly)

  • Salarrue

    Great Article! I’m struggling now with too much information I would like to learn, I am a Graphic Designer involved in a cultural design-web project overseas. for example as web developer I need to learn about programming, CMS architecture, but also about need to update myself about design practice, style. I love history, and in order to apply a better system for the context that I’m working in I’am inquiring of that context background. I love photography so Im also reading about developing process, equipment, and technical manuals for new flashes or new software… How about politics, environmental issues or privacy laws in our country. How about philosophy and Religion. So many topics and the time just flies…

How to Change the World - freeย Workout - free