Question mark icon

Build anything you want with JavaScript

Have you tried learning JavaScript for a while now, but feel that you’re not making progress?

You went through many resources, but you still cannot understand JavaScript.

You’ve read through all the free resources you can find. You tried:

  • Googling for web development articles
  • Using beginner websites like CodeAcademy
  • Going through FreeCodeCamp
  • Reading books other developers recommend

You may have spent some money on learning JavaScript too.

  • You bought books and courses.
  • You may even have spent $12,000 on a Bootcamp.

Each resource helped you understand some JavaScript, But you still can’t piece everything together — you don’t know how to build things from scratch

When you try to code something from scratch, you freeze at a blank JavaScript file

You twiddle your thumbs as you stare into the JavaScript file, but nothing comes to mind. You don’t know how to start.

You realize one thing — you don’t know JavaScript.

It’s frustrating, but you acknowledge there’s a gap in your knowledge.

You lack confidence in JavaScript

So you avoid JavaScript whenever you can. You rely on HTML and CSS — even resorting to hacky practices to avoid JavaScript.

This lack of confidence in JavaScript makes you nervous. You’re so nervous about JavaScript, you screw up on your interviews.

This lack of confidence also affects you on the job too:

  • You don’t dare to say “yes” when you’re asked to use JavaScript.
  • But you don’t want to say “no” either.

You rely on Google when you need JavaScript

You look for libraries and plugins others have created. You hope they work, but you’re screwed if they don’t.

You copy-paste answers from Stack Overflow and various blogs you read. And you can’t understand what you copied.

You’re worried about being called out as a fraud.

Deep down inside, you want think like a developer

If you know how to think like a developer, you can build anything you want! Nothing can stop you from building things:

  • You won’t freeze up
  • You know exactly how to start and how to improve as you go along
  • Even if you get stuck, you can get yourself unstuck easily without Googling all the time.

You can solve any problem you encounter with JavaScript.

It’s a superpower.

Thinking like a developer is simple. But it’s not easy. There are four steps:

  1. Identify the problem you need to solve
  2. Break the problem down into smaller problems
  3. Solve each small problem
  4. Assemble your solutions into the final solution.

The hardest part is knowing how to break large problems down into smaller problems

Learn to build anything you want with JavaScript

Hello, I’m Zell!

I taught myself how to code without any prior programming experience.

I managed get a $100,000 yearly income within my first few years — freelancing — only with my HTML, CSS, and JavaScript skills.

Since then, I helped over one million people become better frontend developers through my blog and courses.

Today, I’m here to help you learn JavaScript.

Zell has been featured in:

A List Apart Codementor Creative Bloq CSS Tricks Free Code Camp JavaScript Weekly Sitepoint Smashing Magazine Tech in Asia

Zell’s work is detailed and not overwhelming. He guided me step-by-step, from basics to advanced concepts. He ensured I understood everything before going deeper.

Thanks to Zell, I got a frontend job in Switzerland!

Picture of Pierre Wizla

Pierre Wizla

You want to build beautiful, interactive, and crazy things.

I started off making simple HTML and CSS sites. There was nothing fancy about them.

As I learned to think like a developer, I began building crazy things I couldn’t imagine building before. For example:

  • A custom calendar widget for a boutique hotel
  • A static site generator that ran my blog for a while
  • Interactive components with cool animations

I want to show you an example of an interactive component. Here’s a modal animation I built. It brings a smile to my face whenever I see it 🤗.

Another example: I built this component where you can preview artwork on a wall. You can then switch between different furniture scenes to get a sense of how the artwork looks.

Pay attention to two things in this example:

  1. Watch how the artwork zooms into the furniture setting
  2. Watch how the furniture switch as we change scenes

Pretty cool, yeah?

You don’t need a Computer Science degree to learn JavaScript

I used to suck at JavaScript. I rather write hacky CSS than use JavaScript — even for simple components like a menu.

I thought it was impossible for me. I thought I was too old, I didn’t have a Computer Science degree, I wasn’t smart enough.

Turns out I was wrong.

You can learn JavaScript without a Computer Science degree. You can even have a successful career in software without a Comupter Scrience degree.

