Getting Published as a Programmer: The Practical Node.js Story

Finishing The Practical Node.js Manuscript

TL;DR: This is the story about how I got my first publishing deal, what this book is about, and what problems I encountered along the way.

I spent last weekend sitting in an awesome new coffee shop in Oakland, typing up the last two chapters of my Practical Node.js manuscript. The book is scheduled for release by the UK-based technical publisher Apress in the late spring.

I started writing the manuscript in October 2013. I devoted my weekends and holidays to it (as so many entrepreneurs and writers do). The fact that I smartly had a few example apps and some drafts written — some of them for my blog, others for proposals to Pragmatic (declined!) — helped to speed things up. (Needless to say, in publishing rejection is a common thing and often an opportunity to get better.) However, the writing itself wasn’t the hardest part. Here’s the short story why.

Firstly, it took a while to crystalize the concept of the book well before there was any contract. The whole traditional publishing adventure started about nine months ago. I unpretentiously contacted an Apress editor on Twitter. They were looking for JavaScript authors. I’d just finished Express.js Guide and pitched them my book. I did it despite having good sales self-publishing the book, because I wanted to make the book better, and help the book reach a bigger audience.

 

Then the Express.js Guide proposal was put on hold. This is another frequent occurrence in traditional publishing and a peculiarity for me — books tend to stall due to a variety of factors. For example, there were changes in structure, in the publisher’s software, in the approach to the concept/market fit, and then came the Christmas holidays. The contract was eventually signed a few weeks ago, and the new book will be called Pro Express.js (by the way, Express.js Guide is on sale!).

Fast-forward six months — after more emails and proposals, I DocuSigned a contract for a different Node.js concept, called Practical Node.js: Building Realtime Scalable Web Apps.

Practical Node.js: Building Realtime Scalable Web Apps

Practical Node.js: Building Realtime Scalable Web Apps

The book teaches with hands-on examples. But what makes the book different (and a more useful resource) is the utilization of myriads of the most trusted and used libraries needed for building a real-life Node.js app. The gap in literature on Node.js is particularly wide because most of the books either cover unrealistic/unpractical Hello Worlds, only focus on the core Node.js modules, or authors jump straight to the advanced and niche topics. My intention was to create a book where someone making a recommendation would say, “If you read just one book on Node, this is the book you should read.

Another hurdle involved in this traditional publishing process with Apress was purely technical — converting Markdown files into MS Word. I was near panic mode after spending hours trying out different approaches and apps:

  • RTF to MS Word
  • HTML to MS Word
  • HTML to RTF to MS Word
  • ByWord to MS Word

None of them produced reliable results. Every effort resulted in either images missing, skewed formatting, or styles not applied (I really only needed the source code and text to have the appropriate MS Word styles). Fortunately my luck turned the other way when I found PadDoc. With just the default command/setting, it produces splendid MS Word docs from Markdown.

To sum up my story: never give up. If something doesn’t work, take a break and tackle the problem from a different direction (i.e., change your concepts and tools).

Here’s a preview of the contents of Practical Node.js: Building Realtime Scalable Web Apps. The book consists of 12 chapters:

  1. Setting Up Node.js and Other Essentials
  2. Using Express.js to Create Node.js Web Apps
  3. TDD and BDD for Node.js with Mocha
  4. Template Engines: Jade and Handlebars
  5. Persistence with MongoDB and Mongoskin
  6. Using Sessions and OAuth to Authorize and Authenticate Users in Node.js Apps
  7. Boosting Your Node.js Data with the Mongoose ORM Library
  8. Building a Node.js REST API Server App
  9. Real-time Apps with WebSockets, Socket.IO and DerbyJS
  10. Getting Node.js Apps Production Ready
  11. Deploying Node.js Apps
  12. Publishing a Node.js Module and Contributing Back

The book is getting close to publishing. The next step is to wait for a technical review, which is completed by two subject matter experts (smart and detail-oriented pros). Then, I’ll need to address their comments, add more explanations here and there, clarify some terms, and fix some typos and bugs.

It’s worth mentioning that Apress works on a chapter-by-chapter basis, which is fast. It took time to adjust — I was used to seeing the whole book at once when I worked on Rapid Prototyping with JS and Express.js Guide. Each book I’ve completed is its own journey, and I’ve learned something through each new process. I’m excited to share my knowledge with you all.

Practical Node.js is already available for pre-order from Apress and through Amazon. For the book’s release dates stay tuned.

PS: If you liked this post, check out my new project ProgWriter.

--
Best Regards,
Azat Mardan
Microsoft MVP | Book and Course Author | Software Engineering Leader
Azat Mardan avatar
https://www.linkedin.com/in/azatm
To contact Azat, the main author of this blog, submit the contact form or schedule a call at clarity.fm/azat and we can go over your bugs, questions and career.

Leave a Reply

Your email address will not be published. Required fields are marked *