The Problem with the Node community
wiredhorizon.com
wiredhorizon.com
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.
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"
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
Hmmmm - back in the day, I learned to use hashes, tied hashes, and BerkleyDB way before learning to use SQL and SQL libraries.
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.