I was very excited to receive my copy of "Learning Drupal 6 Module Development" by Matt Butcher. So excited, I asked my wife, "Guess the title of the awesome book I just got?" Her sarcastic reply tells you much about me and the regular lecture she gets, "DRUPAL!?". Ok, so I'm a little beyond this book but the title is so great!
This book aims to provide a sound foundation for programmers new to Drupal on which to build and customize their own features in the form of a module. The ability to add features so simply is the true power of Drupal. Drupal's real goodness isn't truly experienced until you have added 20 contributed modules (over 3500 available today) and several custom modules of your own. It's this ability to extend, transform and over-ride Drupal at your pleasure that Butcher wants to empower you to do. If you are new to Drupal but not to programming I think you will find this book hits it mark. I definitely recommend this book.
The book works you through building an example module like all good technical books should. The example is not trivial and in so Butcher is able to walk you through the major components of building your first module. As I paint this book to be a good reference for those wanting to learn Drupal module development it must be compared to the established king of Drupal references, "Pro Drupal Development" (PDD) by John Vandyk. Although I think that the first book you should buy is PDD, Drupal demands volumes of books to cover the progressing target that is Drupal Knowledge. Butcher's book is slightly more focused than PDD and so is worth the read.
For the past 4 years, I have written Drupal modules daily. I don't recommend this book to an established Drupal developer like myself. Drupal module development has matured a great deal and the standards are high. In order to build the killer module it has to have Content Construction Kit (CCK), Views and Panels integration built in. These three contributed modules are utilized in every project I do lately. All three are being adopted rapidly and migrating to Drupal core. A module that is not CCK, Views and Panels aware is missing it's true potential. I do recognize including these addition were not feasible at the time as these modules had not been ported to Drupal 6 yet and would likely require 3 times the paper to cover. In addition, the newest bar for Drupal module developers to clear is built in automated tests. Without automated tests, you can't expect to build and confirm your modules to be robust enough for the wild wild west that is the Web. It may be fair to say this is too demanding a level to expect of a book of this scope but when I got to the end of "Learning Drupal 6 Module Development" those are the chapters I wanted next. The weak index and lack of an API reference are also disappointing.
Despite the fact that I am a little disappointed in the new knowledge available to someone with my experience, I do recommend this book to someone wanting to start the never ending training of Drupal module development. Butcher does cover the changes in Drupal since version 5 well (menu system is lacking): A revamped theming system, more robust install profile system, actions and sending mail. If you have no experience with PHP development I recommend starting with, "Building powerful and robust web sites with Drupal 6" by David Mercer.
