Someone asked me yesterday what tools I use while writing a book. Organization is absolutely critical to me when writing. I have so many thoughts flying around that its really difficult to keep them all straight. That is why its imperative to have some tools to help organize the book writing process. The publisher provides some templates to write with in Word that are mostly helpful (and sometimes painful :) ). Here are some good tools that I am using while writing my new book Data Access with Silverlight 2 .
1. Microsoft OneNote 2007
I cannot stress enough how important this tool is to me. It helps me organize my thoughts by keeping track of code samples, ideas for demonstrations, stray notes, chapter flow, and things to come back to. I created a notebook in OneNote for my book and created sections for each chapter. Each chapter has several pages in it with ideas for the chapter. The first page contains the flow for the chapter with all of my ideas for sections in the book, as well as ideas for examples and figures. The rest of the pages go into detail for each of the major sections. When I realized I had too much information in chapter 2, I simply dragged the content from that chapter section over to the next chapter and I was done. One Note is great for things that pop up while you are writing, but you don;t want to get caught up in a tangent. I jot these down in the One Note notebook and come back to it later. One of the best features of One Note for writing is that you can search all of the content very easily.
2. Tech Smith's Snag-It
I am constantly needing to grab screen shots of menu's, windows and other of demonstrations for the book. This tool is easy to use and works very well. Enough said!
3. Tangible Software Solutions' Instant VB / Instant C#
These tools help convert code samples from VB to C# and back. It works very well and very fast! I've taken an entire project of a couple hundred C# files and converted from C# to VB and it handled it under a minute! There are some free solutions, but this one is my favorite so far.
4. Lutz Roeder's .NET Reflector
This tool is just plain awesome. Its been out for years and everyone knows about it. But for writing a book its great to help show the source code for .NET libraries. I found this especially useful when explaining Dependency Properties in my Silverlight book. Just jump right in, search for the class, and up pops the source code for the method or property you are looking for.
This tool makes it easy to create simple diagrams for the book. I create the diagrams in a PowerPoint slide deck and use Snag-It to create png files from them. I tend to save each slide for the book in the deck, too. This way I can go back and edit the diagram easily if I need to.
6. Paper and Pencil
This is my second favorite tool (OneNote being the first). Sometimes I just need to draw something without thinking about the tool at all. Paper and pencil is second nature to most of us as we can easily jot down an idea and draw it up much faster with a pencil .... fast enough that I won't lose my thought! My kids even laugh at me sometimes because I carry the pencil behind my ear :)