My “reading style” typically varies with what I hope to get out of my “read through” at that particular point in time.
Simply “reading” a book usually just ends up being a survey of the knowledge contained therein - essentially I’m hoping that just enough will stick so that when the time comes, I’ll remember that I have already come across something relevant and remember where I came across it, so that I can revisit and review it in more detail.
“Working through” a book is a totally different and more time consuming affair. For example with Designing for Scalability with Erlang/OTP I immediately coded along in Elixir; used GenServer
instead of gen_server
, gen_statem
instead of gen_fsm
; GenEvent
instead of gen_event
(immediately followed by going through Replacing GenEvent by a Supervisor + GenServer), etc.
Also “working through” involves looking for “second opinions” in other books or on the web - this is especially true for books in early access/beta as some of the explanations may not be as refined as they could be.
Typically I keep notes for early access/beta content - that is just so I can make a more coherent statement when it comes to giving feedback. For a released book I only keep notes if I intend to write a review.
Sometimes I’ll compile some of the content into notes to become part of a technology cheatsheet - when task switching between database, backend stuff in various languages, frontend stuff with various frameworks/libraries and OS admin, I find it’s helpful to have a reminder of “how do I do this again?” when a particular activity hasn’t been reinforced for about a couple of months or so …