The Necessity Of Learning JavaScript

Introduction

 
Recently, we had a brainstorming session about our organization's training program in line with trending and future technologies.
 
The agenda was simple, which technology or programming language should be part of the training. This training was for fresh graduate trainees. It was an interesting session, traversing roughly 12 new software technologies or programming languages.
 
Everyone who was part of this session had to pick one or more skills and convince the panel to include it in the training program on par with the organization business. C#, Java, DBMS (SQL), C++ were already selected.
 
Some of the skills presented were Angular, React, Business Intelligence tools, Python, Design Patterns, AI, ML, Big Data skills, Testing frameworks, Web designing, .NET Core, etc.
 
I chose to present "JavaScript" for the following reasons.
 

Simple Yet powerful

 
JavaScript is simple to learn but very powerful just because the entire Internet can't run without it. One way or the other it is used for dynamic content, styling, including other packages, etc.
 
JavaScript can be learned so easily that even school kids can grasp it.
 

Getting started in 10 seconds

 
A browser or notepad is the most minimal requirement to get started learning JavaScript. An internet connection is not at all required or any installation or any heavy downloads of any code editor.
 
To learn any software/programming, getting started should be as easy as possible, just because of a cumbersome way of starting decreases the enthusiasm for learning.
Of course, a browser with an Internet connection makes it much more fun to learn.
 

It's not always about the client-side

 
A few years back, JavaScript was primarily focused on web technology (client-side), leading to numerous frameworks like JQuery, AngularJs, EmberJS, Angular, Vue, React, and many others being developed.
 
They are awesome frameworks to get things done on a browser (client-side).
 
But I never thought JavaScript can be used as server-side technology until the introduction of NodeJS. The NodeJS changed the way JavaScript was used. It leads to the revolutionary MEAN stack way of software development where secured, high performant, database connected apps could be written just using JavaScript.
 
Not only can web-based applications be developed using JavaScript, but even desktop-based (Electron), hybrid mobile apps (Ionic), real-time apps, and server-server communication can also be developed as well. 
 

One skill leads to many

 
Fortunately, I got the opportunity to use JavaScript every now and then along with other technologies, I kept up to date on it.
 
Suddenly the software development (enterprise) world focused on using JavaScript more, and with this automatically my JavaScript skill increased my horizon to be able to work on various kinds of different projects apart from web applications.
 
As JavaScript skill set, I worked on Ionic (hybrid mobile app), different web frameworks (AngularJS, JQuery), and even got to work on the server-side using NodeJS.
Just with one JavaScript skill, I would get projects or work either on the web, server-side or mobile apps or even desktop-based apps. Even further, now JavaScript is used to build Blockchain, Machine learning, Data Science, AI, etc.
 
It feels good that one skill gives me so much variety in terms of projects.
 

Talking in OOPS

 
With an extensive experience of working in JavaScript, I faced many application issues or bugs because it's loosely typed; i.e., it's not strongly typed, Object-Oriented based.
JavaScript treats all the properties, functions, types as the same, and never bothers to type check. This can be a big headache in any moderate or large size application.
With Microsoft's introduction of TypeScript, everything about JavaScript has now become more powerful. TypeScript is a SUPERSET of JavaScript meaning any code is written is still valid in TypeScript with a statically typed nature.
 
TypeScript has ensured that your JavaScript skills are upgraded to the next level, making you write more maintainable, well-structured strongly typed code.
 

Summary

 
My intent was never to mislead that JavaScript is a superior language over other ones and you shouldn't be focusing on other languages.
 
I have only summed up my experience of the JavaScript language as it has the potential to increase your horizon of working on different projects.