Learn Vanilla JS
A roadmap and collection of resources for learning JavaScript.
⏰ Last chance to join! A new session of the Vanilla JS Academy starts on Monday. Register today and save 30%. Click here to learn more.
The Roadmap
This isn’t a comprehensive list. You don’t need to learn these in order, or even learn all of them. You’re still a “real developer” even if you only learn a few of these.
Think of these as some ideas to help you get started.
- Beginner Topics
- Variables. The difference between
var
,let
, andconst
, and when and why you’d use one over the others. - Functions. The different ways to create functions, and how they’re different.
- Strings. How to create and transform strings.
- Numbers. How to create and transform numbers.
- DOM Manipulation. How to get elements in the DOM, make updates, and listen for events.
- Arrays & Objects. How they’re different, when to choose one over the other, and how to edit and transform their data.
- Browser Storage. Saving data in the browser with
localStorage
,sessionStorage
, and cookies. - Dates. How to get, set, and transform dates and times.
- Scope. Why and how to scope your code.
- Progressive Enhancement. How to build sites and apps that still work even when some of your code fails.
- Polyfills. How to bolt-in support for features in older browsers that don’t natively support them.
- Variables. The difference between
- Advanced Topics
- Promises. Asynchronous functions in JavaScript, and when, why, and how to work with them.
- Ajax & APIs. How to get data from APIs and other external resources and integrate them into your sites and apps.
- Plugins. How to write flexible, modular, scalable plugins that grow with you and your users.
- State-Based UI. What is it, how its different from traditional DOM manipulation, and when and why should you use it.
- ES Modules. How structure and manage your scripts as your code base grows larger and more complex.
- JS Testing. How to test your JavaScript so that you catch issues before your deploy to production.
- Service Workers. How to store assets offline and build progressive web apps.
- Build Tools. How to automate repetitive web development tasks.
- Serverless & Microservices. How to take advantage of server-based features without managing your own server.
- Token-Based Auth. How to authenticate users and manage browser sessions in client-side web applications.
- Static Site Generators. Get the benefits of database-driven sites and the performance and security wins of flat HTML.
Get Daily Developer Tips
I send out a short email each weekday with code snippets, tools, techniques, and interesting stuff from around the web. Join 10,900+ daily subscribers.
Hi, I'm Chris Ferdinandi. 👋

I believe there’s a simpler, more resilient way to make things for the web.
I create vanilla JS pocket guides and video courses, run a project-based training program, and host the vanilla JS podcast. My developer tips newsletter is read by over 10,900 developers each weekday.
If you have a question about something or need JavaScript help, get in touch.