Writing a Programming Book in 2021 (part II)
Table of Contents
This post is a continuation of a previous one where I explained some aspects of my experience writing and self-publishing a programming book. Well, yesterday the blog multiplied its traffic by 100,000. I thought the server was under attack. Someone sent the link to Hacker News and the traffic started flowing. Thanks to all those who took their time to read the post. There was a good number of comments about self-publishing, programming books, publication-quality, editors, etc. Some of the comments were written by other published authors and shared their experiences and concerns. Comments were respectful, something I do really appreciate in these times of trolls and bullying.
My original post was not intended to be a profound discussion about the aspects of self-publishing. There is already a lot said about this topic and I only wanted to exchange part of my experience. It was published a month ago and now that I read it over I can confirm it only overviews part of my experiences in the self-publishing journey. I write this second part to comment on some of the ideas and concerns exposed in the mentioned comments.
TL;DR
Writing a book gives you credibility#
Someone mentioned that nowadays adding an extra line to your CV saying you wrote a book cannot give you any credibility. I do agree. Then why I said that? Simple. If you see in my CV that I worked at Google that gives me more credibility? Maybe. Or maybe I was invited to leave after two months. If I affirm to program in C/C++, Python, and Java do I have more credibility than someone who only does Python? No. Additional checking has to be done.
I understand this comment. Writing a book per se cannot boost your credibility. Any line in your CV should give you more credibility without context or some additional checking. I have seen CVs where candidates affirmed to have been researchers in top universities. They simply attended seminars without any real collaboration.
Your credibility cannot boost only because you wrote a book. Is the book itself and the content what can boost your credibility, not the fact of writing a book.
Self-publishing is the new vanity-press#
I do agree. There is some vanity in every publication. That is why researchers fight for the order their names appear in the list of authors. Holding a paper or book in your hands with your name in it is always a pleasant experience. Something similar happens with blogs. Probably this blog itself is proof of my vanity. Think about Twitter, the most devastating example of self-published vanity press.
The main difference could be on the value or utility of what you have to say. However, I do not think books are sold because of their utility, quality or publishing house. And this applies to well-recognized publishing houses. We all have bought a book about a topic we thought it would be helpful and two days after it was in the trash can. At least the author boost her vanity.
A good editor makes the difference#
Absolutely. A good editor can be the difference between a poor, a decent, and an extraordinary book. The editor must show enthusiasm about what you are writing. This is easy to know. As soon as you get comments, reasonable comments I mean, you can expect a fruitful collaboration. A good editor will tell you things you will not like hearing just to ensure quality.
From the comments, I get there is a general concern about pirate editors. A pirate editor is looking for money and does not care about the outcome. Some self-publishing houses charge authors to pay part of the expenses of the editorial process. They do not expect to sell books because the author already pays for everything. Theoretically, they provide you with reviewers, proofreaders, etc. Unfortunately, reviewers and proofreaders do not usually do their job ending in the same outcome you would have got doing everything on your own. If you have doubts just check Google before signing any contract.
Technical writers do not know what they write about#
I think this is linked with the dichotomy between quality and quantity. Editors have a lot of pressure for making money. They have to look around for new topics to make people buying books. Think that the first book explaining that buzzy concept you read on the Wire magazine can make good money. This forces editors to look for authors to finish their work in a short time under tons of pressure. You cannot expect an impressive result.
Technical authors looking for profits#
If you published a book (fiction or not) and you think you will live on the royalties you have a problem. Profitability is the last word that should come to your mind when thinking of publishing a book. It is a matter of statistics. Do you think all the authors you may find selling books on Amazon can make a living out of that? If you have published a technical book and things go extraordinarily well you cannot quit your job. Even the same for fiction books. However, in this case, you may be lucky and get awesome royalties for merchandising, movies, TV series, etc.
Editors, publishing houses, Amazon, and other platforms steal your money#
A long topic I do not want to discuss in detail. In my case, I only published with Amazon KDP. I have no experience in other platforms and editors so I do not have an opinion about that. Indeed, the amount of money you get from every book on Amazon varies. For ebooks, you can get up to 70% of the final price if you fulfil some requirements. If not you only get 35%. For printed books you get 60% after discounting the printing costs. Are these percentages appealing? Or is this a tyrannic tax imposed by Amazon? If you consider that you had to go through the whole publishing process on your own this might be excessive.
About eager editors… Well, editors have to be paid. I mean, editing a book is a job and it is not an easy one. If you consider your editor is charging you too much, you must not go with that. It is impossible to work with someone you think is taking something from your pocket.
Recent language adopters are more empathetic#
I do agree. For early adopters, it is easier to point out those pieces of technology that generate friction during the learning process. If you have recently learnt a programming language you have gone through a process that changed your mindset. Even when you use several languages daily, you have to change the way you think depending on the used language. Early adopters are more conscious of the particularities of a programming language. When you spent 10 years programming in Java you probably are no longer aware of its verbosity. Experienced developers understand (or should understand) the motivation behind certain aspects of a language. And what is more interesting, they get more insights about what makes a language particularly suitable for certain tasks. Although, this can only be achieved if you learn new languages from time to time so you can compare.
Languages are learnt through examples#
I do agree. Children learn by imitation. They watch their parents, they listen to how they talk and then repeat what they hear. Programming languages are the same. Developers must learn to read code. In particular, others code. The more examples you have available, the easier will be for you to adopt that new language. Once you learn the foundations you can go deep into the particularities of that language.
Write for an audience#
In my previous post, I wrote this quote attributed to Einstein “You don’t really understand something unless you can explain it to your grandma”. I find it surprising how people reacted to this quote talking about my paternalistic style and suggesting its removal ¿? I think this an example of how quotes are taking out of context, or simply assumed to be literal (an example of postmodernism?). I am not sure if Einstein really said that. What I can confirm is that you fully understand a topic if you can elaborate an explanation from scratch independently of your audience. And I think that is what this quote is all about.
If you are an expert in quantum computing but you can only talk to your lab colleagues about the topic I would not say you fully understand the topic. Why? Because one of the most difficult tasks is to develop the empathy needed to expose complex ideas to different audiences. And this includes understanding all the derivatives of a complex topic. This is why the best mathematician may not be the best teacher for six-year-old children. Someone will say that these children do not need to know how Perelman demonstrated Pointcaré’s conjecture. Of course not. But I am sure they would enjoy, some nice plot figures, an introduction to geometry, Perelman’s story… That is your topic adapted to your audience.
Thanks for reading.