david wong

Hey! I'm David, cofounder of zkSecurity and the author of the Real-World Cryptography book. I was previously a crypto architect at O(1) Labs (working on the Mina cryptocurrency), before that I was the security lead for Diem (formerly Libra) at Novi (Facebook), and a security consultant for the Cryptography Services of NCC Group. This is my blog about cryptography and security and other related topics that I find interesting.

Writing a book is hard posted October 2019

I am now half-way in the writing of my book (I wrote 8 chapters out of 16) and I am already exhausted. It doesn't help that I started writing right before accepting a new position for a very challenging (and interesting) project. But here I am, half-way there, and I think I'm onto something. I can't wait to get there and look at the finished project as a real paper book :)

To give you some insight into this process, let me share some thoughts.

Writing is hard. I have realized that I need at least a full day to write something. It does take time to get into the zone, and writing in the morning before work just doesn't work for me (and writing after work is even worse). As JP Aumasson put it (about his process of writing Serious Cryptography):

I quickly realized that I didn’t know everything about crypto. The book isn’t just a dump of my own knowledge, but rather the fruit of hours of research—sometimes a single page would take me hours of reading before writing a single word.

So when I don't have a full day ahead of me, I use my limited time to read articles and do research in topics that I don't fully understand. This is useful, and I make more progress during the week end once I have time to write.

Revising is hard. If writing a chapter takes some effort X, revising a chapter takes effort X^3 . After each chapter, several people at Manning, and in my circle, provide feedback. At the same time, I realize that there's much more I want to write about subject Y and I start pilling up articles and papers that I want to read before I revise the chapter. I end up spending a TON of effort revising and re-visiting chapters.

Getting feedback is hard. I am lucky, I know a lot of people with different levels of knowledge in cryptography. This is very useful when I want to test how different audiences read different chapters. Unfortunately people are good at providing good feedback, and bad at providing bad feedback. And only the bad feedback ends up being useful feedback. If you want to help, [the first chapters are free to read](https://www.manning.com/books/real-world-cryptography?a_aid=Realworldcrypto&a_bid=ad500e09 ) and I'm ready to buy you a beer for some constructive negative feedback.

Laying out a chapter is hard. Writing a blog is relatively easy. It's short, self-contained, and often something I've been thinking about for weeks, months, before I put it into writing. Writing a chapter for a book is more like writing a paper: you want it to be perfect. Knowing a lot about the subject makes this even more difficult: you know you can make something great and not achieving that would be disappointing. One strategy that I wish I would have more time to spend on is the following one:

  • create a presentation about the subject of a chapter
  • give the presentation and observe what diagrams need revisiting and what parts are hard for an audience to understand
  • after many iterations put the slides into writing

I'm convinced this is the right approach, but I am not sure how I could optimize for this. If you're in SF and wants me to give you a presentation on one of the chapter of the book, leave a comment here :)

Well done! You've reached the end of my post. Now you can leave a comment or read something else.

Comments

Dan

David -- I can totally relate to what you're saying. One other thing that I find hard is to figure out how to "dial in" the right level of detail (basically, this comes down to choosing your intended audience, and "sticking to it").

When you understand something really well (as with you and cryptography), it can be difficult to figure out where to "draw the line". Sometimes you regret using "hand waving" ("magic happens here" or "trust me, it really just works") but sometimes, going into too much detail, you lose the audience's interest.

Good luck! I'm eager to read your book.

Raja Nagendra Kumar

Which is your LinkedIn profile

Daniel Li

As an author of a 20-chapter 800+ technical book, I can totally relate to your experience. I used to write one or two blog posts every week, and I thought writing a book would be a similar experience - just put all your blog posts together and add some materials to fill the gap.

I quit my job to write the book, which I'd anticipated would take 3 months. After 6 months I still didn't manage to finish it and had to take on a new job to support myself. I ended up spending a total of 16 months, with many 3-4am nights to get it done. Many times there seems to be no light at the end of the tunnel, but there was.

I am glad to see you've made some progress and now we are on the 11th chapter! Looking forward to reading the whole book!

(Would also be happy to be the audience if you'd like to do a presentation on a chapter virtually, I am quite the crypto n00b though, I must warn you)

leave a comment...