What should I read to master node.js?

174 views
Skip to first unread message

Martin Ransome

unread,
Aug 4, 2014, 1:35:29 AM8/4/14
to nod...@googlegroups.com
What should I read to master node.js?

Alexey Petrushin

unread,
Aug 4, 2014, 11:39:37 AM8/4/14
to nod...@googlegroups.com
To master something you should do it, not read it or learn it.

Ryan Schmidt

unread,
Aug 4, 2014, 1:02:30 PM8/4/14
to nod...@googlegroups.com

On Aug 4, 2014, at 12:35 AM, Martin Ransome <martin.s...@gmail.com> wrote:
>
> What should I read to master node.js?

That's a very vague question. What have you read so far? What are you trying to build? What problems have you encountered?


// ravi

unread,
Aug 4, 2014, 1:02:37 PM8/4/14
to nod...@googlegroups.com
On Aug 4, 2014, at 1:35 AM, Martin Ransome <martin.s...@gmail.com> wrote:
What should I read to master node.js?


I do not know of one thing that in itself will help you master NodeJS. I’d start with a good JavaScript book ("Good Parts” is a good book, but beware the ideological commitments — do not feel compelled to adopt them), then learn about Node’s module system. Move on to specific concepts and modules like Streams, the HTTP module, etc. Finally, think hard about callbacks vs Promises vs other options, and choose a style of programming that you can live with. I have not given links because I actually learned this stuff  by poking around; which is not necessarily what I would recommend.

—ravi


Hage Yaapa

unread,
Aug 4, 2014, 2:20:21 PM8/4/14
to nod...@googlegroups.com
You can do the following, to get as close as possible to mastering Node:

1. Learn JavaScript really really well
2. Read up and understand the whole Node.js API
3. Learn to use popular Node libraries and frameworks

All the best!

On Mon, Aug 4, 2014 at 11:05 AM, Martin Ransome <martin.s...@gmail.com> wrote:
What should I read to master node.js?

--
Job board: http://jobs.nodejs.org/
New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups "nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email to nodejs+un...@googlegroups.com.
To post to this group, send email to nod...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/b887330c-14c3-423e-b78e-c8bfe4e53475%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Liam

unread,
Aug 4, 2014, 3:06:34 PM8/4/14
to nod...@googlegroups.com
Some common programming constructs (e.g. loops, expressions) are not workable when calling Node's async functions. The alternative constructs Node requires are not described in its docs, not immediately obvious, and require more code. This is probably the biggest obstacle for new users, assuming familiarity with JS.

As for what to read on that topic, others will have to comment.

The Streamline preprocessor goes to some lengths to fix those issues, but is not widely used. https://github.com/Sage/streamlinejs

Forrest Norvell

unread,
Aug 4, 2014, 4:59:52 PM8/4/14
to nod...@googlegroups.com

There isn’t really a good book for learning Node.js. There are a few books about Node out there, but they’re very quickly obsoleted by how quickly the Node module ecosystem changes, and since most of the action is in the module system, it’s tough to keep up.

But that’s OK! There are two resources that haven’t been mentioned yet in this thread that I think are worthwhile:

  1. David Herman’s Effective JavaScript. It’s an intermediate-level JavaScript book, but I find it superior to JavaScript: The Good Parts in every possible way (except for shortness).
  2. nodeschool.io is by FAR the best resource for hands-on learning of the Node ecosystem. Once you get through “Core Concepts”, you’ll have a decent grasp about how things work in Node. And if you make it through all the electives, you’ll be way on your way to being an expert! I don’t know where you are, but you might see if anyone is hosting a nodeschool.io event near you, because they are way more fun when you’re working through them with other people.

F



// ravi

unread,
Aug 4, 2014, 7:53:03 PM8/4/14
to nod...@googlegroups.com
On Aug 4, 2014, at 3:06 PM, Liam <networ...@gmail.com> wrote:
Some common programming constructs (e.g. loops, expressions) are not workable when calling Node's async functions. The alternative constructs Node requires are not described in its docs, not immediately obvious, and require more code. This is probably the biggest obstacle for new users, assuming familiarity with JS.


Very true and a very important point.

—ravi


Rebecca Turner

unread,
Aug 4, 2014, 7:53:14 PM8/4/14
to nod...@googlegroups.com, Martin Ransome
If you already know JavaScript… I ah, I'm sorry, this doesn't actually answer your question. But if you don't mind me rephrasing your question as "What should I do to master node.js?" then I can answer that:

Aria (aredridel) introduced me to the idea of "code katas" for learning new concepts and I think it's quite valuable.  That is, find modules solving problems in the spaces you want to master and try to reproduce their behavior yourself. If you need a hint, you've got code right there to inspect. The idea behind code kata's isn't necessarily to write a complete module that you share with others, but rather to implement enough to fully understand the concept. Or to understand how to best implement a concept you already know in a new language.  I found this invaluable when first learning node. (I've done all of these, to various degrees, across a few languages.)

To really wrap your head around Node.js, callbacks and event driven programming these come to my mind immediately:

* Implementing your own version of EventEmitter.
* Implementing some of the functions from the async module– the functional programming core at least (that is: map, filter, reduce, some, every).
* Implementing stream.Transform streams that map/filter/reduce and getting very used to pipe to combine them together.

Bonus, if you're interested in promises:

* Implementing the same functions as you did with async, only for promises, eg: map, filter, reduce, some, every.
* Implementing promises/futures (as this is an exercise, don't limit yourself to the A+ or ES6 versions, work with concept not a spec)

-- Rebecca


On August 4, 2014 at 2:15:50 AM, Martin Ransome (martin.s...@gmail.com) wrote:

What should I read to master node.js?
Reply all
Reply to author
Forward
0 new messages