#[1]Atom Feed
[2]AndreGarzia.Com
[3]Blog [4]About [5]Books
[6]Writing a Technical Book
Posted Saturday, April 17th, 2021
[7]writing
I was inspired to write this post after reading a similar post called
[8]How to Write a Technical Book by SerHack. Not because there is
something wrong with their post, but because I’d like to focus a bit
more on what are your options, and also show how I like to work.
During the last ten years, I have published six technical books about
programming. Most of them are self-published works but I recently
published [9]Roguelike Development With JavaScript with [10]Apress
which is a traditional publisher famous for its programming books. My
first popular book was [11]Quick Guide for FirefoxOS Programming
published a long time ago. I really like that it got featured in the
Leanpub bestseller at the time, it made me really proud. Besides that,
I’ve spent the last sixteen years working for a major publisher of
Hindu Literature in English.
I love this cover... I love this cover...
The reason behind telling you all this, is because my comprehension
about book writing has changed and evolved over time, and what I think
is the best way to write a book today is not necessarily the same as my
own choices in the past. Basically, I don’t want you to repeat my own
mistakes.
Let’s break down the publishing process into three broadly-scoped
phases:
* preparation: in which you plan and prepare your dream book. This
plan will fail.
* writing: this covers both writing and editing.
* publishing: the hardest part actually, publishing and marketing
your book.
Every book project will need to go through all of those phases, and the
most important phase, the one that will actually cause your book to
fail if mismanaged is the third one. People often overlook how
important marketing and having a launch strategy is for a book.
Pressing publish and thinking that readers will simply flock to your
book is a myth. The other two steps can be fixed while you’re working
on them, and even if they’re not perfect, your book might still be
successful. Let’s dive a bit deeper.
Preparation
The first important decision you need to make is how much involvement
you want with your book project, because if you allow it, a book
project will swallow all your free time from the day you start it up to
the final heat death of the universe. A book might just be a hobby
project, or, it might be your job.
How much time you have to spend on it dictates how long it will take to
launch it. An important aspect of a book project are the tools and
workflows you’re using to produce the book. There are turn-key
solutions out there that require very little effort to use, opting for
such tools will free up time for you to focus on the other phases such
as writing itself, on the other hand, choosing more complex tools and
workflows will increase the amount of control and agency you have over
your project but will add friction and consume more of your time
budget.
I will explore more about these workflows on the section about
_writing_, but the decision on which workflow to use should come as
early as possible, preferably before you start actually writing the
book.
A good outline is worth gold
Your outline is the first step towards organising your mind. The most
important part of an outline is not what is in it but what you leave
out of it. Books, if left to their own devices, will attempt to grow to
wikipedia-size amount of content. You need to constrain your project to
something you can actually conclude and that still makes sense for your
audience.
The way I like to do an outline is to frame the book in terms of the
[12]Hero’s Journey. Your reader is undergoing a journey in which you’re
nothing but a facilitator. You’re not there to teach them, you’re there
to provide the tools necessary for them to learn by themselves. As the
book progresses, the reader is presented with concepts of increased
complexity. Throughout the book, these concepts need to coalesce into
sample projects built by the user to cement their understanding.
Initial brainstorm for my Roguelike Development book. It didn't go as
planned in there... Initial brainstorm for my Roguelike Development
book. It didn’t go as planned in there...
This means that the reader is not necessarily building a single big
project in the book, but several small ones. They may compose together
into a larger project, but they should be discreet enough for the
reader to experiment with them as they read the book and not only when
they finish it. The samples are not in service of the book, the book is
in service of the samples. The samples are built so the user progress
in their learning journey.
By reasoning about your book in this way, you will naturally create a
project in which the reader is the centre of attention. It is all about
their journey. This keeps the book interesting, and avoids one of the
most important pitfalls in my own experience which is writing a book
that reads like a dictionary or an encyclopaedia. I find those kind of
books useful as references, but they don’t usually make for a pleasant
reading experience when you attempt to read them from front to back.
My outlines are chapter based. I will write the chapter tentative title
and a bullet list of all that the reader should learn in that chapter.
The chapters will be organised so that all the content is written to
answer a need of the reader. The answer to that need might be in the
form of new concepts, or new applications of a concept that was
previously seen.
For many chapters in the Roguelike Development book the reader is
building a dungeon-crawl game with a fixed dungeon layout. To progress
in their journey to understand the basics of roguelike development,
they need to learn more about dungeon generation. A whole new sample is
built just to teach basic dungeon generation using BSPTrees; The
chapter is written to present these concepts but it is the reader’s act
of implementing the sample that actually unlocks the learning
experience. The following chapter is a new application of the previous
concept, the BSP-based generator is used to create multi-level
dungeons. It is a journey of understanding through tinkering with code.
It is important to understand that the outline is not written in stone
and that as you write your book, you’re allowed to revise it and
radically change it if you realise that it doesn’t actually work.
The book ended up with 9 Chapters and 314 pages. The book ended up with
9 Chapters and 314 pages.
Samples before writing
It is important to develop your samples alongside your outline. Unless
you’re super confident in your mental abilities to hold everything in
your mind as you plan your book, you will benefit from a practical
hands-on approach during this phase.
If each chapter will include a sample, then build them all now as you
write the outline. This will help you debug your own outline by
surfacing problems with your plan early before you’ve commit too many
words to the draft.
Once your outline and samples are good enough for you, it is time to
move on to drafting.
Writing and Editing
People who have never written a book tend to think that writing is the
hard part. It is not. It is the easy part. Creating your first draft of
a technical book is easy. The hard part is editing and revising it so
that your draft becomes something that is good enough to share.
If your outline has been through the initial debugging that happens by
building all the samples, and everything is fine with both the plan and
the samples, then writing will should feel like a natural consequence
of your plan. There should be little friction as all decisions about
what goes into each chapter have already been made, it just time to
write the content (I know, easier said than done, but easier than many
think).
This is also where you need to decide on a workflow, and just like
anything in the tech world, there are too many options and it is
impossible to recommend the perfect solution. These are some of the
things you need to decide about:
Traditional publishing or Self-publishing
Many people think that self-publishing is the last option that an
author should choose. That it only happens after they’ve been rejected
by too many publishers, that they give up and self-publish. This could
not be further from the truth. Many authors, me included, will consider
self-publishing first and only go the traditional route if they can
find a really good reason.
The discussion about this decision is too complex for me to tackle in a
simple subsection, so for now let me do a simple bullet list of pros
and cons for each.
Self-publishing
* PRO: You get more money per unit sold.
* PRO: You have full control over editorial decision.
* PRO: You have full control over all the process really.
* CON: You have full control over all the process really.
* CON: You need to do everything yourself, or hire people to do it.
* CON: It is harder to get your book into bookshops.
Traditional publishing
* PRO: You have a team working with you (on good publishers).
* PRO: You have professional editors looking over your draft.
* PRO: You don’t need to worry about the publishing part of the
process.
* CON: Publishing and marketing tend to be black boxes, you’re not
privvy to the plans.
* CON: Getting the book into bookshops still hard as most publishers
are POD for books that are not from really famous authors in the
tech field, you still can probably order the book from a bookshop,
but they might not carry stock in the shop.
If you choose to go with traditional publishing, this is where you need
to stop and start reaching out to publishers. Some cool ones in the
computer programming ecosystem are The Pragmatic Programmers, No
Starch, Apress, Pakt, Manning.
You should find who is the [13]acquisition editor for the area that you
want to publish in is in the publisher’s you want to work with. A good
way to do it is to pick competitor books and look at their frontmatter
to see who the editors were. They are usually a LinkedIn or Twitter
message away from you. Reach out to them with a pitch. If they like it,
they will tell you how their proposal process work. You will need to
adapt your outline to whatever that publisher needs, and then follow
their workflow.
Going through the self-publishing route provides you with much more
option. I can’t go over all the options available much like a web
developer can’t list all the possible ways to create a web app. What I
can tell you is that there are some really easy ways to do it, and some
others that are more involved.
Self-publishing, the easy way
In my own personal and very subjective view, the easiest way to
self-publish a book is through [14]Leanpub, which is a SaaS platform
that will not only provide you with the tools and workflows to write a
book, but also provide you with the means to sell it with their own
store handling all the logistics and payment. Your first 100 books in
Leanpub are free but after that you will need to go for one of the paid
plans. Depending on your needs it might be worth going with their Pro
plan which provides more features such as print-ready PDF export. I’m a
Pro user and published four books with them.
Self-publishing, the new easy way
A new lets-serve-all-your-author-needs solution that is growing a lot
in my heart is [15]Reedsy. They provide a marketplace to help you meet
all kinds of professionals you need—editors, copyeditors, marketeers,
cover designers, beta readers, etc—but they also have a kick ass online
editor for you to write your book. You can use their platform to write
the book, hire the professionals listed there to work on the book, and
from the same platform generate the eBooks and ready-to-print PDFs.
Also, they have a wonderful [16]YouTube Channel and [17]blog, with a
ton of content about creative writing. Their platform is more geared
towards non-technical books, but can still be used to create them.
To be honest, I haven’t covered half of all they offer. Just check
their page. They’re awesome.
Self-publishing, the desktop apps way
Do you prefer to work with desktop apps? Me too. So, the darling of the
industry is an app called [18]Scrivener. It is worth every penny. If
you’re not going to remember anything from this (very extensive) blog
post, remember this: Scrivener is worth gold.
I can’t stress how good Scrivener is for your writing career. It is
worth buying a license, and devoting time to master it. You will be
able to use it throughout the years and it will become your faithful
squire, always ready to lay a helping hand in your journey.
I'm writing a RPG book with Scrivener. I’m writing a RPG book with
Scrivener.
You can use it to manage your outline, your research, write your draft,
do all the revisions, and then generate eBooks and pdfs.
If you want even prettier eBooks, then combine Scrivener with another
app called [19]Vellum, and you’re good to go. Vellum is mac-only
though.
My latest book: [20]Development Oriented Development was planned,
organised, written, and assembled with Scrivener.
Cover for Development Oriented Development eBook Cover for Development
Oriented Development eBook
Self-publishing, the FOSS way
Yeah, I bet the FOSS readers among you were already getting nervous
with all the proprietary software listed above, right? Well, there are
many FOSS options. You can go with [21]novelWriter which is a tool that
I’ve discovered recently, and haven’t yet used, but that seems quite
promising.
It reminds me of Scrivener, but with the advantage of markdown, I’m
keen to try it out some day. Unfortunately, it doesn’t appear to
generate proper eBooks.
The swiss-army knife of book publishing in the FOSS world is
[22]Pandoc, which is actually used behind the scene by many desktop
apps and SaaS. It is an extremelly flexible and powerful tool.
Mastering it will take a while and might be beyond what you’re willing
to do, but it is worth it.
Another important app is [23]Scribus which is actually a Desktop
Publishing app like Adobe InDesign and Affinity Publisher. You can use
it to layout a book that you’ve written elsewhere, but it has a steep
learning curve compared to all the softwares listed in this article.
Drafting and Editing
Once you have decided on the tool you’re using, it is time to draft.
Your manuscript is the content of your book before it goes through
layout and typesetting. You will evolve the manuscript by creating
multiple revisions of it. Your first draft will go to an editor, who
will return it to you after their initial pass is done. You will repeat
this ping pong with editors, copyeditors, technical reviewers, and
artists, until all the stakeholders are happy enough.
The first draft sometimes resembles the final book very little, in
other times the editor is basically fixing just some little grammar
mistakes. This depends not only on your draft, but also on your editor.
Some publishers might be understaffed and their editors don’t have
enough time to invest in your project, you might be self-publishing and
paid just for simple copy editing instead of developmental editing.
It is important to realise that this initial draft is not your final
product. It needs to go through revision, and that the revision
objectives are beyond just fixing grammar and typos. You might need to
refactor much more. That is when alpha readers become very valuable.
Give the book to trusted readers and let them help you figure out what
needs changing. If you’re into FOSS, develop the book in the open and
let contributors help you all the way.
By the end of this process, you should have eBooks and maybe
ready-to-print PDFs.
Publishing and Marketing
Oh boy, I’m shooting myself on the foot here. It is impossible to cover
all that one needs to know in just a section of a blog post. Let me
first plug an online course: [24]The Self-Publishing formula. They have
many courses, a podcast, and a community that covers all you might need
to know to make your book a success after you have actually written the
book. It is not cheap, but it will cover so much content. It will teach
you so much stuff. If you counted the hours you’d spend to research and
learn all that on your own, you’d end up spend more time and money than
actually paying for the course. I’m a happy student there. Be aware
that the course is focused on fiction and not technical publishing, but
that the methods and tools presented there work just as well for tech
books.
It is important to have a marketing plan. Hitting publish is no
guarantee of success. Readers won’t magically appear unless you have a
large following already. Heck, maybe you’re Evan You writing a book
about Vue.js, when you hit publish, readers will definitely flock to
your book. Heck, I’d buy your book. But for most authors, having a
marketing plan is a must.
Some things that will really help your book:
* Be active in the communities around your book’s main topic. Active
doesn’t mean keep plugging your book, it means be a good citizen in
that community and help others without constant upselling.
* Depending on your niche, you will need to pay ads. I don’t have any
experience with them, but that course mentioned above does.
* Make it easy for readers to engage with you. Their success will
bring a smile to your face.
* If being an author is part of your life, and you can see yourself
publishing many more books. Create a mailing list to keep track of
your writing. Encourage your readers to sign up with [25]reader
magnets.
You need to actively promote your books even if you’re not
self-publishing. Traditional publishers will put too many books out
every year and they will put marketing effort on the big sellers only.
You need to help sell your books, no one will do it for you (unless you
hire someone to do it of course, go see Reedsy).
Anyway, this has been a gigantic blog post. Kinda of a brain dump. If
you want to know more about any aspect of what was written here, feel
more than encouraged to reach me over Twitter, Mastodon, or
WebMentions. The contacts are below this post.
Did you enjoyed reading this content? Want to support me?
You can [26]buy me a coffee at ko-fi.
Comments? Questions? Feedback?
You can reach out to me on [27]Twitter, or [28]Mastodon, [29]Secure
Scuttlebutt, or through [30]WebMentions.
Mentions
© 2005-2021, Andre Alves Garzia
☕ If you want to support me, you can [31]buy me a coffee. ☕
💖 This page was generated by Racket 8.1 + Pollen 3.1.2792.636. 💖
Feed is available via [32]Atom. I am also available on [33]Mastodon,
[34]Github, [35]Sourcehut, [36]Secure Scuttlebutt and [37]Twitter.
My photo [38]Andre Alves Garzia André Alves Garzia
Andre is a Mozilla TechSpeaker focused on decentralisation technologies
and is an active member of the Secure Scuttlebutt community. In the
recent years he published books about Firefox OS and managed a Web
Literacy program in vulnerable neighbourhoods of Rio. He is a firm
believer in empowerment through technological experimentation. His now
lives in London with his wife, cats and more IoT boards than he can
ever put into use.
References
1.
https://andregarzia.com/feeds/all.atom.xml
2.
https://andregarzia.com/index.html
3.
https://andregarzia.com/recent.html
4.
https://andregarzia.com/about.html
5.
https://andregarzia.com/books.html
6.
https://andregarzia.com/2021/04/writing-a-technical-book.html
7.
https://andregarzia.com/topics.html#writing
8.
https://serhack.me/articles/how-to-write-technical-book/
9.
https://books2read.com/u/mZeXXe
10.
https://apress.com/
11.
https://leanpub.com/quickguidefirefoxosdevelopment
12.
https://en.wikipedia.org/wiki/Hero's_journey
13.
https://work.chron.com/acquisitions-editor-do-8140.html
14.
https://leanpub.com/
15.
https://reedsy.com/
16.
https://www.youtube.com/channel/UCpo0MkTAyEl73PmIVs8CQvQ
17.
https://blog.reedsy.com/
18.
https://www.literatureandlatte.com/scrivener/overview
19.
https://vellum.pub/
20.
http://andregarzia.com/books/development-oriented-development.html
21.
https://novelwriter.io/
22.
https://pandoc.org/
23.
https://www.scribus.net/
24.
https://selfpublishingformula.com/
25.
https://www.indieauthorplatform.com/what-is-a-reader-magnet-and-why-do-you-need-one/
26.
https://ko-fi.com/andregarzia
27.
https://twitter.com/soapdog
28.
https://toot.cafe/@soapdog
29. ssb:@gaQw6z30GpfsW9k8V5ED4pHrg8zmrqku24zTSAINhRg=.ed25519
30.
https://indieweb.org/webmention
31.
https://ko-fi.com/andregarzia
32.
https://andregarzia.com/feeds/all.atom.xml
33.
https://toot.cafe/@soapdog
34.
https://github.com/soapdog
35.
https://git.sr.ht/~soapdog/
36. ssb:@gaQw6z30GpfsW9k8V5ED4pHrg8zmrqku24zTSAINhRg=.ed25519
37.
https://twitter.com/soapdog
38.
https://andregarzia.com/