An intro to Node.js via a set of self-guided workshops.
learnyounode
is a Node.js package that contains a series of workshop lessons which will teach you the basics of writing Node.js applications. The lessons start with a basic "HELLO WORLD" lesson, and then move on to more advanced exercises about dealing with synchronous & asynchronous I/O, filesystem operations, TCP and HTTP networking, events and streams.
Run npm install -g learnyounode
(this installs the learnyounode Node.js package globally). If this step fails, try one of the following fixes:
Prefix the install command with sudo:
sudo npm install -g learnyounode
or
learnyounode
in your terminal. This will start the learnyounode application, and you should see a blue screen similar to the one in the screenshot above.
sudo apt-get install nodejs-legacy
learnyounode
(you should see a blue screen similar to the one in the screenshot above).learnyounode verify
command will now be set to verify any script that you pass into it with the expected output of the lesson that you selected (in the case of the "HELLO WORLD" lesson, the command learnyounode verify
will now check that the script file you pass in satisfies the expected outcomes of the "HELLO WORLD" lesson by making sure the script prints the text "HELLO WORLD" to stdout).node program.js
).learnyounode verify program.js
(note: if you named your script file something other than "program.js", replace "program.js" with the correct filename). If your solution is not correct, you will see a FAIL message along with some information about why your solution didn't pass the tests. In the case of a FAIL message, rework your solution until running the verify command passes. If your solution passes the tests, you should see a "PASS" message. Congratulations! :)Once you have finished learnyounode
, graduate to stream-adventure
for a set of exercises that dig in to Node's streams.
learnyounode
is proudly brought to you by the following hackers:
Rod Vagg | GitHub/rvagg | Twitter/@rvagg |
---|---|---|
Andrey Sidorov | GitHub/sidorares | Twitter/@sidorares |
Julián Duque | GitHub/julianduque | Twitter/@julian_duque |
Lars-Magnus Skog | GitHub/ralphtheninja | Twitter/@ralphtheninja |
Tim Inman | GitHub/thehack | Twitter/@timinman |
Dan Flettre | GitHub/Flet | Twitter/@flettre |
Leigh Zhu | GitHub/lisposter | Twitter/@lisposter |
Lucas F. da Costa | GitHub/lucasfcosta | |
Martin Heidegger | GitHub/martinheidegger | Twitter/@leichtgewicht |
Toshiharu Harada | GitHub/haradats | Twitter/@haradats |
Eric Douglas | GitHub/ericdouglas | Twitter/@ericdouglas_ |
Alejandro Oviedo | GitHub/a0viedo | Twitter/@a0viedo |
Leonardo Nascimento | GitHub/leonascimento | Twitter/leonardo386 |
Christophe Porteneuve | GitHub/tdd | Twitter/@porteneuve |
Do Minh Hai | GitHub/dominhhai | Twitter/@minhhai3b |
Phung Van Tu | GitHub/minatu2d | Twitter/@minatu2d |
Shim | GitHub/marocchino | Twitter/@marocchino |
Chayoung You | GitHub/yous | Twitter/@_Yous |
Espen Dalløkken | GitHub/leftieFriele | Twitter/leftieFriele |
learnyounode is Copyright (c) 2013-2015 learnyounode contributors (listed above) and licenced under the MIT licence. All rights not explicitly granted in the MIT license are reserved. See the included LICENSE.md file for more details.
learnyounode builds on the excellent work by @substack and @maxogden who created stream-adventure which serves as the original foundation for learnyounode.