Introducing the “Welcome to Xojo” Bundle!

New to Xojo and looking for guidance? We've put together a terrific bundle to welcome you! Xojo Bundle

This bundle includes six back issues of the magazine -- all of year 19 in printed book and digital formats -- plus a one-year subscription (beginning with 20.1) so you'll be learning all about Xojo for the next year. It's the perfect way to get started programming with Xojo. And you save as much as $35 over the non-bundle price!

This offer is only available for a limited time as supplies are limited, so hurry today and order this special bundle before the offer goes away!

Article Preview

Buy Now

Issue 5.2


The Pragmatic Programmer

Issue: 5.2 (January/February 2007)
Author: Marc Zeedar
Article Description: No description available.
Article Length (in bytes): 6,279
Starting Page Number: 9
Article Number: 5204
Related Web Link(s):


Full text of article...

Regardless of whether you're a professional or hobbyist programmer, if you'd like to be better, you need to work at it. The Pragmatic Programmer is a great collection of tips, techniques, and guides on how to do exactly that.

I wasn't sure what to expect when I dove into this book, but what I discovered is a wonderful collection of fascinating anecdotes, illustrations, examples, and techniques on everything from coding to designing to writing documentation.

The book -- despite its relatively modest size (for a programming book) -- is jam-packed with content. The presentation is a bit unusual as almost every point is illustrated with a metaphor or humorous story, which makes the reading much more enjoyable, yet these are not mere colorful distractions but key mnemonics as they serve as a shortcut for knowledge throughout the rest of the book. For instance, once you know about things like "stone soup," "tracer bullets," "dodo-code," or "rubber ducking" you'll remember them because they are so distinctive.

Each chapter is broken into a few related sub-sections (briefly explained in the chapter's introduction), and each section concludes with several challenges -- tasks for you to try that pragmatically illustrate the lessons learned. For example, in "The Power of Plain Text" we are told to write a simple address book app using a binary file format and then translate that binary data to XML. Then, after the program's done, add a new variable-length field to the database. How easy was the binary format to manipulate?

The lessons taught are excellent and cover almost every aspect of programming. The authors even deal with seemingly minor details like your choice of code editor and stuff many programs neglect, such as writing documentation. There are sections on planning, debugging, optimization, refactoring, testing, prototyping, error handling, and even dealing with clients.

While some of the techniques and issues are obviously geared toward teams of professional developers, the majority of the book applies to programmers of any ilk. The authors are also somewhat tool agnostic, even writing about how a good programmer uses the right tool for the job and detailing experiences in various languages, but the example code is always in C, which I found not as easy to understand as Java-based examples in other books (I personally find Pascal-like psuedocode to be the ideal example language). That's a relatively minor issue, however, as the examples are only illustrations of the concepts discussed and there's no requirement to understand C to get something out of the book.

Another "problem" with Pragmatic Programmer -- and I put problem in quotes because it may not be a problem -- is the way book constantly refers to other sections of the book. While this is generally helpful, so many of the topics are inter-related that the references are profuse and repetitive. And since those sections refer to others, and those to still others, if you actually follow the links you'll end up in a real tangle and forget where you started. This makes the book more difficult to read linearly (I recommend reading it at least twice), but ideal for reference.

A few of the topics left me wanting more detail -- sections are usually quite short, three to six pages -- the authors acknowledge this in their appendix and give a list of additional resources including books, periodicals, many pages of URLs (web references throughout the book are abbreviated with a numeric reference corresponding to the URLs number in the appendix), and an extensive bibliography. Thus Pragmatic Programmer serves as an excellent introduction to concepts, and if you're interested in more info on a particular subject you can find out about it elsewhere. Answers to all of the "challenges" are also available in the appendix, complete with C code.

I must also mention the wonderful tear-out quick reference card in the back of the book. This alone is worth the cost of the book. It includes a short one-sentence summary of each of the 70 tips mentioned along with the page number where that tip is fully explained. This is great for a quick review of the book's content and works as an excellent refresher course.

Overall I found The Pragmatic Programmer an amazing resource. While many of the topics are covered elsewhere (usually in a volume of its own), I don't know of another single book that covers so much about the art of programming. The book is not an instruction manual on how to code (it assumes you understand basic programming), but it is an excellent guide on the lifestyle of programming. Whether you're a professional developer or just starting out you won't regret having this book in your library.

End of article.