Intro to Node.js
By: Aadit Rahul Kamat

About Me

-
Role: Automation QA Engineer -
Team: Android Platform Team (Frontend) -
Company: Shopee Singapore Pte. Ltd.

Background
- Asynchronous, event-driven JavaScript runtime
- Based on Chrome's V8 engine
- Developed by Ryan Dahl in 2009 at Joyent Inc
- GitHub stats:
- No.of stars: 84.6k (35th most popular)
- No.of watchers: 2.9k
- No.of forks: 22.5k (Top 100)


Table of Contents
1.
Background
2.
Basics
3.
Types of Apps
4.
Walkthrough
5.
Deno
6.
References
Basics
- Asynchronous:
- Instructions are executed out of order, not step-by-step (sequentially)
- Concurrent:
- Software can do more than one thing at a time
- Event-driven:
- Maintains an event queue
- Uses event loop mechanism: loop until there is a event for the queue to process
Types of Node.js apps
- Internet of Things (e.g. Siemens smart grid)
- Real-Time Chat Applications (e.g. Electron)
- Single Page Applications (e.g. Netflix, LinkedIn)
- Real-Time Collaboration Tools (e.g. Slack, Trello)
- Streaming Apps (e.g. Salesforce)
- Microservices (e.g. Paypal financial system)
Walkthrough
Deno
- Also developed by Ryan Dahl
- Presented as an alternative to Node
- Runs Typescript - a version of JavaScript with optional static typing
- Uses a simpler module system without package.json, index.js, local node_modules etc.
- Single executable instead of a whole package management system (NPM)
- In built support for key JavaScript features like promises and top level await
- Mastery with Node -> Try out Deno
References
Extra Stuff (Non-JavaScript)
1. Learning How To Learn: MOOC taught by Barbara Oakley (avaliable on Coursera)
2. 80000 Hours: Great resource for Effective Altruism, how you can make a greater impact in the world
3. Ladder: Online community to support students in their professional journey
4. Wordpress: Most widely used platform to host websites - no web dev experience required
Intro to Node.js
By Aadit Kamat
Intro to Node.js
Slides for the TechTogether Atlanta Intro to Node.js workshop
- 58