Book Recommendations!

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.

Book Recommendations!

Class1 is now in session

Yes, I do realize that writing and editing a book is a large undertaking, and very few (if any) books make it to print with zero errors in them. In fact, many make it to print with code that simply does not work. I have tons of old VB6 and VB.NET code littered with button1, label1, textbox1, and generically named functions; PHP and Python code with foo, bar, a, b, c, x, y, etc. as variables. Most of us probably start out with these bad habits, among others, but eventually we learn that the time saved typing $a instead of $sortParams is lost when we (or someone else) has to actually read and understand our code. When writing a book on the topic of programming, it’s probably a good idea to have an editor who is somewhat familiar with the subject. Leaving something like “Class1” in your sample code does not inspire confidence in the content of your book.

Class1 is now in session