I read a lot of books both for fun and for professional development. My favorite publishing company is Manning. Its "Something in Action" and "Something in Practice" ebooks are exceptional. Usually I read several books in parallel; it is hard to read an entire book on programming in a matter of days. One needs to try the code, play with examples, and switch the context to avoid feeling overwhelmed.
I keep track of my reading progress and additional things that come up during the reading process using epics in PivotalTracker, as if the book were a project. Here is a screenshot of the project today with two book epics opened.
The first column shows overal progress for each book. The middle column shows that I have read 11 chapters of "Making Things Happen" by Scott Berkun. The right column shows my reading progress on "Disciplined Entrepreneurship" by Bill Aulet.
Each story in the epic corresponds to reading a single chapter. I usually have at least one follow up story for each book: writing a book review blog post. I have several reviews on this blog. Writing a book summary helps me remember and understand what I just read. It is also a good tool for recommendation to others.
When reading a book on programming, for example "Nodejs in Action", additional stories might be to investigate applications, libraries and tools described in the book. The reading vs programming order is flexible. I might create a story and insert it into the book epic before proceeding to the next chapter.
Sometimes, a book changes the way I program. For example, JavaScript Allongé moved my code from imperative to functional. I did not understand everything while reading the book the first time - it takes practice to adapt to the new approach. In this case, I scheduled another task in the book epic - reread the book after 1-2 months. To add a date to this task in PivotalTracker, I set its type to release. Rereading even quickly a book after studying other resources filled the gaps in my understanding.