Core Coursework
(take these in order)
- +
Editor's Notes
A practical introduction to JavaScript and an overview of the language, Bianca covers what you need to know to be competent at writing JavaScript. JavaScript: From Fundamentals to Functional JS, v2
Learn higher-order functions, closures, scope, master key functional methods like map, reduce and filter and promises and ES6+ asynchronous JavaScript.- +
Editor's Notes
Will’s course emphasizes not only understanding JavaScript, but also communicating your understanding of the language’s most important concepts. Communicating is a necessary skill for becoming a high-performing engineer. JavaScript: The Hard Parts, v2
Take your JavaScript to the next level. Gain an understanding of callbacks, higher order functions, closure, asynchronous and object-oriented JavaScript!- +
Editor's Notes
Kyle’s course builds by reinforcing many of the foundational concepts covered in Will’s course, but goes even deeper. He also covers types and the type coercion that goes on under the hood of JavaScript. Deep JavaScript Foundations, v3
Dive into JavaScript's core language features: types & coercion, scope & closure, and JavaScript's object oriented system.- +
Editor's Notes
Modern JavaScript builds on top of the foundations and adds more to the language. Kyle’s JavaScript the Recent Parts course will give you a deeper understanding those newer features added to the JavaScript Language. JavaScript: The Recent Parts
Get up to speed with new JavaScript features like tagged template literals, destructuring, iterators, generators, regex improvements and async await.- +
Editor's Notes
Understanding asynchronous and functional programming deeply will increase your programming abilities drastically. The first course is part 2 of Will’s “Hard Parts” series. With this one, he’s focusing on the new asynchronous features in JavaScript. JavaScript: The New Hard Parts
Develop an intuitive understanding of the new features of JavaScript in ES6+: iterators, generators, promises, and async/await!- +
Editor's Notes
Functional programming is a set of tools such as map/reduce/filter, pure functions, and immutability. These tools are sure to make you a more effective developer through composing pure functions together to write more predictable and bug-free code. Functional-Light JavaScript, v3
Improve your JavaScript by applying functional programming concepts like function purity, point-free, partial-application, currying, composition, immutability, recursion, list operations like map, reduce & filter...plus even more advanced concepts like monads and transduction!- +
Editor's Notes
There’s a push with new languages that compile to JavaScript which are born of a functional nature like Elm and PureScript. In this course, we see how far we can take pure JavaScript towards more traditional functional programming. Hardcore Functional Programming in JavaScript, v2
Learn functional programming concepts such as pure functions, currying, composition, functors, and monads, and see functional concepts in action in a real-world web app!- +
Editor's Notes
We have even more optional JavaScript courses! TypeScript is increasingly becoming a standard way to add type information into the language. You’ll want to learn to be able to optimize and measure your code’s performance. The entire JavaScript language can be broken down into abstract syntax trees (ASTs). Finally, it’s good to have some techniques to debug your JavaScript.
Elective Coursework
TypeScript 3 Fundamentals, v2
TypeScript adds a powerful type system on top of your JavaScript to catch bugs before they happen and provides a superior developer experience for collaborative teams.JavaScript Performance
Write more efficient JavaScript, optimize rendering performance, load assets faster with a CDN, split loading resources with Webpack and more!The Hard Parts of Object Oriented JavaScript
Understand JavaScript’s prototypal design and ES6+ classes to better organize and scale your JavaScript apps.Hardcore Functional Architecture Patterns in JavaScript
Learn patterns to apply, such as Monoids, Monad Transformers, Free Monads, and Lenses. See functional programming in action!Rethinking Asynchronous JavaScript
Effective asynchronous JavaScript means knowing various different patterns and weaving them together to write readable and understandable code.Asynchronous Programming in JavaScript (with Rx.js Observables)
Learning how to build and manage asynchronous programs is perhaps the most important part of becoming an effective JavaScript programmer.JavaScript Testing Practices and Principles
Learn the principles and best practices for writing maintainable test applications to catch errors before your product reaches the end user!Debugging and Fixing Common JavaScript Errors
Learn what causes common JavaScript bugs and use the latest developer tools to isolate and fix the source of the problems!