Skip to content

A series of tutorials/workshops/hack-sessions for learning modern JavaScript

License

Notifications You must be signed in to change notification settings

DunedinJS/dunedin-modern-javascript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

Dunedin Modern Javascript

A series of tutorials/workshops/hack-sessions for learning modern JavaScript.

This is intended to cater to a broad range of experience levels. Some exposure to old-fashioned JavaScript or mainstream intepreted programming languages such as Python, Ruby, or PHP is a good base entry level. Knowledge of Git and HTML is also useful but not essential.

Workshops contain a targetted set of theory but are best delivered interactively. It's very easy for people to open up their browser console, Node.js, jsbin.com, or similar to follow along and test out code samples.

By modern JavaScript we mean:

  • features from the ES5 spec which recently came into mainstream use — usually browsers now support them
  • features from the ES6/ES2015 and ES7/ES2016 specs — most of these are supported by current browsers or can be polyfilled
  • proposed and draft features which can already be used with transpilers such as Babel or TypeScript

Engagement

We're looking for any suggestions of what you, the JavaScript community would like to learn about or present. All levels of experience from 'never touched it' to 'guru' are valuable as is feedback about what works best.

This is a "living document" so please raise an issue, or open a pull request if you notice any problems or would like to contribute.

Many topics listed are just suggestions so it would be great to have contributions from people interested in specific areas. Suggestions of other topics are most welcome.

Workshops

Back to basics to cover some existing JS idioms and how modern language features can improve them. An introduction to some of the most important new syntax and language features.

Migrating an existing app to modern JS

Continue directly from where workshop 2 ends and introduce unit testing with Jest, code linting with ESLint, and convert the existing project to modern syntax.

Small topics for mini-workshops:

Core language features

Frequently used standards and tools

  • Strict Mode (work in progress)
  • Chrome Devtools — Console
  • Getting started with Node.js and NPM
  • CommonJS modules (work in progress)
  • NPM — Package management
  • NPM — Task management
  • Chrome Devtools — Debugging client-side JavaScript
  • Chrome Devtools — Debugging Node.js JavaScript
  • ESLint and the Airbnb JavaScript Style Guide

Specialised entry-level topics:

  • Webpack basics — dev server, module bundling, and using loaders
  • Unit testing with Jest
  • Type annotations with Flow
  • A glimpse at async and await
  • Advanced Webpack — versioning, code splitting, using plugins, shimming awful old libraries :(
  • Lodash and functional composition with Lodash/FP
  • End-to-end testing with WebDriver.io (Selenium)
  • Vue.js — a simple, minimal framework
  • Virtual DOM in React and other implementations — what happens when we compile that crazy JSX source!
  • Redux and immutable data structures — how to use them for application state — standalone then with React
  • TypeScript

Advanced topics:

  • Reactive programming with RxJS
  • CSS modules in React
  • GraphQL
  • Webpack Hot Module Reloading
  • React Native — learn once, write everywhere for web, iOS, and Android
  • Future module loading — JSPM, SystemJS, HTTP/2 (maybe also Webpack 2)
  • An introduction to Angular 2 with TypeScript
  • Angular 2 dependency injection
  • Data visualization with React and Victory
  • Proxy and Reflect
  • FireBase

Contributing:

Feel free to raise any issues, or open a pull request with changes. Also, feel free to contact Matthew Norrish directly at [email protected].

We are reaching out to JavaScript New Zealand for support and advice. Join the JavaScript New Zealand team on Slack and the #dunedin-js channel.

About

A series of tutorials/workshops/hack-sessions for learning modern JavaScript

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published