Why Learn JavaScript

JavaScript is the most popular language according to Github as of Nov 2019 (and will continue to rise). This is because it is the main language to make web page interactive. It is also the language to create web servers, games, native mobile apps, and native desktop applications. It is popular because it is light-weight, powerful and easy to get started with.

However, there are too many frameworks and tools available that confuses most people who are planning to learn JavaScript. At bonsaiilabs, a lot of our mentees have questions about JavaScript and why to learn the language. In this video, we have answered those questions and hope that anyone who is looking to learn JavaScript would get value from this video.

Full Transcript

0:00 Hey, it's Harit Himanshu from bonsaiilabs. Welcome to the series on JavaScript. Today In this video, I will answer some of the common questions that we regularly get as part of our mentoring program. A lot of people who take our mentoring program often comes with questions about JavaScript. These people are either students who are looking for internship or jobs or these are professional who are seeking a career change. The questions they ask are, why should I learn JavaScript? Who uses JavaScript? Is JavaScript only used to create web pages? Are there any jobs available in JavaScript? In this video, I will answer these questions so that you can make the best decision for yourself. JavaScript is a cross platform language, which means you can write the code on one platform, let's say Linux and be able to run it on windows and Mac.

0:48 JavaScript is an object oriented scripting language that provides dynamic inheritance using prototype based model, which means what is inherited by objects can vary between individual objects. Now JavaScript is used on all browsers available today to make web pages interactive. It is available as the backend language to develop the server side applications. On browsers, client-side JavaScript extends the core language by supplying objects to control browser and the DOM. The document object model. On servers, the server side JavaScript extends the core language by supplying objects relevant to running JavaScript on the server. For example, server-side extension allows an application to communicate with database or performing file I/O operations. This means JavaScript exists everywhere from backend to the front end. Now let's take a look at how JavaScript ecosystem is available in every part of the software development. Starting with the database, the most popular choice to work with JavaScript is MongoDB.

1:47 MongoDB is a NoSQL document based database where the data is stored in form of JSON structure. The JSON data structure is an object with key value pairs, which translates natively with JavaScript. The data types available in MongoDB are mostly either directly mapped or convertible to JavaScript types. In order to perform the crud operations with MongoDB, the most popular choice is a library called mongoose. It provides an easy to use API to interact with the database. In order to create a backend application, NodeJS is the most popular choice available in JavaScript ecosystem. The framework is mature and is used to create scalable network applications. When creating a backend application, typically the requirement is to interact with the outside world. The expressJS is a library that is used with NodeJS to create APIs. This framework is based on REST based architecture.

2:36 Speaking of APIs, there are two popular ways of creating and consuming APIs. The first one is called REST, also known as the representational state transfer and it's a very popular way to work with. The data in database is called resources and the client use HTTP protocol to work with these resources. When I say work, it means creating, modifying, reading or deleting the data. The other popular way is GraphQL. The GraphQL works differently and solves the challenges that exist with REST-based architecture. GraphQL is a query language and a run time to execute those queries with the existing data. When working with APIs, it is also important to secure them to prevent abuse of the system. A very popular choice in JavaScript ecosystem is called PassportJS. It provides authentication with over 500 strategies including login with Google, Facebook, Twitter, and other strategies.

3:29 On clients-side JavaScript, there are plenty of options to use. Some of them are React, VueJS, Gatsby, NextJS and AngularJS. Each one of them has similarities and differences with each other. The most popular choice in this area is ReactJS, which is open-sourced by Facebook. However, only using react will not help developing beautiful UI implementations. Therefore, we use a library called Material-UI, which is based on Google Material Design. It helps us develop beautiful consistent UI designs faster. Now when you have an application ready, you need to deploy them somewhere so that the rest of the world can use your product or service. Right? The JavaScript based ecosystem, there are lot of deployment options available. There are providers such as Firebase by Google, Surge, Zeir, Netlify, GitHub Pages and Heroku where you can deploy your JavaScript app bundles with ease. The most amazing part is that if you build only a static application, which means only the front end part, most of them are completely free to use.

4:28 Isn't that great? So how do you feel? Do you see how powerful you can become when you know how to work with each of these technologies and it does not take years to learn them. You need to start with your fundamentals and build on top of it and in case of JavaScript ecosystem, you need to invest and learning the language first. After that, using the guided help, you can pick each new item at a time and build useful applications. Now if you're looking to create native apps for iOS and Android, JavaScript covers you here as well. React Native is the best in class JavaScript library that helps you create beautiful native applications. You might already be using some of these apps written in react native such as Instagram, Facebook, Uber and Pinterest. Additionally, if you are also thinking of creating native desktop applications for Mac, Linux or Windows, learning JavaScript opens up doors for you here as well.

5:18 You could leverage Electron, which is an open source project by GitHub to create cross platform desktop applications with JavaScript, HTML and CSS. In fact, there are lots of apps created using Electron and you may already be using them without knowing that they will create it using Electron. So as you see, JavaScript is available in every aspect of software development. Whether you create application for servers, browsers, phones or desktop using the knowledge of JavaScript, you can create applications that can reach wider audience. After all, these are most of the devices and technologies people use, right? Now when it comes to jobs, with JavaScript, most of the employers look for knowledge of JavaScript along with the experience of framework. For example, front-end jobs will advertise with terms such as React developer, React engineer or front-end developer. While on the backend they will advertise with terms such as full stack developer or NodeJS developer.

6:11 This is a little different than other programming language such as Python or Java where the jobs are explicitly advertised to using the language. However, even with the jobs that require React or Node, most employers test your knowledge based on JavaScript along with your understanding on the framework. And you would find literally thousands of jobs in these areas where employers are either seeking people in full time part-time or remote positions. So what do you think? Would you learn JavaScript? Or do you have any further questions? Please comment on the video and we'll be happy to answer your questions. If you liked the video, please hit the subscribe button on the channel to receive more engaging content about JavaScript every single week. Until then, keep learning new skills and apply them regularly to become an expert programmer. See you next time.