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
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
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
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, v2
Learn the fundamentals of state machines and statecharts. You'll build state machines without any libraries in pure JavaScript, then use XState to..click to read more. - +
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
With Web Assembly the web browser becomes the universal compile target to run modules from any language and ship complex programs. - ⠇
Web Assembly (Wasm)
Learn foundational, low-level programming such as binary, hexadecimal, array buffers, memory management, and unsigned integers. - +
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
Learning to get setup onto projects quickly and develop consistently across machines is a valuable skillset for daily productivity. - ⠇
Developer Productivity
Build a pro dev workflow to increase your developer productivity across multiple machines, projects, and technologies. Learn more! - +
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.
Elective Coursework
- ⠇
Complete Intro to Real-Time
Learn to build apps where the client can push messages to the server and talk in real-time. Start today! - ⠇
Exploring Service Workers
Service Workers enable websites to have new PWA capabilities like smart offline caching, background sync, and push notifications! - ⠇
Dynamic CSS with Custom Properties (aka CSS Variables)
Create reusable components without any JavaScript dependencies needed – with only vanilla CSS! Master CSS custom properties AKA CSS variables. - ⠇
JavaScript and TypeScript Monorepos
Monorepos have taken the JavaScript world by storm, unlocking powerful new patterns around composition, encapsulation, and ease of maintenance. - ⠇
Building Your Own Programming Language
Learn language building techniques: Lexing, Parsing, Tokenization, Traversing Abstract Syntax Trees, and Transpiling to JavaScript and make your own language now! - ⠇
Web Security
Get hands-on experience attacking and defending web applications. Defend Cross-Site Scripting and MITM attacks, secure 3rd party assets, and more! - ⠇
Enterprise Architecture Patterns
Build non-trivial enterprise-level web applications through first-principles thinking applied to programming in JavaScript and TypeScript. - ⠇
Hardcore Functional Architecture Patterns in JavaScript
Learn functional programming architecture patterns to apply, such as Monoids, Monad Transformers, Free Monads, and Lenses. See functional programming in action!