A tweet that asks people to retweet if they think they can have a successful career in software development without a CS Degree. There are 931 retweets.

JavaScript is simply one step in the entire process of becoming a good developer.

Have faith in yourself — even if you tried many things but failed — because you can do it. I know how to help you learn JavaScript. I’ve been through the process myself and I taught many students via this course.

Here’s the best way to learn JavaScript

When I teach JavaScript, I focus on a two-step process that’s proven to work:

  • I help you understand JavaScript concepts
  • You learn to apply these concepts by building real things

I help you understand concepts by turning abstract concepts into simple everyday examples. These analogies have helped many students understand JavaScript concepts.

For example:

  1. When I teach functions, I ask students to imagine drawing water from a well.
  2. When I teach if/else statements, I ask students to imagine crossing the street at a traffic light.
  3. When I teach for-loop, I ask students to imagine bouncing a ball.
  4. When I teach scopes, I ask students to imagine a one-way glass.

Once you understand the concept, I teach you how to use them in real projects, which cements the knowledge into your subconscious, and you’ll always know (and remember) what to do.

Zell makes JavaScript fun and easy to learn. He explains technical jargon with everyday life examples. These examples make me curious and excited to learn every day!

Now, I no longer panic when I use JavaScript. I know I can learn it.

Picture of Marion Couneson

Marion Couneson

Everything you need to know about JavaScript explained in the right order.

No JavaScript knowledge required

I don’t assume you know anything. I teach you the absolute basics, including how to link your JavaScript file to your HTML file.

Easy to understand examples

Real examples in every lesson. No foo, no bar. Abstract concepts get turned into everyday examples through relevant analogies.

Step-by-step lessons

Each lesson builds on the knowledge you learned from previous lessons. We don’t skip steps so you won’t get confused.

From theory to practice

Learn to apply JavaScript concepts as you build real-world components so you remember JavaScript for life.

Build 20 real-world components

You’ll make animations, use best practices, improve the components you built throughout the course, and more.

A community that answers your questions.

All your JavaScript questions will get answered in this community — no exceptions — so ask away!

With over 300 in-depth lessons, Learn JavaScript helps you:

Understand JavaScript
Learn JavaScript best practices
Think like a developer
Make silky smooth animations
Make things from scratch
Build frameworks
Build 20 real-world components
Write reusable code
Have confidence in JavaScript
Remember JavaScript for life

And much more! (See the complete lesson list below).

This is the course I’ve been needing my whole career. If you really want to learn JavaScript, you need this course.

I feel so much more confident in JavaScript now. I can read and understand JavaScript without relying on Google for answers.

I love having Zell as a mentor. He is patient and willing to teach me and other members of the community. I feel comfortable asking questions and getting directions from him.

Picture of Rich Edmund

Rich Edmund

Registration is closed

Registration is closed for Learn JavaScript right now so you’ll have to wait for the next batch to begin — on 2nd January, 2023.

Please leave your name and email to join the waitlist if you’d like to be kept informed.

When you join the waitlist, I send you an email course to help you understand how to learn JavaScript on your own. This course is called JavaScript Roadmap. It’s yours for free.

JavaScript Roadmap logo

The lesson plan

Here’s a quick table of contents for your viewing pleasure:

—JavaScript and its Ecosystem

  1. How to use this course
  2. What is JavaScript used for?
  3. The JavaScript ecosystem
  4. Varying versions of JavaScript

—JavaScript Basics

  1. Linking your JavaScript file
  2. Preparing your text editor
  3. The console
  5. You don't need semicolons
  6. Strings, numbers, and booleans
  7. Declaring variables
  8. Functions
  9. Arrow functions
  10. Intro to objects
  11. If/else statements
  12. The NOT operator
  13. Null and undefined
  14. The BOM and the DOM
  15. Selecting an element
  16. Changing classes
  17. Listening to events
  18. Callbacks

—Building simple components

  1. How to think like a developer
  2. How to use the starter template
  3. Do this for every component
  4. 🛠️ Building an off-canvas menu
  5. 🛠️ building a modal window
  6. Lessons from the building process
  7. Debugging errors
  8. How to use a linter

—Arrays and loops

  1. Introduction to arrays
  2. Array methods
  3. For loops
  4. The forEach loop
  5. Selecting multiple elements
  6. Node vs Elements
  7. 🛠️ Building an accordion

—DOM basics

  1. Id, classes, tags, and attributes
  2. Changing CSS with JavaScript
  3. Getting CSS with JavaScript
  4. Changing attributes
  5. Finding an element's size and position
  6. DOM Traversals
  7. 🛠️ Building a Tabbed Component
  8. 🛠️ Carousel: HTML and CSS
  9. 🛠️ Carousel: Switching slides with JavaScript
  10. 🛠️ Carousel: Working the dots
  11. 🛠️ Carousel: Positioning slides with JavaScript

—Events deep dive

  1. The listening element
  2. Default behaviors
  3. Event propagation
  4. Event delegation
  5. Removing event listeners
  6. 🛠️ Modal: Closing the modal
  7. 🛠️ Accordion: Event delegation
  8. 🛠️ Tabby: Event delegation
  9. 🛠️ Carousel: Event delegation

—Transitions and Animations

  1. CSS transitions
  2. CSS animations
  3. Silky-smooth animations
  4. Integrating CSS transitions and animations with Javascript
  5. JavaScript animations
  6. The Greensock Animation API (GSAP)
  7. 🛠️ Modal: Animating the modal
  8. 🛠️ Modal: Animating the pointing hand
  9. 🛠️ Modal: Animating the waving hand
  10. 🛠️ Modal: Modal: Wave hand animation with JavaScript (using GSAP)
  11. 🛠️ Modal: Wave hand animation with JavaScript (using GSAP)
  12. 🛠️ Accordion: Animations
  13. 🛠️ Carousel: Animations

Learn JavaScript helped me understand transitions and animations even though I’ve failed so many times in the past. The lessons in Learn JavaScript are clear and easy to understand — and it’s way beyond my expectation.

I found a better web development job thanks to the skills I learned from Learn JavaScript.

Picture of Sirapop Lam-o-pas

Sirapop Lam-o-pas

—Useful JavaScript features

  1. Ternary operators
  2. And and OR operators
  3. Early returns
  4. Template literals
  5. Destructuring
  6. Default parameters
  7. Enhanced object literals
  8. Rest and spread operators
  9. Useful array methods
  10. Reduce
  11. Looping through objects
  12. Returning objects with implicit return
  13. 🛠️ Accordion: Using useful JavaScript features
  14. 🛠️ Tabby: Using useful JavaScript features
  15. 🛠️ Carousel: Useful JavaScript features

—JavaScript best practices

  1. Write declarative code
  2. Functions with a purpose
  3. Manage scope
  4. Reduce state changes
  5. Don't reassign
  6. Don't mutate
  7. Preventing Objects from mutating
  8. Preventing Arrays from mutating
  9. Write pure functions
  10. 🛠️ Accordion: Refactor
  11. 🛠️ Carousel: First refactor
  12. 🛠️ Carousel: Refactoring the dots part
  13. 🛠️ Carousel: Previous and next buttons
  14. 🛠️ Carousel: Second refactor

—Text and Content

  1. Changing text and HTML
  2. Creating HTML elements
  3. Adding multiple elements to the DOM
  4. Removing elements from the DOM
  5. 🛠️ Carousel: Creating dots with JavaScript
  6. 🛠️ Calculator: HTML and CSS
  7. 🛠️ Calculator: Happy Path
  8. 🛠️ Calculator: Testing the Happy Path Path
  9. 🛠️ Calculator: Easy Edge Cases
  10. 🛠️ Calculator: Difficult Edge Cases Cases
  11. 🛠️ Calculator: Refactoring
  12. The Switch Statement
  13. 🛠️ Calculator: Refactoring part 2
  14. 🛠️ Popover: Making one popover
  15. 🛠️ Popover: Making four popovers
  16. 🛠️ Popover: Making popovers with JavaScript

Learn JavaScript gave me a deep understanding of the language and its capabilities. I gained new perspectives on things I already know, and I learned new things like Forms and APIs — even though I am a professional web developer!

Picture of Maxim Konoval

Maxim Konoval


  1. Intro to forms
  2. Selecting form fields with JavaScript
  3. Form fields and their events
  4. Sanitize your output
  5. Generating unique IDs
  6. 🛠️ Popover: Dynamic ID
  7. 🛠️ Todolist: The HTML and CSS
  8. 🛠️ Todolist: Creating tasks with JavaScript
  9. 🛠️ Todolist: Deleting tasks with JavaScript
  10. 🛠️ Typeahead: The HTML and CSS
  11. 🛠️ Typeahead: Displaying predictions
  12. 🛠️ Typeahead: Selecting a prediction
  13. 🛠️ Typeahead: Bolding search terms


  1. The Date Object
  2. Getting a formatted date
  3. Getting the time
  4. Local time and UTC Time
  5. Setting a specific date
  6. Setting a date with Date methods
  7. Adding (or subtracting) date and time
  8. Comparing Dates and times
  9. 🛠️ Datepicker: Initial HTML and CSS
  10. 🛠️ Datepicker: Building the calendar
  11. 🛠️ Datepicker: Building the datepicker with JavaScript
  12. 🛠️ Datepicker: Previous and next buttons
  13. 🛠️ Datepicker: Selecting a date
  14. 🛠️ Datepicker: Positioning the datepicker
  15. 🛠️ Datepicker: Showing and hiding
  16. Formatting a date with toLocaleString
  17. setTimeout
  18. setInterval
  19. 🛠️ Countdown: The HTML and CSS
  20. 🛠️ Countdown: The JavaScript
  21. 🛠️ Countdown: Counting months
  22. 🛠️ Countdown: Daylight Saving Time
  23. 🛠️ Countdown: Counting years

—Asynchronous JavaScript

  1. Introduction to Ajax
  2. Understanding JSON
  3. The Fetch API
  4. Possible data types
  5. JavaScript Promises
  6. Requests and responses
  7. Sending a POST request
  8. Authentication
  9. Handling errors
  10. Viewing response headers
  11. CORS and JSONP
  12. XHR vs Fetch
  13. Using an Ajax library
  14. Reading API documentation
  15. Understanding curl
  16. 🛠️ Todolist: The Todolist API
  17. 🛠️ Todolist: Fetching tasks
  18. 🛠️ Todolist: Creating tasks
  19. 🛠️ Todolist: Editing tasks
  20. 🛠️ Todolist: Deleting tasks
  21. 🛠️ Todolist: Creating tasks with Optimistic UI
  22. 🛠️ Todolist: Handling Optimistic UI errors
  23. 🛠️ Todolist: Editing tasks with Optimistic UI
  24. 🛠️ Todolist: Deleting tasks with Optimistic UI
  25. 🛠️ Todolist: Refactor
  26. 🛠️ Typeahead: How to add Ajax
  27. 🛠️ Typeahead: Adding Ajax
  28. 🛠️ Typeahead: Handling errors
  29. 🛠️ Google Maps Clone: Creating your first Google Map
  30. 🛠️ Google Maps Clone: Fetching JSONP via JavaScript
  31. 🛠️ Google Maps Clone: Drawing directions
  32. 🛠️ Google Maps Clone: Driving directions
  33. 🛠️ Google Maps Clone: Handling errors
  34. 🛠️ Google Maps Clone: Adding stopovers
  35. 🛠️ Google Maps Clone: Refactor

Learn JavaScript is an incredible resource that helped me save time from searching around the internet for answers!

Every time I jump into the course I learn something to deepen my javascript knowledge. Everything Zell taught laid an important foundation, and I immediately get to use them on practical projects.

Picture of Lauralee Flores

Lauralee Flores

—Advanced Asynchronous JavaScript

  1. Requesting many resources at once New
  2. Asynchronous functions New
  3. Handling multiple awaits New
  4. Asynchronous loops New
  5. 🛠️ Dota Heroes: Listing heroes
  6. 🛠️ Dota Heroes: Filtering heroes (Part 1)
  7. 🛠️ Dota Heroes: Filtering heroes (Part 2)
  8. 🛠️ Dota Heroes: Refactoring
  9. 🛠️ Dota Heroes: Hero Page New
  10. 🛠️ Dota Heroes: Making the hero page robust New
  11. 🛠️ Dota Heroes: Heroes page refactor


  1. Keyboard users
  2. Handling commonly used keys
  3. Keyboard events
  4. Understanding Tabindex
  5. Detecting the focused element
  6. Directing focus
  7. Preventing people from tabbing into elements
  8. How to choose keyboard shortcuts
  9. Creating single-key shortcuts
  10. 🛠️ Off-canvas: Adding keyboard interaction
  11. 🛠️ Modal: Adding keyboard interaction
  12. 🛠️ Accordion: Adding keyboard interaction
  13. 🛠️ Tabby: Adding keyboard interaction
  14. 🛠️ Tabby: Refactoring
  15. 🛠️ Carousel: Adding keyboard interaction
  16. 🛠️ Carousel: Displaying help text
  17. 🛠️ Calculator: Adding keyboard interaction
  18. 🛠️ Popover: Keyboard
  19. 🛠️ Popover: Refactor
  20. Keyboard shortcuts with Command and Control modifiers
  21. 🛠️ Todolist: Keyboard
  22. 🛠️ Typeahead: Keyboard
  23. 🛠️ Typeahead: Selecting a prediction with the keyboard
  24. 🛠️ Google Maps Clone: Keyboard
  25. 🛠️ Dota Heroes: Keyboard
  26. 🛠️ Datepicker: Tabbing in and out
  27. 🛠️ Datepicker: Keyboard shortcuts

Learn JavaScript cleared up many questions I had about JavaScript. I saved lots of time from googling, and I became more confident as a developer.

This course is right for you if you want to build exciting UI components you always wanted to build.

Picture of Israel Obiagba

Israel Obiagba


  1. What is accessibility?
  2. How to use a screen reader
  3. Using NVDA
  4. Using Voiceover
  5. Aria roles
  6. Landmark roles
  7. Document structure roles
  8. Live region roles
  9. Widget roles
  10. Window and Abstract roles
  11. Accessible names and descriptions
  12. Hiding content
  13. ARIA properties and ARIA states
  14. ARIA for expandable widgets
  15. 🛠️ Off-canvas: Accessibility
  16. ARIA for modal dialogs
  17. 🛠️ Modal: Screen reader accessibility
  18. 🛠️ Accordion: Screen reader accessibility
  19. ARIA for Tabbed components
  20. 🛠️ Tabby: Screen reader accessibility
  21. 🛠️ Tabby: Refactor
  22. 🛠️ Carousel: Screen reader accessibility
  23. Roles that trigger Forms and Application modes
  24. What's next for accessibility

—Handling Scroll

  1. The Scroll event
  2. 🛠️ Auto-hiding Sticky-nav: HTML and CSS
  3. 🛠️ Auto-hiding Sticky-nav: JavaScript
  4. 🛠️ Auto-hiding Sticky-nav: Natural reveal
  5. Intersection Observer API
  6. Intersection Observer Options
  7. 🛠️ Slide & Reveal
  8. 🛠️ Slide & Reveal: Always fade-in when you scroll down
  9. 🛠️ Slide & Reveal: Fine-tuning the animation
  10. 🛠️ Infinite Scroll: Anatomy
  11. 🛠️ Infinite Scroll: Infinite load
  12. 🛠️ Infinite Scroll: Refactor
  13. 🛠️ Infinite Scroll: Implementing the Infinite Scroll

Mouse, Touch, and Pointers

  1. Mouse Events
  2. 🛠️ Spinning Pacman: HTML and CSS
  3. 🛠️ Spinning Pacman: JavaScript
  4. Touch events
  5. Pointer events
  6. Touch-action
  7. 🛠️ Spinning Pacman: Supporting Touch
  8. Cloning elements
  9. 🛠️ DragDrop: HTML and CSS
  10. 🛠️ DragDrop: JavaScript
  11. 🛠️ DragDrop: Creating a drop preview
  12. 🛠️ DragDrop: Sortable drop preview
  13. 🛠️ DragDrop: Robustness
  14. 🛠️ DragDrop: Refactor

Learn JavaScript helps to build your web fundamentals, which helps you with your work, regardless of what framework you decide to work in.

I highly recommend taking this course whether you’re starting out or already experienced in Javascript.

Picture of Tom Mulkins

Tom Mulkins

—Object-oriented programming

  1. Before we begin
  2. What is Object Oriented Programming?
  3. Four Flavours of Object Oriented Programming
  4. Inheritance
  5. This in JavaScript
  6. Call, bind, apply
  7. Creating Derivative Objects
  8. Composition vs Inheritance
  9. Polymorphism
  10. Encapsulation
  11. Closures
  12. Encapsulation in Object Oriented Programming
  13. Getters and Setters
  14. What OOP flavour to use
  15. When to use Object Oriented Programming

—Writing reusable code

  1. Creating reusable code by writing libraries
  2. Two Types of libraries Updated
  3. Including libraries with Script tags
  4. Including libraries with ES6 Modules
  5. Dynamic imports
  6. 🛠️ Off Canvas: Building a Library Updated
  7. 🛠️ Modal: Library setup
  8. 🛠️ Modal: Opening the Modal
  9. 🛠️ Modal: Closing the modal
  10. 🛠️ Modal: Inheritance and Polymorphism
  11. 🛠️ Modal: Resolving differences between subclasses
  12. 🛠️ Modal: Exposing properties and methods
  13. 🛠️ Accordion: Building a library
  14. 🛠️ Tabby: Building a library
  15. 🛠️ Carousel: Building a library
  16. 🛠️ Calculator: Library
  17. 🛠️ Calculator: Fixing the Clear Key
  18. 🛠️ Calculator: Handling other keys
  19. 🛠️ Calculator: State
  20. 🛠️ Popover: Library
  21. 🛠️ Popover: Adding event listeners
  22. 🛠️ Typeahead: Library
  23. 🛠️ DatePicker: Library

—Vanilla JS to Frameworks

  1. 🛠️ Building a Tiny framework
  2. 🛠️ Tiny: Add event listeners
  3. 🛠️ Tiny: Updating state
  4. 🛠️ Tiny: Rendering Child Components
  5. 🛠️ Tiny: Changing Parent State
  6. 🛠️ Tiny: Passing Props
  7. 🛠️ Tiny: Multiple Props
  8. 🛠️ Tiny: Passing values from sibling components
  9. 🛠️ Tiny: Mounting
  10. 🛠️ Tiny: Passing props to descendants
  11. 🛠️ Tiny: A tiny refactor

—Single page applications

  1. What is a Single Page App?
  2. Simple SPA using only CSS
  3. The Location Interface
  4. The History Interface
  5. Minimum viable server for a SPA
  6. 🛠️ Dota SPA: Introduction
  7. 🛠️ Dota SPA: Building The Heroes List
  8. 🛠️ Dota SPA: Building the filters
  9. 🛠️ Dota SPA: Filtering heroes
  10. 🛠️ Dota SPA: Displaying filtered heroes
  11. 🛠️ Dota SPA: Getting Ready to build the Hero Page
  12. 🛠️ Dota SPA: Building the hero page
  13. 🛠️ Dota SPA: Lore and abilities
  14. 🛠️ Dota SPA: Routing for Single-page apps

🛠️: Practical lessons where we build things.

Learn JavaScript is my number one choice for learning JavaScript. I finally feel that JavaScript is within my reach.

Picture of Elmir Halebic

Elmir Halebic

Learn to build 20 components

Learn to build practical components you use at work — you get to:

  • Understand how each component works
  • Build them from scratch (without frameworks or libraries)
  • Tweak them so you improve their usability and accessibility.

We’ll cover each component step-by-step — even if the difficulty of components rises as you go thorugh the course.

Here are the 20 components you'll build:

  1. Off-canvas Menu
  2. Modal Window
  3. Accordion
  4. Tabbed Component
  5. Carousel
  6. Calculator
  7. Popover
  8. Todolist
  9. Typeahead
  10. Datepicker
  1. Countdown Timer
  2. Google Maps Clone
  3. Dota Heroes Page
  4. Auto-hiding Sticky Nav
  5. Slide & Reveal
  6. Infinite Scroll
  7. Spinning Pacman
  8. Drag and Drop
  9. A Tiny Framework
  10. Dota Heroes SPA

Here's a sneak peek of the components:

  • The off-canvas menu
  • The modal
  • The accordion
  • The tabbed component
  • The carousel menu
  • The calculator
  • The popover
  • The Todolist
  • The Typeahead
  • The Goole Maps Clone
  • Datepicker

I’m no longer afraid to show my work at job interviews because I have became much more confident in my JavaScript skills — thanks to Learn JavaScript.

The course showed me a clear path to learn the language. It integrated theory into real-life projects and helped me stay focused and motivated while learning.

Picture of Ion Leahu

Ion Leahu

Written to help you learn

Immediate Access A person surfing the web

I have a bold aim for Learn JavaScript — When you complete the course, you can build anything you want from scratch without Googling for answers.

You will understand JavaScript no matter what level you’re at.

I improved the lessons over and over based on past students’ experiences. You’ll learn the right things in the right order. I’m here to ensure you have the best possible experience with JavaScript.

Learn JavaScript showed me how to move from a beginner level to an intermediate level — it took me through all the steps I need to build components, but it doesn’t stop there. It showed me how to improve the components and include best practices.

It was hard for me to go from beginner to intermediate from other courses, but I found the answer in Learn JavaScript.

Picture of Pelle Lundgren

Pelle Lundgren

Bonus resources

60-minute calls with Zell

Group coaching calls A person wearing headphones and is chatting with someone else through a laptop

You get two 60-minute video calls with me if you grab the Guided Instruction package (more on this later). You can redeem these calls anytime, subject to my availability. No expiry deadline.

You can ask me anything you want during these calls. I can help you:

  • Review your code
  • Debug your code
  • Pair program with you
  • Answer any questions you have (even if they’re not JavaScript related).

I wish Learn JavaScript was around when I first tried to learn JavaScript. It changed the way I approach JavaScript. Now, I actually know what I’m doing when I write JavaScript!

Besides showing me JavaScript fundamentals, Learn JavaScript explained how to use these fundamentals to do things we’ll encounter in the actual world — it’s one thing to learn what an Array is, but another to build a component and go: “Oh, so that’s why I need to know what the hell an Array is!”

Picture of Kevin Powell

Kevin Powell

The Learn JavaScript Community

Peers Two people talking to each other

You get access to a community of students who’re learning JavaScript – like you. You can ask questions, provide answers, and form accountability groups to nail down your JavaScript knowledge.

I’ll also hang out in the community to help answer questions. You can find me there almost every day.

Learn JavaScript is detailed and well structured. After going through the course, I was able to help newer programmers with their questions!  

Picture of Michiko Y

Michiko Y

Enroll in Learn JavaScript

Choose one of these three packages.


Guided gives you all the support you need to become great at JavaScript.

You’ll get direct feedback from me through 1-1 video calls. You’ll also get all 22 modules of Learn JavaScript, and a private community of learners to keep you motivated.

What you get with Guided Instruction:

  • Two 60-minute video calls with Zell
  • 22 modules of Learn JavaScript (300+ lessons)
  • Learn to build 20 real components
  • Lifetime access to Learn JavaScript Community


or 6 payments of $199

Join the waitlist


Mastery gives you all 22 modules of Learn JavaScript. Each lesson builds on top of the previous lesson to help you become a great frontend developer.

By the end of the course, you’ll be able to build anything you want from scratch, without Googling.

What you’ll get with Mastery Pack:

  • 22 modules of Learn JavaScript (300+ lessons).
  • Learn to build 20 real components.
  • Lifetime access to Learn JavaScript Community
Complete Preorder SVG of a person with a map and treasure box


or 6 payments of $99

Join the waitlist


Starter is perfect for you if you want to learn JavaScript, but you’re not ready to dive all-in. You’ll build a strong JavaScript foundation that lets you learn concepts on your own with less effort.

Besides the theory lessons, you also get to make five interactive components. You will begin to think like a developer.

