
Learn Node.js: A free interactive course for Node beginners - GarethX
https://hyperdev.com/help/learn-node-js-free-beginner-course/
======
GarethX
For the speedy first 1,000 we also have free copies of The Node Beginner Book
in PDF/ePub/Mobi to giveaway: [https://hyperdev.com/help/free-copy-node-
beginner-book/](https://hyperdev.com/help/free-copy-node-beginner-book/)

~~~
RUG3Y
Got the book, thanks! You have some of the exact information I've been looking
for.

~~~
GarethX
Oh nice, pleased to hear it!

------
cheriot
There are two situations where I'd start another project in Node.js:

1) there's an unusual amount of logic shared between browser and server

2) a web layer needs to be isomorphic

Node hits a sweet spot for these, but it's not my choice any more for non-web
servers like the micro-services that back up mobile and single page apps.

I abandon Node.js after a first project years ago because of the callback
soup. I came back when promises promised an alternative. Now I run into
situations where promises cascade up from a few async calls and affect every
API built on top of them. Perhaps async/await will improve the situation.

I'm curious where Node.js fits for other people.

~~~
yblu
> Now I run into situations where promises cascade up from a few async calls
> and affect every API built on top of them

Can you elaborate what you meant by that?

~~~
jmtulloss
If you have a synchronous function that suddenly needs to do something
asynchronous, then everything that uses that function needs to become async
too.

[http://journal.stuffwithstuff.com/2015/02/01/what-color-
is-y...](http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your-
function/)

~~~
cheriot
Exactly, thanks.

------
torkalork
HyperDev is definitely a service to watch.

I spent a lot of time with Docker in its early days, and now I work a lot with
documentation. I dream of providing my readers with live, on-demand sandboxes
they can use to play with our sample code before trying to run it locally.

Lots of services have cropped up in recent years to try and make this dream a
reality. Unfortunately, most either require user registration or are defunct,
and I suspect it's because preventing abuse and fraud are extremely difficult.

HyperDev is by far the best attempt I've seen yet. It's functional, doesn't
require user registration, and provides a full URL I can use with other web
APIs.

They're Node-only for now, but they're teasing more languages on Twitter:
[https://twitter.com/HyperDevIt/status/771766515603533829](https://twitter.com/HyperDevIt/status/771766515603533829)

I'm certainly rooting for them.

~~~
GarethX
Thanks torkalork! Node.js is definitely just a starting point for us - we plan
to support all major backends.

------
partycoder
I think this course can be helpful.

However, it may be challenging to build a full application based only on what
you find in this book. I strongly recommend to get familiar with lodash,
bluebird, jsdoc and learn to organize your code before writing web servers.

node is not a fuzzy warm friendly technology. Unlike web browsers in which
your JavaScript is fully sandboxed and babyproofed, node is not. And many
people learning node today do not learn what the event loop is, and how it is
YOUR responsibility to not block it.

The golden rule of learning node is: trial and error might be fine while
learning, but not for professional work. If you reach a point in which things
seem to work, FORCE YOU TO UNDERSTAND WHY IT IS WORKING. If you don't follow
this simple rule you will get yourself into REAL problems.

------
kang
Another interactive (in the commandline) tutorial series on various nodejs
topics, beginner & advanced, is [http://nodeschool.io/#workshopper-
list](http://nodeschool.io/#workshopper-list)

~~~
GarethX
We've ported the Javascripting workshopper to HyperDev too for those
interested: [https://hyperdev.com/blog/learn-javascript-nodeschools-
javas...](https://hyperdev.com/blog/learn-javascript-nodeschools-
javascripting-workshopper-hyperdev/)

(useful for those working on locked-down School PCs etc.)

------
BuckRogers
I worked through the Node Beginner Book by Manuel Kiessling some years ago and
enjoyed it. I'll probably look through it again to see what has changed. But
I'm increasingly (and approaching permanently) disillusioned with the Node/js
space.

Not due to the language complaints alone from yesteryear. Rather left-pad and
this,
[https://twitter.com/mitsuhiko/status/712624914071728128](https://twitter.com/mitsuhiko/status/712624914071728128).

It just seems like a real mess. In general tooling needs more work than
anything, for all languages but JS is a good conversation piece on what's
wrong.

------
z3t4
I understand this is just a dummy example, but to make the code easier to read
and understand you should inline functions that are only used once, unless it
has a lot of reusability. There's a fine line between abstraction and
obscurity.

------
lkhatter
Hey, thanks for sharing. Super helpful!

