Web Design – Modern JavaScript Workshop

Date: TBC

Time: 9:30a.m. – 5:00p.m.

Venue: TBC

Member-subsidised fee: €650

Non-member fee: €950

To register your interest in this course or to book a place please email Annette on skillnet@itcork.ie



This is a fast paced workshop, which will enable experienced developers to:

  • Write Object Oriented and Functional code in JavaScript
  • Take advantage of the new features in ES6 and Typescript
  • Use modern tools such as WebStorm, Babel and WebPack
  • Create basic Web Applications via Angular and React


The workshop is delivered over three days, with the majority of the time spent on exercises and practical work. WebStorm is the default IDE, with WebPack and Babel used to transpile ES6 and TypeScript. Delegates must be experienced Java or C# developers who are already familiar with HTML, CSS and REST. Previous experience of JavaScript is advantageous but not required.


Workshop Modules

Basic JavaScript Programming

  • The core JavaScript types and dynamic typing
  • Explicit and implicit variable declarations
  • Implicit conversions and the bugs they can cause
  • Minimizing your programs use of global variables
  • Using typeof and instanceof to investigate types
  • The lack of block scope and ‘variable hoisting’
  • Understanding truth and equality in JavaScript
  • Making choices, basic iteration and the for…in loop
  • Manipulating strings and applying regular expressions
  • Working with single and multi-dimensional arrays
  • The difference between arrays and ‘array-like’ objects

Writing Functions in JavaScript Part 1

  • How and why functions are ‘first class citizens’
  • Four patterns of invocation for calling JavaScript functions
  • Understanding how the binding of this varies in functions
  • Calling functions with fewer parameters or additional ones
  • Creating variadic functions using the arguments array
  • Passing functions as arguments into other functions
  • Building and returning functions from functions

Writing Functions in JavaScript Part 2

  • Using generated functions as closures
  • Why closures store references to outer variables
  • Subtle bugs caused by incorrect use of closures
  • Using nested functions as an encapsulation technique
  • The ‘immediately invoked function expression'(IIFE)

Functional Programming with ‘Underscore.js’

  • Using functions as the unit of composition
  • Replacing external iteration with each, filter and map
  • Producing a single value from a list via folds and reductions
  • Applying currying and partial application in JavaScript

Object Orientation in JavaScript Part 1

  • Understanding the prototype based style of OO
  • Pros and cons of ‘monkey patching’ types
  • Declaring objects using the Object type
  • Declaring objects using the literal syntax
  • Declaring objects using constructor functions
  • Protecting against incorrect constructor invocation
  • Different options for accessing members of objects

Object Orientation in JavaScript Part 2

  • Implementing inheritance using the prototype chain
  • Distinguishing between owned and inherited properties
  • The difference between prototype and __proto__
  • Minimizing mutable state when designing JavaScript types
  • Applying the SOLID principles of OO design in JavaScript

Taking Advantage of ES6

  • Writing modern JavaScript and retaining compatibility
  • Understand modules and support for import / export
  • Interpolation via template literals and back-tick quotes
  • Using the ‘let’ keyword to declare block scopes
  • Iterators, generators and the ‘for..of’ statement
  • The new class syntax for declaring types and properties
  • Using the spread operator with functions and structures
  • New data structures (maps, typed arrays, promises etc)
  • Simplified functional programming with arrows

Taking Advantage of TypeScript

  • Why do we need TypeScript?
  • Introduction to Babel and Webpack
  • Support for TS in the WebStorm IDE
  • Configuring TypeScript via json
  • Adding types to variable declarations
  • Enforcing contracts via interfaces
  • Enhancements to function declarations
  • Support for generic types and constraints

Getting Started with Angular 4

  • Using the Angular CLI to bootstrap your project
  • Understanding the output from the Angular CLI
  • Running and incrementally enhancing your app
  • Creating components with templates and styling
  • Options for event handling and data binding
  • Arranging your components into hierarchies
  • Creating and injecting services into components
  • Accessing RESTful services and loading data
  • Support in Angular for Reactive coding via RxJS
  • External data storage with NgRx Store

Getting Started with React and Redux

  • Initializing a new project via ‘create-react-app’
  • Using JSX to combine markup with JavaScript
  • Four different ways to code a new component
  • Using properties to pass data into components
  • Initializing and altering the state of a component
  • Making use of the component lifecycle callbacks
  • Nesting and managing parent-child relationships
  • Interacting with external services via ‘Restful.js’
  • Making use of Redux to manage state externally
  • The React-Redux and Redux-Thunk libraries



To register your interest in this course or to book a place email Annette on skillnet@itcork.ie