Experience can be a brutal teacher and as Oscar Wilde said, “it’s just a name we give to our mistakes”. Fortunately, we don’t have to learn from our mistakes if we can learn from the mistakes of others first.

This advanced JavaScript course provides an accelerated learning programme by giving participants access to a highly experienced JavaScript developer who’s ready to share the “secret sauce” of successfully using JavaScript in the wild. The course will swiftly take those who know the fundamentals to a new level of capability, where organization, tooling and the understanding of powerful design patterns leads to the practical application of time efficient, maintainable, reusable code.

By default the course uses Chrome for all the examples and exercises.



  • Design Patterns
  • API Design
  • Structuring
  • Sugaring Trade-offs
  • Cyclomatic Complexity Metric

Staying DRY

  • Recursion
  • Modules
  • Inheritance
  • Composition
  • ECMAScript 6 Classes


  • Callbacks
  • Control flow sugar
  • Promises & Deferreds
  • Pub/sub
  • Event Emitters
  • Streams
  • ECMAScript 6 yield


  • DIY Modularity
  • AMD
  • LMD
  • UMD
  • CJS
  • ECMAScript 6 Modules
  • Package managers


  • Creating a build process
  • Static Analysis
  • Live Reload Paradigm
  • Debug tools
  • Remote debugging
  • Efficiency
  • Premature optimization
  • Profiling & Bottleneck busting
  • Understanding Garbage Collection
  • Debugging leaks
  • Efficiency and the DOM


  • TDD/BDD explained
  • Assertion Libraries
  • Frameworks
  • The art of writing good tests
  • Code Coverage
  • Behavioural UI Testing

Optional Additional Module - First Class JavaScript

  • Node.js
  • NPM: The Ecosystem
  • Networking
  • Hosting
  • Command line apps
  • Full Stack JavaScript
  • JavaScript Ubiquity and the Future


  • This is an advanced course for experienced JavaScript developers