You'll likely hear developers refer to just as node and not NodeJS.
* NodeJS it's been around for 9 years.
" NodeJS uses an event-driven, non-blocking "I/O" model which makes it lightweight and efficient"
I/O stands for "input" and "output". This means that any task, from an HTTP call to reading a file on disk.
This is very important because the node it's single threaded (it only consumes one processor), it's not 100% true but let's keep it simple for now, so if you have any blocking functions all your code will be compromised and probably slow:
Imagine that you developed a Rest API that returns the contents of a file on disk from your server, if you develop in a blocking way, let's assume that your file is heavy and takes 1 minute to read, any next call will have to wait for reading of the first call ends so that it is answered and your reading begins. Using the non-blocking model o node "queues" these calls, starts processing them in parallel, and responds as soon as possible.
Another wonderful part of node is in your community: NPM is the package manager ("dependencies") of the NodeJS , here you will find the most varied solutions written by the community. You will probably run into situations/problems when developing that some good soul has already passed and published a package NPM to make your life easier. This entire ecosystem makes developing applications on Node fast and efficient!
Well, now that you know what it is NodeJS I recommend that from a look at the official documentation it is very easy, intuitive and has good tutorials for writing your first application on node: https://nodejs.org