I was wondering if any SO members have had the opportunity to self publish a programming related book. Do you have any advice regarding the process? I don't have any problem maintaining the structure of my book, table of contents, and actually pumping out the chapters. But what does one do for technical reviews, editing, proofing, etc. Have you used Amazon's self publishing services? How did you handle the marketing of your product? And most importantly how did you get the finished work in front of your readers?
I have 3 titles and ran out of patience marketing them.
I found it too hard to make them unique offerings in the marketplace.
Final preparation for publication was difficult to manage. The source is pure DocBook XML, but it required extensive customization.
See http://homepage.mac.com/s_lott/books/index.html.
Earn anything? Exactly zero.
More or less than I expected? About what I expected. It's hard. Without a track record and good connections with publishers and product vendors, it's hard to enter the field. It's a small market because it's so specialized.
I propose you a post form my blog "So you want to write a book?". It will probably answer (whole or in part) your questions. As requested, I will copy an extract of it, with the relevant points, but a lot is lost in the trimming (and I can't copy and paste a 2500 words article here...it's excessive)
- Writing a book is a full time activity. You cannot do it in your spare time, in particular if it’s technical.
- You cannot write it all by yourself. Writing a book involves many different revisions, ideas, and contributions. If you are writing a technical book, you have to posses both the knowledge of the technical facts and be able to present them properly. Who makes the figures? who collects the bibliography? Who revises what you write to see if it’s clear, or contains errors? No, you will not to everything by yourself. Either you will lack time, or skills. In any case, stuff like proofreading requires an external contribution.
- Can you keep the pace? Are you able to deliver the book before the argument is either obsolete, forgotten, or with so much hype that tons of books are published before yours ?
That said, the phases for writing a book are the following :
Planning
who is the target of your book? Entry level users, or power users? these targets carry a different book layout, examples, and concepts. Have your target clear before you start. Do a lot of research on other books and the internet. Spot what they provide, and what they don’t. How they organize their content. It would be better to know what are the chapters and what information they will contain, to have a bird’s eye view of what you are going to present. Chapters should have from 10 to 30 pages. Don’t expect to write chapter by chapter though. Sometimes you realize that it’s better to introduce some concept in an earlier chapter, so you end up moving stuff around. Chapters should be self contained units: a reader that already knows the concepts and language should be able to use a chapter, or even a section of a chapter, as a quick reference for a specific topic.
Partition the workload among collaborators so that activities can take place in parallel. They can work on different chapters, or they can work on different phases. Inconsistency could result, but you will resolve it at a later stage.
Finally, set deadlines. Even if you don’t have an agreement with the editor. As books don’t self-write automagically, you have to keep working on it, in particular because if you stop for some time, then you will have to check the status and recover, refresh your knowledge on the subject, etc. This has a huge impact on productivity. Once you start, keep running. If you stop, you will never finish it.
Research
Gather knowledge from websites, your personal experience or other books, in order to see the big picture of an argument. The know-how you accumulate will be crystallized into your creation. Even if you work on a novel, the ideas, events, ambient descriptions and plot details are gathered along the time from newspapers, actual historical facts, cities you visit, tales from your bedtime, personal or friend’s experiences, even dreams or nightmares.
Drafting
You create a draft by throwing your concepts roughly. Start with heavy hammering to create a rough shape, then refine this shape progressively.
Use a password-protected wiki or a source management tool for initial drafting. It is normally mandatory if you have multiple authors, but is highly suggested even if you are alone. During the process, you will need to check for differences, merge versions and so on. Resist the temptation to use Word (or OpenOffice).
Images
Producing images takes time, more than writing text. As a rule of thumb, you can consider an image to require the same time needed to produce 5 pages of text. Consider buying a tablet, it is way better than the mouse. Produce your pictures in vector graphics (PDF, SVG, Postscript) when possible. If you have a photo or diagram not requiring scaling, raster graphics (JPG/PNG) is fine, if sized to be nice for a resolution of 300 dots per inch (dpi), the resolution you normally use on printing paper.
Rearranging and reordering
Once the content is there, you will start reading the book, and you will realize that some concepts are ordered in the wrong way, or repeated, or not explained at all. You will start rearranging, deleting, reorganizing. This is the phase where you will mostly use version tracking, because you will often compare the current version with previous ones, eventually recovering old text.
Proofreading
Once the book is written (or when parts of them are crystallized enough to be considered stable) you can start proofreading. Proofreading is the sandpaper phase. Of course, you can still go back, but this will probably introduce some, eventually large, disruption.
Prepare a document about writing standards. Should “as we saw in Chapter 2″ have a capitalized C or not? Should enumerated lists start with a capital letter or not? Should they end with a period, a semicolon, or none? Having a big mix of all of them gives a highly unprofessional look to your book. Check references to images, chapters and citations. Check the font type and size for uniformity. Not only in the text, but also in the pictures. Proofread the captions, the pictures and the bibliography. Spot all the terms that could have been written in an inconsistent manner. Terms containing dashes are highly candidates. Note them down and then choose a style to be consistent. If you are not a native speaker, have a native speaker proofread the book. There are so many words, phrases and figure of speech that must be seen into context. Be careful when multiple persons are involved in the proofreading, as anyone has different criteria, you could introduce a source of further randomization. Check with your editor if they have special requirements for standard style. Remember, the process is iterative.
Layout
Editors normally provide you macros for layout purposes. Be sure to get from the editor all the information about what tools are better for him (and you) to go from draft to layout, and be sure to be proficient well in advance.
If you put code in the book, write it in monospaced (like Courier) font. I once saw a book with code written in Times New Roman, a proportional font. It was horrible.
Printing and publishing
If you use text quotations, pictures produced by others, or even by you while employed for a company or institution, do check about copyright issues.
Don’t expect to become rich.
Lulu.com is the best company I have used for self publishing. They allow you to sell on Amazon too.