Just before RailsConf Europe, I interviewed David Black, the author of "Ruby For Rails", which is rapidly becoming one of the books on Ruby that everyone recommends. Read on to get a better feel for David, and buy a copy of his book if you haven't already.
What role does Ruby play in your day to day work?
David: At this point, I'm doing Ruby and Rails consulting and training full-time. So Ruby is front and center. Then again, since I'm a consultant, work isn't always "day to day" at all! But I've got conference planning and writing projects and other Ruby-related things to fill in the gaps.
How did you come to write a book about Ruby?
David: Manning Publications contacted me in July, 2005, with a general question: did I, as a Ruby expert, think the time was right for publication of Ruby books? And, if so, what did I think was a good idea for such a book, and who should write it?
I took the opportunity to say: yes, it's a good time to publish on Ruby; and the book should be a Ruby-language guide for Rails developers; and I should write it!
The publisher agreed, and within a few weeks I had a contract.
What sets your book apart, why should people buy it?
David: What sets it apart is the combination of subject matter and emphasis: it's about Ruby, the language, but it presents Ruby in such a way as to be of maximum use to "the Rails generation," the people who are using Ruby mainly because of Rails.
After the book appeared, people started saying that it was actually of potential value to all Ruby programmers, not just those involved with Rails. It's gratifying to hear that. The scope of the book is not narrow: it doesn't include the whole Ruby language, but it includes a lot, and I tried very hard to provide lucid, deep explanations of Ruby. That seems to have paid off. Many people have told me that they felt they really understood Ruby for the first time after reading my book.
So I'd recommend it, first, to anyone using Rails who actually wants to know what they're doing (i.e., what their code means) and who wants to know how to do more (i.e., tap into the power of Ruby to raise the level of their Rails development). And, second, I'd encourage anyone interested in the general study of Ruby to have a look at the book.
What was the most rewarding part of writing your book?
David: It was very rewarding just to have the opportunity to sit down and write, in one place, so much about Ruby. I've always participated on mailing lists, chat rooms, conferences, and users groups; and I've always made a point of trying to help people understand Ruby, as well as expanding my own understanding of it. But that kind of communication, by its nature, is a bit scattershot. What I enjoyed most about writing the book was the process of pouring so much explanatory and expository text into one project, knowing that it would be easily available for people to read in one place.
What was the biggest challenge in writing it?
David: The biggest challenge was refining the concept of the target audience. Rails attracts people from lots of different backgrounds: programmers, Web designers, database administrators, project and team managers... and while they all play different roles, they all have a stake in Rails projects and they all want to understand what Rails actually does. It's not easy to write a technical book whose audience has the potential to be that wide-ranging.
When the going got tough, target-audience-wise, I would just remind myself that this is a book about Ruby. Yes, the book is optimized for Rails users. But it's _about_ Ruby. I came to understand that I didn't really have to worry about why a given reader wanted to learn about Ruby. My job was to explain Ruby.
That perspective helped me keep focused whenever the issue of the target audience started to seem daunting.
What did you learn from writing it?
David: I learned a lot about Ruby and Rails. I've never been a mind-dump kind of writer. For me, writing is dynamic and performative: it happens in the moment, as you go along. In part, that means that exactly how I'm going to express something, or even deciding what I'm going to express, isn't known in detail until I start writing. It also means that what I write is not just a subset of what I already know. As I work, I'm testing things, rethinking things, reading up on things, and therefore learning things. So I learned a lot about the subjects I was writing on, during the writing process. I also learned a lot about the book production process. This wasn't my first single-authored book, but the first one was in another field and much more academic. (_Law in Film: Resonance and Representation_, in case anyone's curious!) Of course, writing any given book is much like writing any other book, in many respects. But different sectors of the publishing world are very different from each other, too; and it was interesting to experience the technical publishing world close up over a period of time.
Any more books on the horizon?
David: Not at the moment, but stay tuned! I've been very busy with my change of career for most of this year, having left the academic world and set out on my own as a consultant and trainer. So my writing projects have been shorter. But I've got more books in me, I have no doubt.
What else do you have up your sleeve?
David: Lots of training. It's sort of ironic to have resigned from a tenured professorship and now be making most of my living from teaching Ruby and Rails! But I'm enjoying it, and working on plans to keep it going and growing.
I've also got a grab-bag of activities up my sleeve, if that isn't too mixed a metaphor. I'm in touch with a variety of people about a variety of small publication projects, learning materials, and other possible ventures. And in my capacity as co-director of Ruby Central, I'm working on several conferences, as well as our Regional Ruby Conference grant program and other initiatives.
I must say that, all in all, the process of shifting into full-time Ruby activity has been, so far, a very pleasant and rewarding one!