Node.js in Practice (2015)

Appendix. Community

This section will help you to make the most of the growing Node community. Programming communities can help you get answers to problems that aren’t directly answered by the documentation. You can learn more effectively just by hanging out with like-minded people—whether online or in person.

A.1. Asking questions

Sometimes you just want to know how to do something that seems like it should be easy, but isn’t. Other times you think you might have found a serious bug in Node. Whatever the situation, when you need help that isn’t satisfied by Node’s API documentation, there are several official channels you can use.

The first is the Node mailing list, which is the nodejs Google Group (http://groups.google.com/group/nodejs). You can subscribe by email or use Google’s web interface. The web interface allows posts to be searched, so you can see if someone has asked your question before.

The group has contributions from prominent community members, including Isaac Schlueter, Mikeal Rogers, and Tim Caswell, so it’s a good place to get help and learn about Node in general.

There’s also an official IRC chat room: #node.js on irc.freenode.net. It’s extremely busy though, so be prepared for a lot of messages. Informative discussions do happen in #node.js, so some patience may be rewarded!

If you’re a fan of the Stack Exchange network, you can post questions using the node.js tag (http://stackoverflow.com/questions/tagged/node.js).

If you prefer social networks, the Node users group (https://github.com/joyent/node/wiki/Node-Users) in the Node wiki lists hundreds of Twitter accounts alongside the developer’s time zone, so you could look for people to talk to that way. Hint: the authors of this book are listed!

Finally, if your question is about a specific module, you should check that module’s documentation for community information. For example, the Express web framework has its own express-js Google Group (https://groups.google.com/group/express-js).

A.2. Hanging out

Your city may have an active Node meet-up group. Examples include the London Node.js User Group (http://lnug.org/), the Melbourne Node.JS Meetup Group (http://www.meetup.com/MelbNodeJS/), and BayNode (http://meetup.com/BayNode/) in Mountain View, California.

There are also major Node conferences, including NodeConf (http://nodeconf.com/) and NodeConf EU (http://nodeconfeu.com/).

To help you find more meet-up groups and conferences, the Node.js Meatspace page at https://github.com/knode/node-meatspace is frequently updated. You can, of course, try searching at meetup.com as well.

A.3. Reading

If you’re looking for something to read, you’ll find some great community publications. Naturally reddit.com/r/node collects some great posts, but there are also collections on Medium, including medium.com/node-js-javascript.

Noted Node developers have blogs you can check as well. Isaac Z. Schlueter (http://blog.izs.me/), James Halliday (http://substack.net/; see figure A.1), and Tim Caswell all have personal blogs where they write about Node. Tim’s howtonode.org has material suitable for beginners, but will also help you keep track of new developments.

Figure A.1. James Halliday’s blog about Node and testing

There are also commercial blogs that have some contributions from talented Node developers. Joyent’s blog at joyent.com/blog often has interesting posts relating to deploying Node, and StrongLoop’s blog, “In the Loop,” at strongloop.com/strongblog, does as well.

Nodejitsu’s blog at blog.nodejitsu.com has advice on deployment, and also features module authors talking about their work.

A.4. Training by the community, for the community

One interesting development in teaching Node is NodeSchool (http://nodeschool.io/; see figure A.2). You can install lessons yourself, but there are also community-run in-person training events. NodeSchool provides the materials to set up training events, so they’re proliferating rapidly around the world. The site has more details on upcoming events.

Figure A.2. Learn Node with NodeSchool.

A.5. Marketing your open source projects

If you’re going to take part in the Node community, one of the best ways to it is to share your work. But npm is now so popular that it’s hard to get your module noticed.

To really make an impact, you should consider marketing your open source projects. If prominent Node bloggers have contact forms or Twitter accounts, it won’t hurt to tell them about what you’ve made. As long as you’re polite, and give your work some context so it’s easy to understand, then it can really help you get feedback and improve your skills.