I want to thank everybody who left comments on my "Hard Work, No Pay: What's the Point?" blog entry about the problems of trying to make an honest buck writing programming books in the year 2007.
Several comments suggested that I "eliminate the middleman." Keep in mind when using this phrase that there are five households listed in the Manhattan telephone directory with the last name of Middleman, and they tend to cringe when someone suggests they be eliminated.
In this case, the middleman is the publisher, who I've always thought of as an essential part of the book-writing process. In short, the publisher lets the writer be a writer instead of a (shudder) businessman. Self-publishing has never appealed to me, and I have generally enjoyed my relationships with real publishers. Here are some of the services that I rely on my publisher to perform:
Reality Check: I sometimes get strange ideas for books. Some of them make sense. Some of them do not. I rely on publishers to help figure out which is which. I know that sometimes publishers reject perfectly good books. We all know the history of Lolita and Confederacy of Dunces. But for the most part, the publisher understands the book-buying market better than the author.
Editing: Only amateurs and total geniuses are opposed to editing. I rely on editors to untangle my syntax and help me make my sentences as clear as possible. I have a nasty tendency to use the opposite of a word I really want! That's something I hope my editors can check. Yes, sometimes editing distorts. (Interesting article in the NY Times Arts section today about the editing of Raymond Carver's short stories.) But mostly it improves. If authors have complaints about editing these days, it's mostly a complaint about too little editing.
Technical Reviews: I don't know everything. Sometimes I get it wrong. I like to have another pair of technical eyes looking over my prose and checking out my code.
Design: I don't know how to design a page so it's readable. I may think I know, but there are people who do this for a living and who really understand the issues.
Marketing: Marketing is a big problem these days because publishers think the authors should be getting more involved, and authors think the publishers are simply confessing that they no longer know how to market technical books. But in theory, publishers should understand marketing much better than authors. When I wrote Code, my publisher even paid for a little book tour for me, where I spoke in bookstores to crowds of up to ten people. I don't know if it helped, but it sure was fun.
Advances: Sure, advances are tiny. But they're something, and they simply don't exist with self-publication. Suppose I were to spend six months writing a book I intend to self-publish. During that six months, I'm earning no money at all from the book. Then I self-publish the book and I sell 500 copies for $10 each. Baby, I am then screwed!
So while I appreciate people suggesting that self-publication is something that might benefit my career, I just don't see it for me. I am much more interested in working with publishers in creating the next generation of programming "books" — in whatever form they may take.
My skills are these: I am able to assimilate a new API and determine a coherent tutorial course through the material (ie, where to start, where to go next, how to build on what's come before, etc). I am able to get out of bed and write for 5, 6, maybe even 7 days a week, and in the process, consistently generate 100 book pages per month.
Those are my skills. Unfortunately, those are my only skills!