Accelerated C++ involves working on a program to analyze student grades. The book itself is excellent, but the overarching project is very dry.
I do truly believe the best way of learning to code is by working on a decent size project, but I also believe that said project should be something you're fascinated and invested in, or else it feels more like a chore and is nowhere as effective.