01. Series Introduction.

01. Series Introduction.

May 31, 2023·

3 min read

The browser war of the 1990s may not appear significant to those who never saw the events unfold firsthand, but it changed the world drastically. Microsoft and Netscape went head-to-head in trying to capture market share for web browsers with Internet Explorer and Netscape Navigator, and it was at Netscape that JavaScript was born.

JavaScript is a high-level, object-oriented programming language with first-class functions and a built-in garbage collector. Brendan Eich created JavaScript in 1995 to add interactivity to static web pages, but the language has grown to support various use cases today. We can now build backend applications, desktop applications, command-line tools, and even IoT applications using JavaScript, owing to our ability to run JavaScript outside the browser.

Node JS is the most notable JavaScript runtime that allows us to execute JavaScript code without the web browser. Ryan Dahl and his team developed Node JS as an internal project at Joyent but later released it to the public under the MIT license in May 2009. Its adoption has continued to grow ever since, and 46.31% of the 45,297 professional developers who responded to the Stack Overflow Developer Survey of 2022 used Node JS in the last 12 months, the highest for any ‘Web Frameworks and Technologies.’

Despite these astronomical numbers, most resources teach the language by executing JavaScript code in a web browser instead of using the Node JS runtime. This methodology works well for those trying to learn frontend development, but the extra lectures on DOM manipulation and the 'window' object can complicate things for individuals learning the language for backend development and other use cases. More importantly, it becomes hard to filter the concepts you must know about the underlying language before building scalable real-world projects.

Therefore, I created this series to help readers learn the fundamentals of JavaScript by executing code in the Node JS runtime. I consider the language a lot easier to understand and practice without all the browser-related stuff. If you are a complete beginner, it gets you started at solving problems on Edabit, HackerRank, and Leetcode to strengthen your problem-solving skills. If you have some prior experience, it adds another popular language to your technology stack without forcing you to change your thought process to incorporate the ‘browser.’

I have tailored the content to support those learning their first programming language, but it should also serve as a good resource for experienced developers who want to add JavaScript to their technology stack. The concepts covered in this series have little to do with the functionalities injected into the language by the Node JS runtime. Therefore, the resource should also be ideal for frontend-focused readers trying to learn the language well.

If you want to interact or extend support, you can find my socials here.