Skip to content

Instantly share code, notes, and snippets.

@julianduque
Forked from dshaw/levelup.md
Last active August 29, 2015 14:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save julianduque/f6335b968d46c65fa6e3 to your computer and use it in GitHub Desktop.
Save julianduque/f6335b968d46c65fa6e3 to your computer and use it in GitHub Desktop.
Leveling up in Node.js

Core Concepts

Required

  • Understand JavaScript / Node.js Asynchronous nature
  • Understand callbacks, EventEmitter and error handling
  • Understand both async and sync Filesystem API
  • Feel comfortable writing Node.js modules
  • Write http server and clients

Good to know

  • npm and userland ecosystem
  • Streams API
  • Execute external processes using child_process
  • Work with networking API (dgram, net)
  • Testing and Debugging

Official Documentation

Learning resources

OpenSource Leveling-up

  • Read lots of code.
  • Write lots of code.
  • Don’t be afraid to throw it away.
  • Don’t be afraid to share it.
  • Find your happy place writing tests.
    • You’ll probably spend more time writing tests and debugging than writing code. Embrace this. Make it a key part of your workflow.
    • Tests are one of the first things I read in a module. That and the example(s). Probably before API docs.
    • Don’t know where to start. Write some tests for a module you like. This benefits everyone.
  • Focus.
    • You’ll improve your overall skill set most effectively by choosing something that really clicks for you and diving deep into that thing.

If something isn’t clear, write something yourself. Share this with someone you trust. Avoid pedantry. Contribute what you and others find meaningful.

Leveling-up even more

  • Share
    • Code
    • What worked for you?
    • What was hard? What help you break through?
  • Teach
    • There is always someone who isn’t quite as far along on their journey as you are. Help them. Help those who are sincerely interested.
    • Teaching others will force you to understand things more deeply.
    • Often in explaining something to someone else, you will improve your own understanding of that thing.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment