Skip to main content Accessibility Feedback
← Back to Courses & Workshops

Modern JavaScript Essentials

A project-based JavaScript workshop for beginners and aspiring developers.

Get the skills and confidence to really understand JavaScript and build your own projects from scratch.



How It Works

  • 100+ Lessons
  • 18 Projects
  • 24/7 Peer Chat
  • 6 Week Program

Modern JavaScript Essentials is a project-based workshop designed to help you learn to solve problems and think in JavaScript.

Every week, you get a project to work on, 1-3 short lessons that provide some background, and a template to help you get started.

If you get stuck, there’s a 24/7 private Discord community exclusively for students, and video office hours every month.

Tired of tutorials? Want to really dig in and work with other developers on how to become a vanilla JS badass? I can't tell you how much I've learned from Chris Ferdinandi and his Vanilla JS Academy.- Ben Rudolph

What You’ll Learn

By the end of this course, you’ll be able to write your own projects from scratch using modern vanilla JavaScript.

  • Modern JS (ES6+) essentials
  • How to structure and organize code
  • DOM manipulation and injection
  • How to save data locally
  • Ajax and Promises
  • How to work with APIs
  • async and await
  • Array and object destructuring
  • Framework-free web apps and games
  • How to transform and edit strings, numbers, arrays, and objects
  • JavaScript performance tricks
  • How to debug broken code
  • Web accessibility fundamentals

🧠 Multiple formats for different learning styles. Lessons include both written text and streaming HD videos (with captions). Watch or read on any device.

Best investment and course I have taken. If you want a bite sized course that will hold you accountable take this course. I have reduced the amount I Google and use Stackexchange by 50% and actually feel like I understand what I am coding.- Walter Jenkins


Work on fun projects!

Grow your portfolio and build a wide range of fun projects, including…

Toggle Password Visibility
Show and hide passwords by toggling a checkbox field.
Word Count
Count the number of words and characters in a block of text as the user types.
Random Ron
Show random Ron Swanson quotes on a website using an API.
Dragon Trainer Magazine
Create a magazine website by combing several APIs from Dragon Trainer Magazine.
Find the Monsters
Create a fun game where you find your monster friends and avoid the sock.
Form Saver
Automatically save form data as a user types and reload it on future visits.
Making myself a little web tool and using a whole range of stuff that Chris Ferdinandi’s Vanilla JS Academy taught me.

I struggled with JavaScript for a decade so I really would recommend it for anyone who needs a big friendly confidence-booster.- Laura Kalbag

Coaching

Learning web development is hard! Don't go it alone. With the Lean Web Club, you get the support you need to achieve long-term success.

Live Video Q&A

Join live video office hours every few weeks. Ask questions, share works in progress, and get help with any big roadblocks.

Private Discord Access

Get 24/7 access to a private a private Discord community where you can chat with other students, get feedback on code, and ask questions in between office hours.

Video Q&A Library

Get instant access a growing library of dozens of past Q&A sessions.

Office Hours include live automated audio transcription for people who are hearing impaired, don't speak English as their native language, or simply prefer to read.



The Program Schedule

Here’s exactly what you’ll learn in Modern JavaScript Essentials.

Module 0. Getting Started

  • How JavaScript differs from HTML and CSS
  • How to load JavaScript files in the browser
  • Variables, functions, and comments
  • Developer tools, the console, and debugging
  • Tools of the trade: recommended browsers and text editors
  • Tips for working on projects

Module 1. DOM Essentials

  • Getting elements in the DOM
  • Listening for events and user interactions
  • Looping over elements
  • Getting and setting text and HTML
  • Working with custom HTML attributes

Module 2. APIs & Asynchronous JS

  • Working with fetch()
  • Parsing and manipulating API data
  • Promises and chaining API calls
  • Making multiple API calls and structuring code
  • Cross-site scripting attacks and sanitizing third-party data
  • async and await

Module 3. Arrays, Objects, Strings, & Numbers

  • Looping over and manipulating arrays and objects
  • Advanced array and object methods
  • Shuffling arrays
  • Adding and removing items from arrays and objects
  • Converting strings to numbers and numbers to strings
  • Doing math with JavaScript

Module 4. Browser Storage

  • Storing data locally in the browser
  • How to convert objects to strings and back again
  • How to build local apps using browser storage
  • Serializing form data
  • Debouncing
  • Dynamic status messages

Across all of the sections, you’ll also learn about web performance, debugging, and web accessibility.



In terms of knowledge gained per effort expended, this course is hands down the best I've ever tried. More than just the content, it is the growing confidence that maybe even I can actually do this. I feel like I am beginning to know what I don't know. That is huge. Well done.- Stewart Davis
I was confident that I'd get something valuable from the Academy. The only only hesitation I felt was from knowing how many false starts I had with JS in the past and questioning my own commitment.

With Academy, something finally clicked in regards to both my ability to understand and write JavaScript.

I now feel pretty confident in reading other's scripts and figuring out what's going on. That's in large part due to your clear bite-sized lessons and the active discussions in Slack that quickly surfaced questions and issues that I was also experiencing. Seeing how the same problem was solved by so many others was also helpful in letting go of the pressure to get things right and shift my focus on getting things to work and adjusting later as needed.

I really liked how the lessons were broken up into quickly consumable chunks. I loved having a clean, unopinionated project file to start from that I could wreak design havoc on. :)

The Slack community was priceless.

I've taken other online classes that include a slack community and never found them to be quite as welcoming and my involvement felt much more transactional. In this community, I enjoyed seeing everyone's dedication and investment in each other. It was welcoming, inclusive, helpful, and encouraging. That made a huge difference.- Leticia O'Neill
This program is super hands-on. I always wanted to learn how to make my own libraries, or to know how jQuery library works. Async, Promises and Fetch was another huge one for me, that I used in my projects right away.

It gave me a lot of confidence as a developer, I wish I had a training like this when I started. It got me much closer to my goal of becoming a senior front-end dev.

The material covered in the Academy translates right away into my day-to-day tasks at work, which is amazing. I loved that we could share our solutions in a very supportive group, and that you were there in that group all the time. That's rare with other teachers. Having the official solution the next day was fantastic.

It's an amazing product for all the reasons listed above. I recommend it to everyone.- Maria Blair
After going through this program, I found that using vanilla JS, you can accomplish A LOT more than the larger dev community would lead you to believe.

I really liked the open-endedness of the weekly projects. I think having fewer restraints in solving the task made me focus more on the specific topic for that week and how I would apply it to the given project. Combining this with the Thursday office hour and then having your approach shared on Friday made for a well-rounded overview of the material.

Thanks for an awesome course, Chris! This truly was the best JS learning experience I’ve had—things really clicked for me during the academy and I feel much more comfortable using JavaScript and approaching problems with JS-specific solutions at the ready!- Zac Heisey
My biggest concerns before joining Academy were cost and my experience with other online classes. Most other classes are follow-the-tutorial type and you build a project but don't really understand what you built. Had I understood that your course emphasizes fundamental knowledge of why things work, I probably would have joined a year earlier.- Stewart Davis
I can honestly say I am not sure how I ever thought I could learn JS WITHOUT the Vanilla JS Academy. And trust me I have tried other courses.- Izzi Koning
I’m loving the Academy and I don’t want it to end! 😢 For me this is priceless. I don’t work in tech yet and to be able to do those mini projects and discuss the code and best practices with you guys is a great learning experience. The pace of the course is nice too because it keeps me busy and that helps me feel more comfortable with the syntax and methods. 💯- Giamma Carioca
I was desperately looking for a person or guided tutorial to help me understand the foundation of pure (vanilla) JavaScript. Though I have good work experience in various programming languages including JavaScript, I felt I was missing something.

I found and bought Chris's books and have gone through most of them. But I was still looking forward to to talking to someone, so I joined the Academy :-) and I'm happy that I did.- Kumar Sucom
Initially it was very challenging. I found I often hit walls with things like finding the best method for iterating over an array, or finding the right way to target DOM elements, most if it was practice though. As the course went on, a picture started to emerge and things started to make more sense.

At the end Javascript didn't feel like a strange far away land, but maybe a town I've visited a few times and am starting to recognise landmarks.

It's a very accessible course. You importantly are not made to feel that anything should be better understood or you've committed some sort of JavaScript sin. Lots of encouragement and a genuinely approachable, knowledgable and nice person to learn from.- Rich Holman
I am thoroughly looking forward to every morning because of the Academy!- Kieran Barker
I thank you from the bottom of my heart. If it had not been for you, I would not be able to learn JavaScript.- Patricia Parker
I had a great time learning through your Academy. The community is great and it is phenomenal the way you run it. I appreciate the kindness and welcoming feeling I get in a community and the Vanilla JS Academy community is just that.

I had a blast and enjoyed every minute of it, whether it was the Slack channel, office hours, or just going through and learning. Thank you, it was money well spent.- Todd Libby
Having your interaction is priceless. Such added value.- Elliott Porter
Your course provided the impetus to knuckle down and challenge myself. You got me writing code (not merely reading about it or watching videos).

Having a caring, well-spoken guide such as yourself made it fun to work through the projects. Having that in a group all tackling the same projects added that dynamic aspect that also got me moving.

Some specific things I liked: The fabulously well-crafted projects/challenges. The clarity of your teaching (videos, in-code comments, etc.). The supportive Slack channels. The feeling that no question is a dumb question -- and the thrill of having a dialogue going permitting sharing tidbits with others.

No Lynda.com tutorial or other tutorial provides that environment.- Ron Amick
Honestly, the projects so far plus seeing your examples have helped me learn so much faster.- Craig Haggart
A couple of weeks ago, Javascript was a great mess for me. I could read a little bit of it. After I started Vanilla JS Academy, I started to read it and understand, to the point of changing some simpler production code. Thank you very much, Chris.- Vicente Sarmento
Clarity. Brevity. Unpretentious explanation. Care for best practices. Obvious attentiveness. Available to help "unstuck" students. You actually rock, Chris.- Kabolobari Benakole


Not ready yet? Get daily developer tips.

Hate the complexity of modern front‑end web development? I send out a short email each weekday on how to build a simpler, more resilient web. Join over 14k others.

If you have any questions about anything, feel free to send me an email at chris@gomakethings.com.