This site will look much better in a browser that supports web standards, but is accessible to any browser or Internet device.

Anomaly ~ G. Wade Johnson Anomaly Home G. Wade Home

April 28, 2007

Review of Learn to Program

Learn to Program
Chris Pine
Pragmatic Bookshelf, 2006

Every now and then most programmers get asked the question, How do I get into programming? I am usually on the lookout for beginning books on programming, specifically for this reason. When I first saw Learn to Program from the Pragmatic Bookshelf, I thought it was probably worth a look. In addition to being a beginning book, it was also focused on Ruby, which I have been having trouble convincing myself to work with.

Chris Pine begins the book with a short introduction describing the frustration and pain that many people feel writing their first program. His aim in the book is to make learning to program more fun with the idea that the fun aspect will help you learn to do it right.

The first chapter tells how to get Ruby on your machine of choice. This chapter is pretty straight-forward and does a reasonably good job. The part about learning to program starts in chapter two, Pine tries very hard to cover the subject in bite-sized pieces. Each of the first few chapters introduces pretty basic concepts while trying not to exceed the capacities of any potential reader. The chapter on numbers is about 4 pages, the one on letters is about 3 pages.

At this point, I began to have problems with the book. The tone of the book seemed too friendly and simplistic for even a beginner book. I found myself frustrated with the extremely informal tone of the book. While I don't feel a beginner book needs to be some formal academic tome, I felt this book went too far in the other direction.

On the plus side, I feel that the book does a good job of introducing concepts in an order that would work well for someone who has never programmed before. He doesn't introduce variables or assignment until chapter 4, by which point the reader has seen how to do some output, string manipulation, and arithmetic. Flow control is left to chapter 7. Although it is hard for most programmers to understand, the concepts of assignment and looping are apparently hard for some non-programmers to grasp.

I've been programming a long time, so I thought my opinion of the tone of the book might be biased. I decided to get some input from my wife. While not a programmer, she has a technical background. She wrote some code during her degree and she has been around programmers for a while. After reading the book, she was able to put a finger on the problem with the tone. It appeared to have been written aimed at someone not older than about 12.

Despite the comments above, I don't think this is a bad book. The exercises appeared to be fun and might have been helpful for the right audience. If you make the assumption that the only people who need a beginning programming book are pre-high school, the tone of the book might not be a problem.

If you are looking to learn programming and are college-age or older, the tone of the book might be annoying enough to detract from the message. If you are looking for a book to help an adolescent or young teen to learn to program, I think this book would be a good introduction.

Posted by GWade at April 28, 2007 09:28 AM. Email comments