So You Want to Write a Book?

It's November again that means it's another time with a lot of people are focused on writing. I think it all got started with the National Novel Writing Month but it has been co-opted by other groups or efforts as well.

For example there is the National Blog Posting Month, which even had sub groups focused around particular topics -- Django anyone?. Also, the folks at Pragmatic Programmers have started there own focused effort of encouraging technical book writing this month, called PragProWriMo.

This is something that has long peeked my interest. I am an on again / off again blogger (or is that rambler). Not to long ago I published a feature article for Python Magazine and have several more article ideas queued up. I have written outlines and discussed ideas with various publishers about writing a book, however, I have never moved forward with the idea.

It always and inevitably comes down to not having enough spare time. I am not giving up on the idea and once again this month I am inspired to figure out how to carve up enough time to make headway on some of my book ideas, but I am not optimistic.

That said, I found an excellent series of posts by Dave Thomas aka PragDave entitled "So You Want to Write A Book" or SYWTWAB (why do people with technical bents always tend to make acronyms out of evertyhing?) that was authored more than 2 years ago but is still very useful and inspiring today.

SYWTWAB 1 - So You Want to Write A Book

This intro post to the series summarizes with some good advice that the only way to see a book through is start with Passion, Evangelism, and Practical Knowledge, on the topic you want to write about. For the topics I want to write about I am lacking in none of these, so we'll see about how to do it with limited time.

SYWTWAB 2 - The Hero's Journey

In this post, Dave discusses how to transform otherwise dry and boring material to engage the reader like good fiction. This is accomplished through leveraging storytelling patterns like "The Hero's Journey". Good stuff!

SYWTWAB 3 - The Hero's Journey: Are You Experienced

The Dreyfus Model and taking your Hero from novice to expert make a very good point that learning and gaining experience is not a linear progression even though most technical books are written this way. Start with simple but meaty examples showing practical and useful solutions and lead up to more conceptual and theoretical toward the end. I can't tell you how many books I have read that are just the opposite (1 or 2 chapters at the beginning explaining very abstract terms about a new technology that I just want to get rolling with and further have less of a context to appreciate the abstract).

SYWTWAB 4 - Readers on Your Shoulders

Putting readers on your shoulders is an interesting concept where Dave suggests imagining people that you know at three different levels of expertise. Then you imagine how they'd react to reading what you are writing as you write it. This sounds very much like developing Personas when designing a software system. Get to know and make the "users" real as you are creating to keep in touch with your "audience".

SYWTWAB 5 - Finding Your Voice

Dave says to throw your first 30 so pages away when starting a new book. This will take the pressure off at the beginning and help remove writers block. It will also help to find a natural rhythm for words and phrasing that will be your true voice.

SYWTWAB 6 - Wrandom Writing Wrules

A bunch of good tips in this article:

  • No distractions
  • Don't fuss with formatting
  • Scheduling your writing time
  • Do the difficult parts first (once you establish your voice)
  • Cut and paste, frequently.
  • Get feedback, early and often.
  • Save and backup often
  • Cross reference
  • Write Light Outlines, Not Detailed Ones

SYWTWAB 7 - Reviewers, And How Not to Kill Them

This last post provides some tips on dealing with varying approaches and personalities found in reviewers. Dave also stresses how it is important to cherish reviewer feedback as its hard to make a book really great without it.