Here’s what you get with Starter Pack:

  • 7 modules of Learn Javascript (69 lessons).
  • Learn to build 5 real components.
  • Lifetime access to Learn JavaScript Community
Starter Pack Man making a brick wall, firming up the fundamentals


or 6 payments of $49

Join the waitlist

Registration is closed

Registration is closed for Learn JavaScript right now so you’ll have to wait for the next batch to begin — on 2nd January, 2023.

Please leave your name and email to join the waitlist if you’d like to be kept informed.

When you join the waitlist, I send you an email course to help you understand how to learn JavaScript on your own. This course is called JavaScript Roadmap. It’s yours for free.

JavaScript Roadmap logo

Reviews from students who joined Learn JavaScript

This course gave me the confidence to call myself a front-end developer.I know how to start, how to code it up, and how to search for (and understand) the parts that I don’t know yet.

I went from knowing nothing about JavaScript to building a custom design system for my company entirely in JavaScript. What’s more, each component I build is also accessible thanks to Zell’s accessibility lessons.

Picture of Mark Teekman

Mark Teekman

Zell explains things in a way that no other instructor has been able to do in my 15+ years of trying to “self educate” in the world of Javascript.

In this course, Zell integrates every piece of JavaScript theory into building real UI. He shows you how to build simple things, then how to refactor the code with useful modern techniques.

Learn JavaScript helped increase my confidence at JavaScript. I’ve since refactored our style guide at work to completely remove jQuery. I also have the confidence to start a Vue project.

Picture of Joshua Briley

Joshua Briley

Learn JavaScript is the ONLY course that helped me understand JavaScript. It explains JavaScript in depth with lots of examples. It also helped me learn to think like a developer.

I’m able to understand other developer’s code, build applications myself, and even answer questions on Stack Overflow.

Picture of Adam Ragheb

Adam Ragheb

Learn JavaScript is the best and most helpful JavaScript course I found.

I used to think that JavaScript is overwhelming and hard. This course breaks JavaScript into doable chunks. Each lesson is clear and concise. I don’t feel overwhelmed or confused as I go through them.

I gained the confidence that I can not only understand JavaScript, but I can master it.

Picture of Jesse Mcintire

Jesse Mcintire

I love the step-by-step structure in Learn JavaScript. I also love the text-based approach to lessons. They helped me understand and internalise JavaScript instead of feeling “I just watched some videos”.

Picture of Dave Henson

Dave Henson

Learn JavaScript is the best way to learn JavaScript. I never found anything like it out there. It starts all the way from the beginning. And it shows you understandable code examples all the way through.

The course pushed me forward in my coding career. JavaScript became fun to write. I no longer avoid JavaScript.

Picture of Robert Mittl

Robert Mittl

Learn JavaScript helped me discover holes in my knowledge even though I have a few years of JavaScript experience!

I understood JavaScript much better than before. I became more confident when working with frameworks and libraries, and I spend less time on Google and Stack Overflow

Picture of Oriol Gasquez

Oriol Gasquez

Learn JavaScript is excellent. It is beginner friendly and has very clear explanations. It does not assume I knew anything and zip through things unlike other courses.

It’s very easy for me to learn with the examples and source code provided.

Picture of Tim St-john

Tim St-john

Learn JavaScript is easy to follow. Zell seems to knows what people struggle with. He uses examples to demonstrate concepts.

I’m able to learn faster compared to other methods I tried. And now, I am able to complete Codewars challenges.

Picture of Erik Schjolberg

Erik Schjolberg

This is the first course where I learned to differentiate which parts of JavaScript are important and which parts are not.

I used the knowledge I learned to create real components. It’s very satisfying to see my code doing something of real and practical use.

Picture of Jake Chiam

Jake Chiam

Registration is closed

Registration is closed for Learn JavaScript right now so you’ll have to wait for the next batch to begin — on 2nd January, 2023.

Please leave your name and email to join the waitlist if you’d like to be kept informed.

When you join the waitlist, I send you an email course to help you understand how to learn JavaScript on your own. This course is called JavaScript Roadmap. It’s yours for free.

JavaScript Roadmap logo