Node.js is simply a runtime environment of JavaScript used outside the browser that allows developers to build serverside and network applications using only JavaScript.
Node.js was created by Ryan Dahl who wanted to use JavaScript for purposes other than the web. This separation was revolutionary as this opens more possibilities for JavaScript to grow both as a web and a server (ex. interacting with other backend languages such as python).
Node.js can be easily downloaded on the node.js homepage.
NPM which stands for 'Node Package Manager' is, as it says, a package manager that is downloaded and bundled alongside node.js. These features allow us as developers to interact with node.js. If you are using JavaScript, NPM is already pre-installed to use right away.
NPM packages are being developed everyday all over the world to make the life of developers easier while making projects.
To simply put, NPM is like a sidekick to node.js that gives a variety of support.!