Welcome to this review of the Pluralsight and Front End Masters Advanced JavaScript by Kyle Simpson.
Kyle Simpson is Head of Curriculum for MakerSquare and an evangelist of the open web. He lives in Austin, Texas, and is passionate about all things JavaScript.
He’s written 8 books published by O’Reilly, including six books in the You Don’t Know JS series.
Kyle teaches JavaScript and has eight courses recorded by Front End Masters.
He’s a public speaker, and contributes to the world of OSS.
I originally watched Advanced JavaScript over a year ago and it remains my favorite course on JavaScript, and one of my all-time favorite Pluralsight courses.
In fact I was so impressed with it I invited him to take part in the special question and answer session Successful Developer Career Strategies on Outlier Developer, and was delighted that he agreed to take part.
I made the mistake of not following up on this course by reading the books or following the exercises myself. Over the next year I gradually forgot many important details from this course. Active learning is much better than passive learning, so I am watching it again and learning it in conjunction with the books, and making it easier for everyone else to do the same.
Advanced JavaScript is the penultimate course in the new JavaScript learning path which I aim to complete in September 2016.
In this series:
Part 1 – Introduction
Part 2 – Scope
Part 3 – Lexical Scope
Part 4 – Block scoping
Part 5 – Dynamic Scope, Hoisting and this
Part 6 – Closure
Part 7 – Object Prototypes
Part 8 – Inheritance and OLOO
Part 9 – Async Patterns
Introduction
Speaker Introduction
Kyle introduces himself and reflects on his first workshop on web performance.
You can contact Kyle on Twitter or visit his website http://getify.me/ and he’s available for hire.
He gives an overview of some of the Open Source Projects he’s worked on:
- LABjs – Loading And Blocking JavaScript
- grips
- asynquence – promise-style async sequence flow-control
He also has slides to his talks available on speakerdeck.
Finally he mentions his highly popular book series You Don’t Know JS. Some of this course is based on material from that book series, and I will point out cross-references as we progress through.
He also recommends a couple of other O’Reilly books:
- High Performance JavaScript by Nicholas Zakas
- JavaScript Patterns by Stoyan Stefanov
JavaScript Resources
Kyle talks about Mozilla Developer Network and how useful it is.
Mozilla Developer Network – JavaScript
He also recommends Rick Waldron’s Idiomatic JS:
Principles of Writing Consistent, Idiomatic JavaScript
ECMAScript Language Specification
Kyle talks about a disagreement with John Resig over how the this keyword is bound, and the role of the spec in resolving the argument.
This course was taught before ECMAScript 2016 or 2015 (aka ES6) became a standard. Kyle talks about ES 5.1 here.
He says there’s no question that the spec is difficult to read. However he gives some tips on how to navigate and use it.
He recommends reading the specifications as homework.
The latest ECMAScript specification is ECMAScript 2016.
Course Plan
The unofficial title of this course is:
The “What you need to know” Parts
He says people taking this course should have 1-2 years experience of JavaScript, although that’s just a recommendation not a requirement.
(If you are new to JavaScript, then you could do a lot worse than to read Kyle’s book Up & Going and then come back here afterwards)
Advanced here means Advanced basics: we look at the basic things at an advanced level.
We can spend years writing JavaScript without understanding how the language works properly. The aim of this course is to force ourselves to learn it very well.
It will have a narrow scope but go very deep into those areas.
He says his editor told him not to put the this keyword inside the Scope and Closures book because it is weird. But in this course the this keyword will be discussed in the middle of scope and closure.
This course is a recording of the first day of a 2 day workshop, and the second day’s recording produced the course Real Time Web with Node.js.
Kyle says proficiency with JavaScript should not be conflated with Node proficiency because Node requires us to understand the JavaScript language in more depth than we needed to know in the browser.