Core Coursework
(take these in order)
- +
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
Getting lots of practice using map, reduce and filter will reveal how utterly indispensable of tools they are in your day to day code. Jafar teaches these within the context of observables, which is a construct to create streams of data in JavaScript. 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.- +
Editor's Notes
There are many, many ways to write asynchronous code in JavaScript. Kyle gives you a tour from the ground up to generators, observables, and CSP. Rethinking Asynchronous JavaScript
Effective asynchronous JavaScript means knowing various different patterns and weaving them together to write readable and understandable code.- +
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
When leading teams, you’ll need to know your tools very, very well since you are likely the one responsible for setting up and maintaining your build process. Webpack 4 Fundamentals
Learn the core concepts of Webpack 4. Start from scratch by adding Webpack with npm and build up a pipeline with popular loaders from the Webpack ecosystem!- +
Editor's Notes
When a developer (including yourself) messes up git, which inevitably happens, someone on the team needs to know how to get you out of a pinch! Learn git deeply and never lose your work again. Git In-depth
A deep dive into git, this course is for developers who use it every day and want to learn inner workings and use advanced techniques in git.- +
Editor's Notes
Make sure your code is fast by diving into how the JavaScript engines and web browsers parse your code. JavaScript Performance
Write more efficient JavaScript, optimize rendering performance, load assets faster with a CDN, split loading resources with Webpack and more!- +
Editor's Notes
Most large code bases use TypeScript, and to be able to evolve them and add things like testing type information and automatic API detection can drastically improve productivity for your team. Production-Grade TypeScript
Use the TypeScript language at scale to increase the developer experience and productivity of your teams! You’ll learn to manage even the most ambitious TypeScript projects with confidence and ease.- +
Editor's Notes
State management is one of the most difficult problems in software engineering. State Machines and State Charts can be an amazing solution across a variety of environments. State Machines in JavaScript with XState
Learn the fundamentals of state machines and statecharts, from building your own in pure JavaScript, up to using XState to take advantage of a wide variety of features built into XState.- +
Editor's Notes
As a senior engineer, you’ll need to keep security in mind while building software since security attacks can devastate your systems.
Elective Coursework
Web Security
Get hands on attacking and defending web applications. Defend Cross-Site Scripting (XSS) and Man-in-the-Middle attacks, secure 3rd party assets and more!Introduction to Serverless Functions
Learn to build dynamic web apps without the hassle of setting up or maintaining servers! You'll learn to create serverless functions to load data, process form entries securely, handle authentication, and more.Advanced Asynchronous JavaScript
Go beyond the fundamentals of asynchronous JavaScript and use features and techniques that will help you reduce code and create smarter applications.Hardcore Functional Architecture Patterns in JavaScript
Learn patterns to apply, such as Monoids, Monad Transformers, Free Monads, and Lenses. See functional programming in action!Exploring Service Workers
Service Workers enable websites to have new PWA capabilities like smart offline caching, background sync, and push notifications!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.