How I Self-Published a Programming Book and Lived to Tell About It

Self publishing programming book

About a month ago I released my first book Practical Debugging for .NET Developers. It was a pretty crazy journey and I learned a whole bunch of new things. Besides the actual writing, there are a ton of things involved in publishing a book. There’s the book cover, editing, book formatting, publishing to a marketplace, creating a landing page, and promoting the book. I’ll tell you how I did all those things for better or worse.

Before starting, I’ll mention that writing a technical book is a huge project. Especially if you combine it with a regular day job. During the ten months that I wrote the book, I spent every single weekend and holiday working on it. I took about 15 days off just to work on the book. This is considering that I was a seasoned blogger by that time and had about 50% of the book’s contents and research already done before even starting to write. Overall, I’d say the entire thing took about 500 hours of work. That’s over three months of a full-time job and I probably got off easy. Konrad Kokosa, who published a book on a related subject, tweeted that he spent 1362 hours on his book. So keep that in mind before deciding on writing a book yourself.

Traditional Publishing vs Self Publishing

Once you decide to write a technical book, the first big decision is whether to go with a traditional publisher or self-publishing. You don’t always have the choice for traditional publishing, but since I had a popular blog by that time, I had a few offers on the table. Here’s what I gathered from my discussions with several publishers and some research:

In traditional publishing you work very closely with the publisher every step of the way. When starting, you’ll submit the outline, perhaps a sample chapter, and start negotiating the contents. I say negotiate because as an author you don’t have the final say on what gets in the book. The publisher owns the rights and they often have strong opinions. That’s not always a disadvantage though because publishers tend to know how a good book should be written. The process then becomes an iterative ping-pong between you, the proofreaders, and the editors. You submit a piece of content, get notes, fix them, submit again, get more notes, etc. I would guess the publisher’s participation varies greatly between publishers.

In traditional publishing, you get an advance on the book. The amount is somewhere between 2000$ and 5000$, depending on how well the publisher thinks you’ll sell. That’s an advance on future royalties, but if you do the math you’ll find that there’s a slim chance to earn more money beyond that. Traditional publishers take 84%-90% of the book profits. This means that if your book sells for 40$ on Amazon, then Amazon will get 28$, the publisher will take about 11$ and you’ll be left with about 1$ for each sale. This is not considering the publisher’s expenses which include printing costs, book cover fees, editor fees, and proofreader fees. So the 1$ royalty I mentioned is probably an over-estimate.

Although the 84-%-90% numbers and the 2000$ advance are real offers I got, my royalty calculations are just guesswork. They might be completely different—for example, some of those publishers have their own marketplaces where they don’t have to give Amazon their pound of flesh.

Given these calculations, you can figure that you won’t get rich going with a traditional publisher. Consider that selling 1,000 books is considered good and selling 5,000 copies is considered a big success (as I was told by one of the publishers).

So what are the advantages of traditional publishing? The most important things you get are help writing the book, reputation, and arguably help to promote the book.

The publisher will provide you with the program to write the book, the book cover, the editor, and the technical proofreaders. You don’t have to worry about anything except for the actual writing. The technical proofreaders are the most important piece here because you absolutely need professionals to go over your book and look for errors and missing information. The other stuff is also important but actually not that difficult to do yourself as I’m about to tell you.

The reputation of a traditionally published book is probably the most important pro to go the traditional publishing route. After all, we’re not doing this for the money (even when self-publishing). A traditionally published book looks very good on a resume. There’s also the matter of conferences to consider. If you’re planning to try and get yourself as a speaker in meetups and conferences, an O’Reilly or Apress book is probably going to get you an easy pass. That doesn’t mean a self-published book isn’t meaningful. It’s just probably less meaningful.

The final thing is the idea that the publisher will promote your book and help in sales. That’s mostly fictional from what I gathered. The publisher (probably) won’t advertise the book or help you get into conferences. They will place the book in their respective sites and marketplaces and add it to various bundles and Black Friday specials. They’ll probably send an email to their subscribers and advertise on social media. And in the very rare instance that your book is a best seller you might get more exposure and even paid advertisement. I’m guessing promotion varies greatly between different publishers. But the vast majority of your book’s promotion is still going to have to be done by yourself.

