We can evaluate how well it is structured and make some modifications on that.
Once we are convinced about the course structure, we can create videos for the same.
Apart from the concepts written in the official guide, we will add some other sections to teach the process of learning to the students:
- Different ways to set up a local sandbox to test something in js
- Exercises for really understanding the concepts (such as testing the edge cases)
- One example is the article that I have written on variable declarations (var, let and const)
- Special modules for explaining the best practices (and their importance)
- We will also mention these in the main lecture, but having byte-sized videos/sections about just the best practices related to a concept would benefit skimmers a lot.
We don’t need to cover all the topics in the official guide in our first course.
We can release the course in parts so that we can focus on establishing the fundamental understanding of each concept that we go over.
But at the end of the course, the student would be confident enough to use the documentation on his/her own.
The student would also have gained enough skills to quickly pick up and library.
- What is JS and why should I learn it?
- What all can I build using JS?
- client-side scripting & SPAs (frameworks like ReactJS, VueJS, AngularJS etc.)
- backend servers using NodeJS (frameworks like NextJS)
- serverless API end-points using Cloud Functions, Azure functions, AWS Lambdas etc. (Please suggest any open-source alternatives to list here)
- Chrome extensions
- Web-apps for desktop and mobile
- iOS and Android applications using Cordova powered tools (React Native, Ionic etc.)
- Different ways to set up a sandbox (script tag in HTML file (with or without an external
.jsfile), node, browser console)
- Establishing the background project: what we will be building throughout the course
- A demo
- A walkthrough and overview of the concepts that we will use
- Project setup (comments and documentation)
- declaration (scope, mutability & redeclaration, hoisting, best practices)
- data types
- expressions and assignment (eg. how it is different for primitive and non-primitive data types)
- comparison operators
- loops and iteration
Errors in JS
- Error types (what they are and when are they thrown)
- Error handling
Functions and Classes
- Constructor vs Declaration vs Expression
- Function scope and best practices
- Class definition, attributes and methods
- Species, Mixins etc. (optional)
DOM manipulation and using Templates
- Accessing and manipulating DOM elements
- Browser properties and methods
- Interaction and navigation (buttons, links and other listeners)
Working with data
- Making basic
fetchcalls to APIs
- localStorage, sessionStorage and cookies
Modularity & Readability
- Type checking and Objects.freeze as enum
- Variable and function naming conventions
- No standard Compiler/Interpreter.
- Limitations, alternatives and libraries (TypeScript, npm/yarn)