Highlights
- Objects & Prototypes: How JavaScript Really Does OOP
- Types, Coercion, and “Weird JS” You Need to Know
- Async JavaScript: Promises, async/await, Events, and Concurrency
- Functional JS Patterns: Immutability, Composition, and Practical FP
- Node.js Tools: Files, HTTP, Streams
- Code Organisation: Scaling a JS Codebase Without Chaos
Course Details
General Comments
- Basic Javascript skills assumed (delegates to do some online courses).
- Tooling is prioritised
- We go deep right away
- All Node, no browser
1. Modern JavaScript: Syntax, Tooling, Runtime
- ESM workflow, package scripts
- Vitest
- Lint
- Build tools
- Modern syntax
- Debugging workflow
2. Functions Deep Dive: Scope, Closures, this, and Modules
- Lexical scope + closures
- Factories, private state, partial application
- this rules, arrow functions, binding, and avoiding context bugs
- Modules: ESM imports/exports, default vs named, designing clean boundaries
3. Objects & Prototypes: How JavaScript Really Does OOP
- Prototype chain, property lookup, and why class is mostly syntax sugar
- Objects vs Maps/Sets, and picking structures for clarity and performance
- Composition vs inheritance: what’s idiomatic in modern JS
4. Types, Coercion, and “Weird JS” You Need to Know
- Primitives vs objects, truthiness, == vs ===, and coercion traps
- Numbers, NaN, BigInt, and precision gotchas (money, timestamps, floats)
- Edge cases that cause real bugs (null/undefined, 0/-0, Object.is)
5. Async JavaScript: Promises, async/await, Events, and Concurrency
- Promise fundamentals: chaining, error handling, and avoiding “promise soup”
- Concurrency patterns: all, allSettled, timeouts, retries, cancellation with AbortController
- Async / Await
- Event loop mental model and common async pitfalls (leaks, unhandled rejections)
6. Functional JS Patterns: Immutability, Composition, and Practical FP
- Immutability in practice: copying strategies and avoiding accidental mutation
- Composition: map/filter/reduce, pipelines, pure functions, and side-effect boundaries
- Practical FP tools: currying, memoization, and when FP genuinely helps
7. Node.js Tools: Files, HTTP, Streams
- Node runtime basics: filesystem, paths, env vars, and process lifecycle
- HTTP servers/clients: routing basics, JSON APIs, validation, and error responses
- Streams: piping, backpressure intuition, and handling large data safely
8 Code Organisation: Scaling a JS Codebase Without Chaos
- Project structure patterns (layers vs features, packages/monorepos, shared utilities)
- Designing APIs between modules: contracts, dependency direction, and avoiding spaghetti imports
- Error handling and configuration patterns (env management, logging boundaries, “where does this live?”)
Who should attend
Prerequisites
* Variables & assignment
* Operators & expressions (boolean logic, comparisons)
* Control flow: if/else
* Loops / iteration: for, while, for-each-style iteration
* Functions: defining/calling, parameters, return values
* Data structures: arrays/lists, objects
* Error handling: try/catch
* OOP basics: objects, classes, methods, constructors
Feedback
4.8 out of 5 average
"The trainer was clearly very knowledgeable and passionate about the subject. Presented the broad range of topics clearly, especially software development patterns." MO, Software Engineer, Clean Code with JavaScript, June 2021
“JBI did a great job of customizing their syllabus to suit our business needs and also bringing our team up to speed on the current best practices. Our teams varied widely in terms of experience and the Instructor handled this particularly well - very impressive”
Brian F, Team Lead, RBS, Data Analysis Course, 20 April 2022