Ruiwakngqtlznnfklc8s
3 DAY COURSE

Damjan Vujnovic's Advanced JavaScript Workshop

Topics covered at ADV-JAVASCRIPT-01-03
View Schedule & Book More dates available

Next up:

JavaScript is one of the world's most popular programming languages and the cornerstone of modern web application development. This three-day advanced JavaScript course will develop your understanding of JavaScript and your approach to it so that you can continue to create and maintain rich web applications.

Damjan Vujnovic, renowned proponent for clean coding and efficient JavaScript design, invites you to a test-based learning environment to sharpen your existing skills and knowledge of best practices when navigating JavaScript’s functional and dynamic nature. You will broaden your knowledge of lexical scope and closure, write object-oriented code, apply asynchronous and event-driven patterns, use behaviours to stay unobtrusive, while finally end the course by unit-testing your code. Meet with other passionate developers, exchange what you learn, and find new approaches to apply your knowledge to current and future projects.

- Create clean and sophisticated code with an advanced understanding of JavaScript -


Who you will be learning with

Developers with an existing background in JavaScript and those from other disciplines that have experience with JavaScript, HTML, DOM, CSS and Ajax who are interested in how JavaScript can be most effectively used for their business goals.

How to apply these skills

With business growth applying significant pressure on developers on a daily basis, having a comprehensive understanding of JavaScript best practices will save your team time and resources by establishing clean coding patterns early on in your development process.

What next?


Book early to receive a discount on the course price and in doing so you will not only commit to growing your own skill set, but help us grow our community of over 140,000 passionate techies.

Learn how to:

  • Take advantage of JavaScript's functional and dynamic nature, using modern language features
  • Understand lexical scope and closure
  • Write clean, well-structured, object-oriented code
  • Apply best practices to avoid quirks and common pitfalls
  • Apply asynchronous and event-driven patterns
  • Unit test JavaScript code

What the community says

"Very good, learnt a lot! Lots of exercises, content and free materials."

Alexander Sahin, IBM

"Phenomenally knowledgeable."

Joseph Brady, IBM

"Really enjoyed the test-based learning, good way to teach!"

James Topham, IBM

"Excellent format to the course. Very engaging and learning about TDD (principles and framework) as we want was fantastic!"

Mark Howard, IBM

"Incredibly wide ranging and detailed course - structured in a fantastic way. Really demonstrates the value and power of TDD. Highly recommended to anyone thinking of taking it."

Django Shelton, IBM

About the Author

Damjan Vujnovic

With over a decade of experience working on domains within a variety of industries – including financial, government and social – Damian Vujnovic is a strong authority on simplifying development processes to create robust software applications.

Introduction to unit testing (Jest)

Objects

  • object literal
  • default & guard operators
  • updating properties & property attributes
  • property enumeration
  • removing properties

Functions

  • declaration hoisting
  • function literal
  • arguments
  • invocation patterns and this
  • return
  • prototype

Arrays

  • array literals
  • length & delete
  • for vs. for in
  • arrays vs. associative arrays
  • filter/map/reduce & co

Functions

  • lexical scope
  • closure
  • revealing module pattern
  • bind

Unit testing asynchronous code

OOP

  • constructor and factory functions- classes- inheritance
  • mixins

ES6

  • const & let- template strings- object literals- default parameters- fat-arrow functions- destructuring objects and arrays- spread & rest operator

    Asynchronous programming patterns

  • callbacks

  • promises

  • observable

Functions, part three

  • are first-class- currying and partial application

This workshop is a combination of lectures, discussions and practical exercises.

Audience

If you are an experienced Web Developer designing, creating and maintaining rich web applications, and wanting to tackle to complexity and challenges of modern Web Development in JavaScript, this is the course for you!

Prerequisites

This is an advanced JavaScript course: To benefit from this course, you should have some hands-on experience using JavaScript and be familiar with HTML, DOM, CSS and Ajax.

Prior exposure to a JavaScript/Ajax framework (like JQuery which is used in a few exercises) will be helpful but is not essential.

Bring your own hardware

To participate in this course you are required to bring your own laptop with the following installed: - Git client - NodeJS 10 - A modern browser - Visual Studio Code (or any other text-editor/IDE)

