There are a lot of factors that could go into choosing which technology to use for your web application stack, which are probably too numerous to list here. However, some reasons to choose NodeJS come with advantages like:

Its the same language one the client and server side code can be shared Less context switching when developing FE vs. BE It's designed to be asynchronous, so it forces encourages you to think in terms of delegation the ecosystem is huge the language is developing rapidly (could also be a disadvantage)

Some disadvantages might be:

Not strongly typed (but there are a solutions to that problem like TypeScript and Flow) JS is single-threaded, so it's not a good choice for CPU-intense operations It can be harder to do things you need to do synchronously (not impossible, but more verbose compared to an imperative language like Java or python) There are some oddities to the language that can be frustrating.

In terms of tutorials, I've watched a few of Derek Banas' videos, and I like his teaching style. I've heard the Egghead tutorials are really good too, and definitely check out MDN as you progress. Nothing beats actually getting in there and trying stuff though, developing a plugin for NodeBB can teach you a few tricks.