In self-publishing the rules are quite different. You have all the rights of the book and all the profit from the sales. If you have a vision of how it should be written, no-one will tell you otherwise. On the other hand, you have to do everything yourself. This includes the book cover, editing, book formatting, promoting, and publishing. But even though it might sound impossible, you’ll see in this article that it’s actually not such a huge deal.

As you understand, I chose the self-publishing route. I knew that all the things a traditional publisher offers are something I can do on my own. The only thing that I can’t get is the reputation of a traditionally published book. But the idea of having to negotiate how I want to write the book and having no rights to it is what convinced me to self publish. That, and the idea that I’m getting a very unfair deal in terms of the royalties. Although it’s important to emphasize that there’s little money to be made in book sales and I’ll probably never get my hourly rate for the time I spent.

Starting to Write

Now that you decided to write the book, how do you actually start doing it? Should you start a new Word document or is there a better way?

My best advice when it comes to writing a technical book or article is to use Markdown. It’s a lightweight markup syntax that’s perfect to add screenshots, code snippets, footers, etc. Here’s an example of how a few paragraphs might look in markdown:

Trust me when I tell you that writing in markdown is amazingly productive.

There are many Markdown editors for books. Most of the good ones are for Mac (I’m a Windows user myself). I tried a few and ended up with Typora, which I can’t recommend enough. It’s an absolutely amazing tool and still free because it’s in beta. I now do all of my blogging and book writing exclusively with Typora.

You might start to think whether this markdown file can be turned into a PDF file, an ePub, or a MOBI? And what about a table of contents, page numbers, styling, etc? That’s not going to be a problem when you’re writing in Markdown and I’ll tell you all about it when we talk of book formatting.

My next piece of advice if you’re blogging or writing a book is to use source control. Place the entire manuscript in a private repository and commit each change. GitHub now allows free private repos and it’s pretty easy to set up. All the history is stored, so I could always go back to what I wrote before. There’s also the matter of easily working on different machines. But the biggest advantage is the peace of mind I got that my manuscript was backed up in the cloud. Another thing that’s great about Markdown is that it’s plain text, so you can easily see the changes in source control.

The Process of Writing & Proof Readers

Writing a book takes forever. Or at least it did for me. For one thing, the research takes a ton of time. It might be forgivable to make a mistake in a blog post but not so much in a published book. Then, there’s the writing of the first draft. If you’re like me then the whole idea of a draft is hard to accept. I can’t finish a single sentence without being happy with it, not to mention a book. But it’s what they recommend, so I forced myself to write a whole book I wasn’t pleased with. Then comes the process of reading the book, rewriting, reading it again, rewriting again, and repeating for what seems like an eternity. At least this is the part where I got to turn my writing into something I’m happy with.

One of the most important parts of writing technical books is proofreaders. I can’t stress enough how crucial it was to have smart professionals go over my book and point out mistakes, omissions, parts I needed to elaborate more, and parts that I needed to remove. I was lucky to get that help from my team at work. That’s not always an option, which is a point in favor of traditional publishing, who provide their own proofreaders (although I’m not at all sure of their quality). After getting notes from my proofreaders, I pretty much rewrote half of the book.

Editing

Once the manuscript was done, I needed to find a lingual editor. That was especially important for me because I’m not a native English speaker. I was surprised to find out that there are different kinds of editing. There are editors that help with the book structure and story, which are sometimes called content editors or development editors. Then, there are copy editors that correct punctuation, grammar, comma placement, etc. Finally, there are line editors that make sure your lines and paragraphs are concise, sharp, and clear. You can have a single person do several types of editing.

There’s also a program called Grammarly, which is really a wonder. It corrects spelling mistakes, suggests different phrasing, and acts as a free automatic copy editor. Grammarly isn’t enough though, and you do need an actual person to go over the text. Well, at least I needed to.

Editing was the biggest expense in the whole process. It amounted to about 1000$ for a book of 70,000 words. I used Upwork to find the editor. I first created a 30$ job to copy-edit and line-edit an introduction chapter. Out of three editors that I hired, I chose the best one and proceeded to the entire book with him. I can’t say that I’m too happy about this because the proposed changes and impact were relatively small (after Grammarly) and the expense was so big. But I suppose it had to be done.

The process was me exporting my markdown chapter to a Word document and sending it to my editor. He returned the document with Word’s Proposed changes feature which showed his suggestions. I then placed the word document side by side with the markdown and manually changed what I saw fit. I experimented with importing from Word back to Markdown but all attempts turned out to be worse than manually going over the changes.

