
The Problem with the Node community - pauljonas
http://wiredhorizon.com/the-problem-with-the-node-community/
======
spotman
I agree with a lot of the sentiments in this post, but I wouldn't go so far as
to say beginners should not learn node at all. (i.e. - stop teaching it to
beginners)

It boils down to using the right tool for the job. As the author mentions,
some people do get it right, but it leaves you a lot of rope to hang yourself.

There is people who feel teaching rails or django to beginners is also doing
them a disservice too, because at times it can mask how SQL or other things
work, and can encourage developers to not learn how things work at a lower
level.

Developers should learn SQL before noSQL, but I don't think that will make or
break a career, nor will learning node first or rails or php or java.

One key to being a diverse developer, is not being religious about any one
technology, but try as many out as you can reasonably, and learn from all of
them.

The author definitely nails this point, that people are often "unwavering" in
how they support node (or insert another technology in that sentence).

TL;DR - use the right tool for the job. Sometimes it's node. Sometimes it's
not. At least that is my take on the article. Cheers.

~~~
bigiain
"I wouldn't go so far as to say beginners should not learn node at all."

I'm showing my age here, but… I remember a quote (but can't recall who to
attribute it to) along the lines of "Perl is not a good first programming
language. It's a great _last_ programming language"

------
ziahamza
The only reason why Node is taken seriously is the fact that beginners only
have to learn one language and switching languages initially can be a deal
breaker for many.

I have personally taught programming to a few people, and most people are
really motivated if they get to see a usable web app rather then a terminal
program, and for a web app NodeJS + Browser is far easier to teach then
PHP,Rails,.. + Browser in my experience. They never really understand
callbacks initially, but they can mash things up to see something on their
screen.

Another big thing about Node is the boilerplate to run NodeJS programs
(compared to PHP where installing apache can be a nightmare for beginners, and
makes it much harder to understand the big picture)

Async is hard, and takes a long time to breath in I agree. But closures +
callbacks nearly look similar to to sync code in other languages. Async code
looks much more scary in other languages

------
bigiain
"But seriously, does anyone really think that a beginner should learn NoSQL
before learning SQL?"

Hmmmm - back in the day, I learned to use hashes, tied hashes, and BerkleyDB
way before learning to use SQL and SQL libraries.

~~~
chriszhu12
Original author here, I agree the depths of abstraction in CS are endless. But
in todays day and age, it seems like SQL has matured enough to be learnt
without too much background in CS

~~~
bigiain
Sure - it's mature and rock solid.

But it's also overkill for many problems requiring persistent storage. If I
were teaching a programming beginner how to save data for a program to persist
across invocations of the program - there are tools I'd reach for before
saying "well, first we need to install MySQL or Postgres, then the db
abstraction libraries, then we need to talk about ORMs … ". Pedagogically,
going from variables to hashes to tied hashes to NoSQL is a relatively direct
progression - at least to me.

Having said that - there's an enormous amount of PHP ( and Perl and …) code
out there showing beginner programmers getting shit done with minimalistic but
workable understanding of SQL.

------
woah
Interestingly enough, the only people who have a hard time with callbacks are
those who have been coding synchronous code for a long time. Anyway though,
with async/await, the callback days are coming to an end. Other than that, the
article is just complaining that express and mongo are too low level. Seems
almost better to teach people low level stuff first.

~~~
chriszhu12
Original Author here, I agree that it while it could be argued that
express/mongo is more "fundamental" or low level than a stack like rails +
mysql, I'd also argue that because its lower level, it could act as a barrier
to learning. Having to wire together a database adapter with an ORM before
being able to save data seems like a tall task to someone just starting out.

