Node is JavaScript without the browser. Since you're already familiar with JavaScript, you shouldn't think of learning Node as learning a new language. Instead, you'll be learning a new set of APIs that use JavaScript to get work done outside the browser. That means you won't have access to browser APIs, like manipulating the DOM, but you will still have events and asynchronous capabilities. Additionally, Node provides excellent utilities for working with the file system, making web requests, and processing incoming web requests.
nodeschool is an excellent free and open-source resource for learning Node. We recommend you complete the following workshops to become familiar with Node:
- javascripting: JavaScript review (optional)
- learnyounode: Introduction to Node
- how-to-npm: Introduction to NPM
- scope-chains-closures: Scope, Chains, and Closures (optional, challenging)
- stream-adventure: Introduction to Node streams (optional, challenging)
- expressworks: Introduction to Express
Take a moment to browse the nodeschool site. Make a note of any workshops you might want to take in the future. (Note: The term "workshop" is a bit confusing. "Workshops" at nodeschool are modules you install and run locally on your system. If you want to attend a nodeschool meetup, you'll want to browse "Events".)
When you're ready to begin a workshop, just install it globally with npm
and start the workshop via the command line. For example, to install learnyounode, use npm install -g learnyounode
, then begin the workshop with learnyounode
.
-
Install
learnyounode
npm install -g learnyounode
-
Fork and clone this repository.
-
Edit your fork's README. (example)
-
Add and commit the README and push changes to your fork.
-
Move to the
learnyounode
directory. You will work here as you complete the workshop. -
Run
learnyounode
from the command line and follow the instructions. -
As you work, commit early and often.
Use commit messages as your learning journal, making notes of challenges and what you learned by completing each exercise (example).
Do something similar for the other required workshops. Repeat the last three steps. Do not create another fork or clone; all your work can be done from this repository.
The learnyounode
workshop suggests you add your code to a single file, program.js
, that is updated with each exercise. Instead, you should create a new file for exercise and run learnyounode run
and learnyounode verify
against the exercise file.
You will need to create your own file structure in all directories except learnyounode
. Each exercise should have its own file.
You are required to push your changes frequently, based on the following schedule. Each evening, push your changes and open a new pull request against this repository. Your submissions will be checked for completeness, not for accuracy. That's what learnyounode verify
is for.
Workshop | Due (t + 0 === today ) |
---|---|
learnyounode |
Exercises 00--06 due t + 0 |
learnyounode |
Exercises 07--13 due t + 4 |
how-to-npm |
Exercises 00--04 due t + 0 |
how-to-npm |
Exercises 05--16 due t + 4 |
expressworks |
Exercises 00--01 due t + 4 |
expressworks |
Exercises 03--07 due t + 11 |
- Mozilla Developer Network: JavaScript Documentation
- Node Documentation
- NPM Documentation
- Art of Node
- mongodbschool
Source code distributed under the MIT license. Text and other assets copyright General Assembly, Inc., all rights reserved.