Book Cover

A book cover is pretty important in my opinion. Even for a technical book. It gives the book a certain personality and an air of professionalism. Here’s what I ended up with:

There are a ton of services that provide book cover designs. Here are the ones I considered:

  • Fiverr offers relatively cheap professionals to design the book cover. They go as low as 5$, though the good ones charge as much as 100$ if you add the eBook cover, print cover, spine, and 3D mockup (which you should). Fiverr has a somewhat bad reputation for poor quality but I found the designers there as good as in Upwork. My own book cover was done in Fiverr.
  • Upwork is both similar and different from Fiverr. In Fiverr you can choose from preset jobs with fixed price. On Upwork, on the other hand, you create a Job and set the price yourself. Freelancers offer bids on that job. In Fiverr there’s very little communication with the freelancer. On Upwork, there’s quite a lot, and it’s expected to communicate a lot until the job is complete.
  • 99designs has an interesting offer. You pay a single fee of about 300$ and dozens of professionals create a design for you. The one you choose ends up with the money. You can ask for revisions for the chosen item of course.
  • Reedsy has some of the best professionals in the book publishing business. This includes editors, proofreaders, book cover designers, book formatters, etc. Unfortunately, they are quite expensive.

I ended up paying for four different designs in Fiverr and one on Upwork. Most of them were terrible but I ended up with a good one I think. This cost me about 350$, which means I could have chosen the 99designs approach, to begin with. Lesson learned for the next book I guess.

Landing Page

A dedicated website for your book is important, especially if you’re self-publishing. If you already have a blog like me, you can just create a dedicated landing page, but I still chose to create a new website. The website is where you can write a long description for the book, give a sample chapter, gather emails for your list (you have to have one of those), and sell the book of course.

There are a lot of options to build a landing page for the book. For myself, I chose WordPress and Elementor, which is one of the best and cheapest combinations. WordPress is extremely extensible and you’ll be able to add whatever you want to your site. Elementor is probably the best page builder for WordPress. The upside of this combo is that there are a ton of freelancers on Fiverr and Upwork that will design your landing page using Elementor. And it’s super easy so you can customize it yourself without any prior knowledge.

To set this whole thing up, I first created a WordPress site with Cloudways.com (which is fantastic), paid for an Elementor subscription, and then hired four freelancers on Fiverr to design the site. I asked each of them to create a home page for me and chose the best one. This cost me about 300$. Unfortunately, the results were disappointing. All of the landing pages turned out bad and I had to customize the site myself to get a decent result. Maybe I should have tried more expensive freelancers on Upwork or perhaps that’s just the state of the industry.

Book Formatting

About a year after I started writing the book, the thing was finally ready. Ten chapters and 70,000 words that I was both scared out of my mind and excited to release to the world. But this had to be transformed from markdown files to actual book format. This includes a greyscale PDF for print, a color PDF eBook, and an ePub + MOBI for various book readers like Kindle.

The program Pandoc can transform a Markdown file into any format you can choose. This includes transforming to a Word document, a LaTeX file, a PDF, an ePub, and others. Typora integrates with Pandoc and I could have created an eBook with the click of a button. But there are a ton of details that go into book formatting, and to look professionally, the book has to be properly designed with a program like Adobe InDesign.

I exported my first chapter into a Word document and created a job on Upwork for 300$ to design the whole book. I got all sorts of offers, including comments that claimed this kind of job is priced at 1500$. Still, within a few hours, I found someone and started working with him.

The work with the book formatter was pretty daunting. I must have reviewed about 40 documents until the book was formatted to my liking. I felt that I chose poorly because every PDF version the freelancer produced had a ton of mistakes. Those included indentation issues, inappropriate font, bad image scaling, and every possible problem you can think of. Still, he was very communicative, and after two frustrating weeks of feedback loops, the book was ready.

Videos

In addition to the book itself, I also created a series of video clips. I felt some of the tools were too difficult to explain with screenshots in a book, and a video was required. I eventually turned up with 24 videos that contained over 5 hours of content. This means that every few pages my book contains a note saying “Check out video XY that explains how to use this technique”.

Recording videos isn’t an easy feat either. Recording even a 5-minute video took me as much as two hours. That included preparing the demo, recording myself five times until I get it right, and then editing for an entire hour. I got pretty good at using Camtasia, which is probably the best software available for video tutorials and courses.

Publishing and Selling

Surprisingly, publishing and selling the book turned out to be easier than I expected. Not easy exactly, but easier than I figured.

I published to two marketplaces: Amazon Kindle Direct Publishing and Gumroad.

Publishing to Amazon

Amazon completely transformed the book publishing industry by allowing self-publishing to be easy and accessible. I’d say that self-publishing was entirely negligible up to a few years ago and now it’s a huge competitor to traditional publishing.

Amazon provides two ways to sell books. They have a print on demand service for paperback editions and they have an eBook marketplace for Kindle. Books for both services should be submitted via the KDP portal. You’ll need a PDF for the paperback and a MOBI file for the Kindle. And the book cover for both of them of course. There are a ton of guides and tips about publishing to Amazon, so I won’t get into too many details. The only worthwhile thing to mention is that you don’t need an ISBN number because Amazon provides one for you.

Publishing to Gumroad

If you’re self-publishing then you’ll want to sell books directly from your site. I did some research and found Gumroad, which is a perfect platform for this. They provide an extremely easy platform to sell digital products. I integrated a simple script and some links into my site and in about 30 minutes I was able to charge credit cards and PayPal for the book and videos.

There’s a small difference in royalties. While Amazon takes about 70% for each sale, Gumroad takes 5%.

Summing Up

All in all, I spent about 500 hours working on the book and video series. My time was spent this way:

  • 370 hours writing and editing the book. This includes the initial draft, editing, rewriting after proofreaders, and rewriting after the copy editor.
  • 80 hours preparing the videos.
  • 50 hours working with freelancers on the book cover, book formatting, website design, and book editing.
  • 10 hours working on the website after the initial designers.
  • 5 hours publishing to Gumroad and Amazon.

There’s also a lot of hours I spent promoting the book which I’m not including here.

My expenses were about 2500$ divided this way:

  • 350$ on all the book cover designs
  • 300$ on book formatting
  • 1000$ on copy editing
  • 300$ on website designers
  • 49$ on Elementor license
  • Hosting was free because I use the same VPS for the blog and the book’s website. But it would cost 120$ yearly if I hadn’t.
  • 15$ yearly on the domain name
  • 468$ on ActiveCampaign for the email list (you can go with MailChimp for a cheaper option)

Writing a book was a huge challenge. Self-publishing it probably made it even harder. I don’t think I’ll recommend this to anyone any time soon. But it’s certainly very rewarding. Right now I’m still exhausted from the process but ask me in about a year and I’ll tell you how great it was.

Share:

Enjoy the blog? I would love you to subscribe! Performance Optimizations in C#: 10 Best Practices (exclusive article)

Want to become an expert problem solver? Check out a chapter from my book Practical Debugging for .NET Developers

8 thoughts on “How I Self-Published a Programming Book and Lived to Tell About It”

  1. Great post Michael, love seeing the behind-the-scenes work, but I never get down to writing some myself 🙂

    This pretty much sums it up. The self-publishing process is long and hard, but it pays off.

    As for the Amazon KDP, we decided not to go with it since the fees are crazy. In my honest opinion, I would rather offer a discount to those that need it than pay such an outrageous fee for a service.

    When can we expect the next book? 🙂

  2. Hello Michael, what do you mean with 5 hours publishing to Gumroad and Amazon? Is this the approval process? Is it 5 hours to publish the digital book? If so, it seems too much time.

    1. On Gumroad, creating the account and uploading the digital content was pretty immediate. But I had to do some tweaking with the popups Gumroad displays. And most of the work was integrating the Gumroad popups to my site.

      On Amazon, submitting of the book is a bit more lengthy. You have to go through a rather long process of adding the PDF and MOBI. This includes difficult questions like choosing paper color, choosing Matte or Glossy paper, etc. Also, uploading the book cover with the Back & Spine in the right format was a bit tricky. Then, the approval process was 1-2 days, which I didn’t include in this time.

  3. Well, I guess Gamestop began their PS5 preorders. I missed them again! Whyyyy. Looks like I’ll be playing PS4 a little longer. I don’t know anyone who was able to get their preorder. Do you?

Comments are closed.