I use Curious Reef (http://curiousreef.com), which is a learning website that I created. You can create a class based on a book, break it down into smaller lessons, and then add assignments to each lesson. As you progress through the book, post your work, and your progress indicator increases.
For example, I'm working through the Bash Cookbook (http://curiousreef.com/class/bash-scripting/), so I broke each chapter into a lesson and turned it into a class. Even though it's been a while since I've worked on it, I have a log of what I've learned and I know right where to pick up with it. Also, taking a big book and breaking it into smaller chunks makes it less overwhelming and easier to progress.