This guide is meant for general-purpose programming using JavaScript, not just for the browser or web development, but also Node.js, scripting, tooling, and software architecture.
- What is programming?
- Overview of JavaScript
- Setting up the environment (VS Code, Node.js, npm)
- Variables:
var,let,const - Data Types: strings, numbers, booleans, null, undefined
- Operators: arithmetic, comparison, logical
- Basic Input/Output (
console.log,promptin browser)
- Conditionals:
if,else if,else,switch - Loops:
for,while,do...while,break,continue
- Function declarations vs expressions
- Parameters, arguments, return values
- Arrow functions
() => {}
- Array operations: push, pop, shift, unshift, splice
- Loops with arrays:
for,forEach,map - Object literals, nested objects
- Accessing and modifying object data
- Scope (global vs local)
- Closures
- Callbacks
- Higher-order functions
- Recursion
- Constructor functions
- Prototypes
classsyntax,extends,superthiskeyword- Encapsulation and inheritance
(Optional for general purpose, but good for CLI apps that simulate output)
- Selecting elements (
getElementById,querySelector) - Manipulating DOM:
textContent,innerHTML,style - Event handling:
addEventListener, event object
setTimeout,setInterval- Callbacks vs Promises
Promisechainingasync/await- Error handling with
try...catch
- Syntax vs runtime vs logical errors
try,catch,finally,throw- Debugging tools: browser dev tools,
console.log, breakpoints
import/export(ES Modules)- CommonJS (
require,module.exports) in Node.js - Organizing code across files
- Introduction to Node.js
- Using the REPL
- File system module (
fs) - Creating a basic CLI app
- Reading and writing files
- Making HTTP requests with
fetchandaxios - Parsing JSON
- Creating REST clients
npm& package management- Using
package.json - Writing your own npm scripts
- Building simple automation scripts (e.g., backup, file parser)
- Unit testing with Jest or Mocha
- Writing test cases and assertions
- Test-driven development (TDD)
- Pure functions
- Immutability
- Composition
map,reduce,filter,flatMap
- Linked lists, stacks, queues
- Trees and graphs
- Searching and sorting algorithms
- Big-O notation basics
- Module pattern
- Singleton, Factory, Observer
- MVC (Model View Controller)
- Strategy and Decorator
- EventEmitter and Streams
- Buffers and binary data
- Creating HTTP servers
- Middleware pattern
- Authentication basics (JWT, sessions)
- Create a CLI utility (e.g., note-taking app)
- Create a small RESTful API
- Create a full-stack JS project (Node + MongoDB or SQLite)
- Deploy using services like Vercel, Heroku, or Railway
- TypeScript introduction
- WebAssembly & low-level performance
- Electron for desktop apps
- Deno (an alternative to Node.js)
- Working with databases: MongoDB, PostgreSQL
- Using GraphQL with JavaScript
- Task Manager CLI tool
- JSON-based note-taking app with file persistence
- REST API for book reviews
- Real-time chat using WebSockets
- Personal finance tracker
Would you like this as a downloadable PDF or editable Notion-style checklist?