This is the fifth of a series of personal notes to people who may be thinking of writing (or who have embarked upon writing) a book. You'll be able to find them all (eventually) by selecting the tag Writing A Book.
So far we've discussed the idea that a book is a narrative, and that the reader is the hero, undertaking a journey to learn new things (to boldly go…). I suggested that you might even want to start your book with an explicit story, something to draw the reader in. So just how do you write in such a way that the reader wants to join you? I don't pretend to know, but there are some tricks that pragmatic authors use.
First and foremost, always remember that the book is about the reader, not the writer. Your job as author is to help the reader become proficient. You are a mentor, a guide. So always invite the reader along as you explore and explain.
The consistent use of pronouns is a great start. As the author, don't try to hide behind a passive or stuffy voice. Don't say “It is widely believed that…”. Don't say “One could argue that…”. Just come out and say it: “I think that…”. Engage with your reader.
Your reader is a person too, so address them directly. Say things such as “You'll need to install Xyz now” and “If you run the code now, you'll see the following output.”.
But remember, you're sharing a journey. So, whenever possible, try to use “we” and “our” to refer to the reader/author team. Don't start a chapter with “In this chapter I'll show you…”. Don't start with “In this chapter you'll find out…”. Instead, join the reader as they learn: “In this chapter we'll see how…”.
Remember what I said about the Dreyfus model in SYWTBAW 3? Novices want to be told what to do. So don't be afraid to use the imperative voice, particular early on the the book.
Here are a couple of paragraphs from the Rails book.
Back in xxxxx we sketched out the basic content of the products table. Now let's turn that into reality. We need to create a database table and a Rails model that lets our application use that table.
The migration has a sequence number prefix (001), a name (create_products) and the file extension (.rb, because it's a Ruby program). Let's add the code to this file that creates the table in the database. Go to the db/migrate directory and open the file 001_create_products.rb. You'll see two Ruby methods.
See how the reader and author share the journey: “We need to create”, “Let's add the code”, and so on. At the same time, the reader is told what to do: “Go to the …” and “open the file”.
Layered on top of all these tricks with pronouns, the book has to be readable and engaging. You need to find a way of injecting energy and passion into your writing. You have to make people want to turn the page, to learn more about your subject. Clearly, technical knowledge helps. A good turn of phrase can make the content more interesting. Light, casual humor (particularly if it is off-beat or subtle) can keep the reader on his or her toes. Adding the occasional piece of trivia or background can add a little spice.
But all of this is predicated on one truth: the voice of a book has to be your voice. It has to be genuine; it has to be you. This is probably the most difficult challenge an author faces on a new book project.
So—how can you find this voice?
My best advice is to look at your book's content and choose a chapter where you're really comfortable with the technical material. Then just sit down and start writing. Write without reviewing what you've written. Don't look back and correct stuff. Just write. Keep going for as long as you can. When you stop, save the file without rereading it. The next day, keep on writing. And continue the day after that. At some point, something will click in your head. You'll find your writing style suddenly gels. Your prose will start to flow and the words will start to hang together well. You'll know the feeling when it happens.
And when it does, here's what you do. Save the file you've been working on, and promise yourself you won't look at it again for a long, long time. Instead, choose another chapter and start writing. This time, you're writing for real. Still keep the flow going, but now it's OK (actually, it's vital) to go back and read what you wrote. Ask the readers on your shoulder what they think. Because now you're writing a book for real.
At some point you'll have to revisit that original chapter. My advice? Just throw away the one you wrote initially and do it again. It'll come out infinitely better than it would if you tried to make incremental improvements to your original prose.
When I write a new book, I follow this approach. I plan to throw away something like the first 30 or so pages. And, because I know I'm going to do it, it doesn't worry me. I no longer have writer's block. I no longer agonize over the voice in the first paragraph. I just churn it out until I feel comfortable, delete everything I wrote, and then start in for real.
In The Mythical Man Month, Fred Brooks advises project teams to expect to “throw the first one away.” That's still good advice after 25 years, and it applies just as much to the writing process as it does to software development.
Give yourself time. Give your book a voice.