JavaScript: Swiss Army Knife of Programming Languages
Tags: javascript, webdev, webapp, educational
Published: 2019-10-28 00:32:54

###### Catch me streaming on Twitch @ [https://twitch.tv/talk2megooseman](https://twitch.tv/talk2megooseman)

###### This is an excerpt from a talk I plan to be giving at [LEARN Academy meetup November 14, 2019](https://www.meetup.com/LEARN-academy/events/tlxzxpyzpblc/). This blog is intended to target people new to programming and JavaScript. My hope is to get them more excited about programming and how much you can do with a single language.

When you first start your adventure in learning how to program one of the first languages that I would most likely recommend to you is JavaScript. *But why?* The simplest reason  I could give to you would be, "because learning to make a webpage come alive is a good way to start learning." But for a more detailed explanation, JavaScript only requires a browser to run, can be developed in online tools (like [https://codesandbox.com](https://codesandbox.io/dashboard)), you can use your existing computer (no high-end computer needed) and seeing your code come alive in the browser is such a satisfying experience and a great feedback loop. But there is another deeper reason I think JavaScript is a great starter programming language...

## It's Biggest Bang For The ~~Buck~~ Language

That's right, with JavaScript you can do so much more other than build webpages. Typically everywhere you go on the interwebs will almost always focus on that with JavaScript you can make a webpage. But there is so much more fun you can have and I want to take some time showcasing some of the things you can build with just one programming language.  So let's get started.

## Dynamic Webpages (duh!)

Yeah, we just talked about this. **BUT** I just wanted to take a moment to highlight all the different frameworks and tools you can use to build a website with a single language. 

- [Plain JavaScript DOM API](https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction)
- [ReactJS](https://reactjs.org/)
- [Vue.js](https://vuejs.org/)
- [Angular](https://angular.io/)
- [Ember.js](https://emberjs.com/)
- [jQuery](https://jquery.com/)

For a new programmer getting exposure to different libraries and frameworks with the varying designs and implementations can be a great learning experience. I believe it can be very valuable to see how there is more than one way to solve a problem and design a system.

## Build Mobile Apps

Yep, using JavaScript you can make apps for iOS and Android. I think it's so cool that you can take a single language and then go from making websites and then make a mobile app. For new programmers, it helps diminish the scariness of trying to learn Kotlin, Swift, Objective-C, and Java just to make an app. Instead, they can build one using JavaScript and the framework of their choice. If they enjoyed it, it serves as the launching pad to doing much more. If you feel ready to tackle mobile development with JavaScript check these out:

- [Apache Cordova](https://cordova.apache.org/)
- Ionic
    - [Angular](https://ionicframework.com/docs/angular/your-first-app)
    - [ReactJS](https://ionicframework.com/docs/react/your-first-app)
- [React Native](https://facebook.github.io/react-native/)
- NativeScript
    - [Angular](https://www.nativescript.org/nativescript-is-how-you-build-native-mobile-apps-with-angular)
    - [Vue.js](https://www.nativescript.org/vue)

## Create Web Applications

After you dip your toes into JavaScript and get more comfortable with the language. You can then branch out and use that knowledge to make an entire web application. Ever wonder how to make a user login system? Or how about a chat application? Or make your own blog? Do one of those API things that you read about? Well, you can learn to build all that using the language you already know with [Node.js](https://nodejs.org/en/about/). Here is a couple of frameworks you can check out to get started:

- [Express](http://expressjs.com/)
- [Meteor](https://www.meteor.com/)
- [Koa](https://koajs.com)
- [Next.js](https://nextjs.org/)

## Internet of Things (IoT)

Ever thought it would be cool to do that "smart home" thing? How about making your own claw bot or making your own musical shows? Enter in Johnny-Five! Johnny-Five is the JavaScript Robotics & IoT Platform that will do just that. Get hold of an Arduino board and start hardware hacking away and make interesting new things. Here are ideas and resources to get you started:

- [Johnny Five](http://johnny-five.io/)
- [MakeCode Adafruit](https://makecode.adafruit.com/)
- [Johnny Five Examples](https://github.com/rwaldron/johnny-five/blob/master/awesome.md)
- [Meow Shoes - Musical sensor-enabled shoes!](https://github.com/noopkat/meowshoes)

Thanks to [Noopkat -Suz Hinton](https://twitter.com/noopkat) for the resources!

## Conclusion

I don't intend this to be a complete guide to what libraries you should use or frameworks to pick. Use the ones that make sense to you or have the best guides or tutorials you like. But what I do want you take away from reading this is that JavaScript is more then just a thing to help build webpages, it's the "Swiss Army Knife of Programming Languages."