Core Coursework
(take these in order)
- +
Editor's Notes
A practical introduction to JavaScript and an overview of the language, Anjana covers what you need to know to be competent at writing JavaScript. - ⠇
JavaScript: From First Steps to Professional
Take your first steps into the wide world of JavaScript and walk away with the core skills needed to become a professional JavaScript programmer! - +
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 object destructuring JavaScript features like tagged template literals, destructuring, iterators, generators, and async-await. Learn more! - +
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, plus even more advanced concepts. - +
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, monads, and see functional concepts in action! - +
Editor's Notes
When you add lots of dynamic functionality with JavaScript, it’s important to keep your web apps accessible through announcing changes and focusable elements to screen readers and accommodate those with disabilities. - ⠇
Accessibility in JavaScript Applications
Produce innovative and inclusive JavaScript-powered web apps! Learn to remove barriers and allow all users to interact with your modern JS web applications. - +
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 Fundamentals, v3
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. - ⠇
JavaScript Testing Practices and Principles
In this course, you'll 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 how to debug them. Learn how to use the latest developer tools to isolate and fix the source of issues. - ⠇
Code Transformation and Linting with ASTs
Learn to use Abstract Syntax Trees (ASTs) to make stylistic code changes, reveal logical problems, and prevent bugs from entering your codebase.