I had two primary goals for this project: (1) to learn how to write a book (and successfully complete one) and (2) to increase adoption of Go as an introductory programming language. Of course making a little money was a nice bonus but I knew going in that this project wasn't going to be super lucrative.
I’m not much of a business guy and I didn’t do a ton of research before I published my book. I suspect someone competent in this area could’ve made this project far more successful. But for what it’s worth here’s my 2 cents. You have the following publishing options:
Honestly I didn’t give a ton of thought to the options. I was pretty sure I didn’t want to do the whole traditional publishing thing. I didn’t know anyone, so it’s unlikely anyone would’ve taken me up on my book idea. And I’m a can-do stick-it-to-the-man kinda guy so traditional publishers didn’t much appeal to me anyway. (Ironically several publishers reached out to me after I released the book... I doubt they'd have given me the time of day before)
I knew I wanted a physical book, and I knew Amazon provided all these services, so I just used them. (Create Space and Kindle Direct Publishing) They're also the dominant player in this space. Since my primary motivation wasn’t money I also decided to distribute the book in its entirety online for free. I figured this would increase the book’s popularity substantially.
There are easier ways to make money than writing a book. If you’ve not seen it you should read this post by Jeff Atwood:
In short, do not write a book. You'll put in mountains of effort for precious little reward, tangible or intangible. In the end, all you will have to show for it is an out-of-print dead tree tombstone. The only people who will be impressed by that are the clueless and the irrelevant.
Obviously I don’t entirely agree with him, but I think it’s important to maintain a great deal of skepticism about the utility of the whole endeavor. With that caveat aside I’ll dig into some of the actual numbers.
First you need to recognize your market. You’re probably not writing the next Harry Potter. Which means you are on the long tail of the graph:
I decided to make my book cheap at 10$ for the physical version and 3$ for the kindle version. This was partially because I thought that might be a good price value for the book in terms of sales, but mostly because I think textbook prices are outrageous and 10$ seems more appropriate. (Because of this choice I’m probably leaving money on the table. Raising the price would probably lead to more sales not less)
For every physical book at $10.00 I make $3.16. For every ebook at $3.00 I make about $1.70. (KDP prices are complicated). Here’s a breakdown of my monthly sales:
Here’s the traffic I see to the website:
I left out September because of the Hacker News effect:
For a couple months I put some banner ads on the website and briefly experimented with Google AdWords, but I eventually dropped them both because I decided I don’t like advertising. (Though both were at least somewhat effective)
I use Google Analytics for the website and it’s more than enough for my needs. Amazon, on the other hand, has remarkably crude data. It's like they go out of their way to make it hard to read. I ended up manually entering most of that data into a spreadsheet to get a handle on it. (They also take a while to pay you...) Incidentally one downside to all this is you’ve really gotta be on top of stuff, especially around tax time.
I set up Google Alerts on the book and my name, which turns up interesting things sometimes. I also setup a Twitter alert using Twilert. (the vast majority of these are just links) The website is monitored with Montastic. (though its never gone down as far as I can tell)
I’ve received a lot of emails about the book. At first I got a few hundred, but now it’s maybe 2 or 3 a month. I’ve tried to be responsive and helpful but I’ll be the first to admit I’m not the best at customer relations. You’ll definitely want to be prepared for it though.
So that’s how I wrote my book. Overall it was a pleasant experience and I’ll probably do it again at some point. Feel free to contact me with questions - though I can't promise you I have any answers.