Disclaimer: All of the links below are Amazon Affiliate links. If you are going to purchase any of the books, it would be much appreciated if you used the links in the post!
Pretty early on in my programming career I found that out that most programming books were not really geared towards my learning style. I tend to learn better when a book follows a single large project (or maybe several smaller projects) to completion, rather than one-off samples of how to do specific things. So far, I’ve found about four books that I really like and have learned tremendously from. The first book is Michael Hartl’s Ruby on Rails 3 Tutorial: Learn Rails by Example (Addison-Wesley Professional Ruby Series). This is probably the best programming book I have ever read. It walks you through the whole process of creating a twitter clone in Rails 3 and even though I don’t do any Ruby/Rails programming right now, it was still a great read and learning resource. I’ve often thought about doing a similar style book/tutorial in django. The next book is Kurt Jaegers’ XNA 4.0 Game Development by Example: Beginner’s Guide. This book takes you through four smaller projects in two chapter chunks. While the games are pretty basic, each chapter builds upon the previous one and you come away from the book having coded four games in XNA (I actually did my games using MonoGame)! The last two books are by Al Sweigart: Invent Your Own Computer Games with Python, 2nd Edition and Making Games with Python & Pygame. Each book walks you through several complete games.
One other great thing about all of these books is that all of the source code is contained in each book! There is no “here’s a snippet of the code, now go to my website and download the rest”. All of the code is on the pages and you can follow (and type) along without needing to download anything extra, code wise at least, the XNA 4.0 and Python/Pygame books have some sprites/graphics/images/fonts/etc. that you will need to download.