If you are unable to bring your own laptop and you let us know at least 2 weeks prior to your attendance of this course, our team will be able to provide you with a laptop pre-installed with the above environment.

Overview

JavaScript is one of the world's most popular programming languages and the cornerstone of modern web application development. This three-day advanced JavaScript course will develop your understanding of JavaScript and your approach to it so that you can continue to create and maintain rich web applications.

Damjan Vujnovic, renowned proponent for clean coding and efficient JavaScript design, invites you to a test-based learning environment to sharpen your existing skills and knowledge of best practices when navigating JavaScript’s functional and dynamic nature. You will broaden your knowledge of lexical scope and closure, write object-oriented code, apply asynchronous and event-driven patterns, use behaviours to stay unobtrusive, while finally end the course by unit-testing your code. Meet with other passionate developers, exchange what you learn, and find new approaches to apply your knowledge to current and future projects.

- Create clean and sophisticated code with an advanced understanding of JavaScript -


Who you will be learning with

Developers with an existing background in JavaScript and those from other disciplines that have experience with JavaScript, HTML, DOM, CSS and Ajax who are interested in how JavaScript can be most effectively used for their business goals.

How to apply these skills

With business growth applying significant pressure on developers on a daily basis, having a comprehensive understanding of JavaScript best practices will save your team time and resources by establishing clean coding patterns early on in your development process.

What next?


Book early to receive a discount on the course price and in doing so you will not only commit to growing your own skill set, but help us grow our community of over 140,000 passionate techies.

Learn how to:

  • Take advantage of JavaScript's functional and dynamic nature, using modern language features
  • Understand lexical scope and closure
  • Write clean, well-structured, object-oriented code
  • Apply best practices to avoid quirks and common pitfalls
  • Apply asynchronous and event-driven patterns
  • Unit test JavaScript code

What the community says

"Very good, learnt a lot! Lots of exercises, content and free materials."

Alexander Sahin, IBM

"Phenomenally knowledgeable."

Joseph Brady, IBM

"Really enjoyed the test-based learning, good way to teach!"

James Topham, IBM

"Excellent format to the course. Very engaging and learning about TDD (principles and framework) as we want was fantastic!"

Mark Howard, IBM

"Incredibly wide ranging and detailed course - structured in a fantastic way. Really demonstrates the value and power of TDD. Highly recommended to anyone thinking of taking it."

Django Shelton, IBM

About the Author

Damjan Vujnovic

With over a decade of experience working on domains within a variety of industries – including financial, government and social – Damian Vujnovic is a strong authority on simplifying development processes to create robust software applications.

Program

Introduction to unit testing (Jest)

Objects

  • object literal
  • default & guard operators
  • updating properties & property attributes
  • property enumeration
  • removing properties

Functions

  • declaration hoisting
  • function literal
  • arguments
  • invocation patterns and this
  • return
  • prototype

Arrays

  • array literals
  • length & delete
  • for vs. for in
  • arrays vs. associative arrays
  • filter/map/reduce & co

Functions

  • lexical scope
  • closure
  • revealing module pattern
  • bind

Unit testing asynchronous code

OOP

  • constructor and factory functions- classes- inheritance
  • mixins

ES6

  • const & let- template strings- object literals- default parameters- fat-arrow functions- destructuring objects and arrays- spread & rest operator

    Asynchronous programming patterns

  • callbacks

  • promises

  • observable

Functions, part three

  • are first-class- currying and partial application

This workshop is a combination of lectures, discussions and practical exercises.

Audience

Audience

If you are an experienced Web Developer designing, creating and maintaining rich web applications, and wanting to tackle to complexity and challenges of modern Web Development in JavaScript, this is the course for you!

Prerequisites

This is an advanced JavaScript course: To benefit from this course, you should have some hands-on experience using JavaScript and be familiar with HTML, DOM, CSS and Ajax.

Prior exposure to a JavaScript/Ajax framework (like JQuery which is used in a few exercises) will be helpful but is not essential.

Bring your own hardware

To participate in this course you are required to bring your own laptop with the following installed: - Git client - NodeJS 10 - A modern browser - Visual Studio Code (or any other text-editor/IDE)

If you are unable to bring your own laptop and you let us know at least 2 weeks prior to your attendance of this course, our team will be able to provide you with a laptop pre-installed with the above environment.