Always Get Better

Re-Learning How to Write

In just two weeks, Node: Up and Running will be released by O’Reilly Media. Writing a book has been a lot of hard work but also a terrific learning experience that I would love to repeat.

The biggest takeaway for me was how often I make stupid mistakes in my writing. As a developer and manager, I rely on my speaking and writing abilities every day – so I take my ability to express myself for granted because I have to do it every day.

When a professional editor takes a piece of writing, they aren’t looking at it in the same way a co-worker would. A co-worker knows me, understands some of the subtleties of the context I’m writing about, and can subconsciously apply meaning to ambiguities in the text or conversation. A casual reader doesn’t have the same context, and the copy editor is able to filter that out and make adjustments to the text that leave my meaning intact but change the delivery.

In other words, the text that came out of the editing process makes me look really smart (I wish!). I’ve learned the secret to clear communication is in keeping the message brief. Especially in a technical book, the audience can’t be expected to deconstruct prose – it’s up to the writer to make their point and get out of the way.

I’ve also learned that I use the same turns of phrases over and over again. Reading 50 pages of my own writing in a row with the same sentence transitions is boring as heck, and I’m able to see this strikingly clear when it’s annotated by a totally impartial writer.

Tags: , , ,

8 Responses to “Re-Learning How to Write”

  1. Raphael says:


    the code in your book “node – up and running” is sometimes wrong, and sometimes you just have no good coding style.

    On Page 50 – 51: The example code for clusters will never work!!!
    At least you need to write (in the createWorker function):

    “” instead of

    The class worker hat no attribute pid.
    And even with this the workers stuck in the endless loop:
    The for(pid in workers) {
    if(workers.hasOwnProperty(pid) …
    is always false.

    Coding style:
    You barely use semicolons (;) at the and of the lines and sometimes your code intention is wrong (pages: 44 + 45, …).
    (NO, don’t tell me semicolons are not necessarily needed in javascript. is also not necessarily needed in html-files, but a good developer writes always clean and sane code.)

    Why don’t you test your code before publishing a book?
    Can i get a new book for free when the second edition is released? 😉


  2. Raphael says:

    And BTW, this is the corrected code to get the cluster example from page 51 to kill long running workers and create new ones:

    for(pid in workers) {
    if(workers.hasOwnProperty(pid) && workers[pid].lastCb + 5000 < time) {
    console.log('Long running worker ' + pid + ' killed');
    delete workers[pid];

  3. Raphael says:

    Well, my previous comment seems to got lost, so i repost it:

    Some of the code in your book “Node – Up and Running” is wrong and will newer run, and most of the code is just ugly.

    You barely have semicolons at the end of the lines. (Don’t tell me they are not necessarily needed – in HTML … is also not necessarily needed to get the thing to run in a browser, but a good developer writes always clean and sane code.)

    On page 50 – 51 your cluster example will never run!

    The class worker has not property ‘pid’, you need to write “”.
    The class worker has also no property ‘kill’, you need to write “workers[pid].worker.destroy();”.

    Can I get a new edition of the book when all errors and syntactical wrong code get’s corrected? 😉

  4. Mike says:

    Thanks for this feedback, I’ll pass this along so it can be corrected in the next revision of the text. Hope you liked the database and Express examples!

  5. philip says:

    Looking forward to receiving “Building Node Applications with MongoDB and Backbone” today. I’ll be sure to review it on Amazon.


  6. Mike says:

    Thanks! Hope you like it

  7. Rob says:

    Just picked up your book. I’m a newbie to the whole SPA arena and your book looks to be a good fit. I have one question though and that is how to run the examples in chapter 2. I’ve followed the install instructions to the letter but could use some baby steps on how to run the first examples.


  8. Mike says:

    “node [filename].js” — if that doesn’t work make sure you have the syntax correct or try downloading a fresh copy from Git –

Leave a Reply