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 courses, but you still cannot understand JavaScript.

You read through all the resources you could find for free.

  • You googled extensively for web development articles
  • You used beginner websites like CodeAcademy
  • You went through FreeCodeCamp
  • You even read books other developers recommend you to read!

You spent quite a bit of your own money too.

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

These resources helped you understand some JavaScript. Unfortunately, even though you know some JavaScript, you cannot apply them to real work.

You don’t know how to code things from scratch.

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

You don’t know how to apply what you learned.

You stare at the blinking cursor in that blank JavaScript file. And you twiddle your thumbs. You hope you’ll remember some of the JavaScript you learned; you hope you’ll magically know what to write.

But nothing comes to mind. Everything you thought you knew about JavaScript vanished into thin air.

And you have to admit you don’t know really know JavaScript at all.

You resort to copy-pasting from Google when you need JavaScript.

You look for libraries and plugins created by other people. You also copy-paste answers from Stack Overflow. Unfortunately, you don’t understand most of the code you copy-pasted.

You can modify some code, but not much. If your modifications work, you’re safe. But if your modifications don’t work, you’re pretty much screwed… So you always hope the answers you copied would work like magic.

You’re constantly worried others will find out you don’t understand the code you’re using. You feel like a fraud.

You lack confidence in JavaScript

You avoid JavaScript like a plague.

You don’t dare to say “yes” when you’re asked to build things with JavaScript. But you don’t want to say “no” either, so you hide behind hacky practices, relying on HTML and CSS whenever you can.

This lack of confidence in JavaScript makes you nervous. You don’t feel comfortable applying for jobs or seeking freelance opportunities. You don’t feel you’re good enough.

When you get an interview, you screw it up badly. You’re scared that others will find out you don’t actually know your stuff.

You want to learn to think like a developer

What if you could solve any JavaScript problem you encounter?

If you knew how to think like a developer, you could build anything you want. You will know how to code from scratch. You won’t freeze up anymore.

When you get stuck, you’ll know how to reason it out and get unstuck. You’ll know how to find your answers on your own, without relying on Google too much.

Thinking like a developer is simple, but 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.

That’s it.

The hardest part is knowing how to break large problems down into small problems that are easy to solve. Once you know this, you’re set.

Learn to build anything you want with JavaScript

Hello, I’m Zell!

I helped thousands of students become better frontend developers through my blog and courses.

When I was 24, I taught myself how to code without any prior programming experience. I started freelancing one year later.

I managed to earn over $10,000 a month from my HTML, CSS, and Javascript skills.

Today, I’m here to help you learn JavaScript. I’ll tell you about a course I wrote in a bit.

Zell has been featured in:

alistapart codementor creativebloq csstricks freecodecamp javascriptweekly scotchio sitepoint smashingmagazine techinasia

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 can build crazy things when you can think like a developer

I started off by making simple websites with HTML and CSS. They were plain and static; no interactions. There was nothing fancy about them.

Over time, I learned to learn to think like a developer, and I built crazy stuff I couldn’t imagine building before.

Here are some examples:

  • I built a custom calendar widget for a boutique hotel
  • I built a static site generator that ran my blog for a while
  • I built 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 thing where you can preview a piece of artwork on a wall. Users can switch between different furniture scenes to get a sense of how the artwork will look.

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, isn’t it?

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

Here’s a fact: I used to suck at JavaScript.

I avoided JavaScript like a plague. I rather write hacky CSS than use JavaScript. This was the first year in my programming career.

I didn’t believe I could learn JavaScript back then. I thought it was impossible without a Computer Science degree. I thought I wasn’t smart enough either. I thought I was too old to learn it.

Turns out I was wrong.

Yes, it might be harder to learn JavaScript without a Computer Science degree, but you can do it. I know this because I learned JavaScript even though I don’t have a Computer Science degree. I became pretty good at it too!

JavaScript is just the beginning. You won’t need a Computer Science degree to have a successful career in software either. The reaction to this tweet says it all.

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.

Have faith. I can help you become good at JavaScript. I know how to. I’ve been through the path myself and I taught hundreds of students through my course.

A sure-fire way to learn JavaScript

If you don’t understand JavaScript materials, it’s not your fault for not understanding them. You’re not stupid.

There are three problems with most JavaScript materials.

  1. They assume you have some prior knowledge (which you don’t). So you don’t understand things they’re trying to say.
  2. They use meaningless variables (like foo and bar). Since these variables are meaningless, you won’t understand the example they’re used in without having a conceptual base. They won’t make sense to you.
  3. They explain abstract concepts with jargon. Then they explain the jargon they used with more jargon. You get confused because you don’t understand any of these jargons.

JavaScript feels hard only because these problems persist in most JavaScript materials.

There’s a way around it.

  • You need understand JavaScript concepts.
  • Then you need to apply these concepts to solve a real problems.

I want to help you learn JavaScript, so I made a course that contains these two steps.

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 primary-school examples through relevant analogies.

Step-by-step lessons

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

From theory to practice

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

Build 20 real-world components

Make animations, use best practices, improve the components you built throughout the course, and more.

A community that answers your questions.

The best part about Learn JavaScript. It’s why many students learn JavaScript successfully. More on this later.

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

Understand JavaScript once and for all.
Have confidence in your JavaScript skills.
Know what to learn instinctively.
Think like a developer.
Build 20 real-world components.
Make silky smooth animations.
Learn JavaScript best practices.
Remember JavaScript for life.
Build things from scratch.
Stop copy-pasting code from Google.

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

My teaching methodology

When I teach JavaScript, I focus on helping you understand JavaScript. I do this by turning abstract concepts into simple everyday examples.

Once you understand the concept, you will know how to use them.

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.

These analogies have helped many students understand JavaScript concepts.

After understanding these concepts, I show you how to use them to build real things. Building things help you cement the knowledge into your subconscious – so you know (and remember) them by heart!

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

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

I am so grateful that I found Learn JavaScript. I think I would have given up otherwise. Learn JavaScript puts JavaScript within my reach.

The course deconstructs JavaScript in a logical, easy to understand, and concise manner. It highlights the most important points and puts into practice the latest methods.

For example, in a previous course that I took, var was used 40% of the way through, and finally, let and const were presented. Zell’s course went straight to let and const, mentioning var briefly. In one sentence, he said it was not a best practice, and should no longer be used. Done. I am not wasting my time learning irrelevant or outdated concepts. Zell’s course is a clear and direct path to learning JavaScript.

Picture of Lisa Drevillon

Lisa Drevillon

—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

—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

—Creating HTML Elements*

  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: Edge Cases
  9. 🛠️ Calculator: Refactoring part 1
  10. 🛠️ Calculator: Refactoring part 2
  11. 🛠️ Calculator: Refactoring part 3
  12. 🛠️ Popover: Making one popover
  13. 🛠️ Popover: Making four popovers
  14. 🛠️ Popover: Making popovers with JavaScript

At first, I didn’t know if Learn JavaScript was worth it. I was familiar with the first ten modules already. But now, I’m halfway into the course and I totally love it.

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.

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

—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 post requests
  8. Authentication
  9. Handling errors
  10. Viewing response headers
  11. CORS and JSONP
  12. XHR or Fetch
  13. Using an Ajax library
  14. Understanding API Documentations
  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 Map Clone: Driving directions
  33. 🛠️ Google Map Clone: Handling errors
  34. 🛠️ Google Map Clone: Adding stopovers
  35. 🛠️ Google Map Clone: Refactor
  36. 🛠️ Dota Heroes: Listing heroes
  37. 🛠️ Dota Heroes: Filtering heroes (Part 1)
  38. 🛠️ Dota Heroes: Filtering heroes (Part 2)
  39. 🛠️ Dota Heroes: Refactoring


  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


  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. 🛠️ Typeahead: Selecting a prediction with the keyboard
  25. 🛠️ Google Maps Clone: Keyboard
  26. 🛠️ Dota Heroes: Keyboard
  27. 🛠️ Datepicker: Tabbing in and out
  28. 🛠️ Datepicker: Keyboard shortcuts

Learn JavaScript is right for you if you want to build exciting UI components you always wanted to build.

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

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

—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 JavaScript 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: Adding Event Listeners
  11. 🛠️ Accordion: Building a library New
  12. 🛠️ Tabby: Building a library New
  13. 🛠️ Carousel: Building a library

—Single page applications*

  1. The foundation to frontend frameworks
  2. The MVC Architecture
  3. 🛠️ building the card generator
  4. Routing
  5. 🛠️ adding routing to the card generator
  6. Data flow with vanilla-style flux/redux
  7. Authentication
  8. 🛠️ adding authentication to the card generator

🛠️: Practical lessons where we build things.

*: Modules are still being written. Actual content may differ from stated lesson plan

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

These components are real components. They’re not toys—unlike what you find in most books and courses.

You start by building simple components. Then, you’ll learn to improve the components as you go through the course.

You’ll also learn to make more complicated components in later lessons.

Here are the 20 components you'll build:

  1. Off-canvas Sidebar
  2. Modal Window
  3. Accordion
  4. Tabbed Component
  5. Carousel
  6. Calculator
  7. Popover
  8. Todolist
  9. Typeahead
  10. Google Maps Clone
  1. Dota heroes list
  2. Datepicker
  3. Countdown Timer
  4. Auto-hiding nav
  5. Slide & Reveal
  6. Infinite Scroll
  7. Spinning Pacman
  8. Mega Menu
  9. Drag and Drop
  10. Dota Heroes Webapp

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 Typeahead
  • The Todolist
  • The Dota Explorer app
  • The Goole Maps Clone
  • Datepicker
  • The card generator

Learn JavaScript showed me a clear path to learn JavaScript. It integrated theory into real-life projects and helped me stay focused and motivated.

I feel more confident about my JavaScript skills and I’m no longer afraid to show my work at job interviews.

Picture of Ion Leahu

Ion Leahu

Get immediate access to Learn JavaScript

Immediate Access A person surfing the web

My intention for Learn JavaScript is bold. Upon completion, you’ll be able to build anything you want from scratch, remember JavaScript for life and code without relying on Google.

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.

That’s why I know Learn JavaScript is valuable for you. I want to give you the opportunity to enjoy learning JavaScript even if I’m still creating the course as we speak.

Learn JavaScript takes you through all the steps in building the components. The course doesn’t stop after the first steps. It shows you how to improve the component and include best practices.

This is something I found so hard to learn from other courses. I finally started to understand how to move on from a beginner level to an intermediate level.

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).

Zell knows how to help me get to the next level. He teaches what I need to know, reinforces my learnings through exercises, and shows me why the things I’m learning are important through real examples.

Learn JavaScript changed the way I approach JavaScript. I actually know what I’m doing when I write JavaScript now!

Picture of Kevin Powell

Kevin Powell

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.

I would have given up on JavaScript if I didn’t join Learn JavaScript. This course is well structured and beginner-friendly. Zell and other students are always there to answer my questions when I get stuck.

Now, I can help newer programmers with their questions. I can even understand books like Eloquent JavaScript!

Picture of Michiko Y

Michiko Y

3 months of JavaScript Accelerator

JavaScript Accelerator

Once a month, I’ll jump onto a video Q&A call with students. You can bring any questions you have to the call, and I’ll answer them.

These calls will be recorded and made available to you if you’re unable to attend.

Learn JavaScript is worth it! There’s nothing out there like it. I used countless other books and courses before, but they did not give me the applicable knowledge I needed to be a solid frontend developer. Learn JavaScript is the only course that gave me that knowledge.

I learned so much from Learn JavaScript. I learn to apply JavaScript to make actual components. And I get to improve the components with concepts like keyboard accessibility and screen-reader accessibility.

I can build pretty much whatever I want now! I can even build things from scratch without relying on 3rd party libraries.

Picture of Ernest Weems

Ernest Weems

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 coaching calls. You’ll also get all 20 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
  • 20 modules of Learn JavaScript (300+ lessons)
  • Learn to build 20 real components
  • Lifetime access to Learn JavaScript Community
  • 6-month access to JavaScript Accelerator


Mastery gives you all 20 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 copy-pasting from Google.

What you’ll get with Mastery Pack:

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


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

Start learning JavaScript

I can’t wait to help you start learning JavaScript. I know this course will help you master the language. You’ll be able to understand JavaScript, build anything you want from scratch, and code without copy-pasting from Google.

Enrollment closes on Friday, 17 July, 11:59pm Pacific. Late enrolments will not be excepted, no exceptions. Don’t miss this chance to enroll if you want to learn JavaScript properly!



Great for building your JavaScript foundations.

  • 7 modules
  • 65 lessons
  • 5 components
  • Private community


Made for people who want to master JavaScript.

  • 20 modules
  • 300+ lessons
  • 20 components
  • Private community
  • 3 months of JavaScript Accelerator


Designed for professionals with real-world questions.

  • Two 60-minute calls
  • 20 modules
  • 300+ lessons
  • 20 components
  • Private community
  • 6 months of JavaScript Accelerator

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

The fastest way to learn JavaScript

A kid and an adult cycling. The kid is waving at you.

Let’s get specific.

Here are several things you need to learn about JavaScript: ES6, Ajax, Arrays, Objects, Functions, DOM methods, Object Oriented Programming, Accessibility, JavaScript Best practices. (There’s much more in reality, but let’s use these as an example).

First question: What order will you learn these in? You don’t know. You’ll get overwhelmed if you learn in the wrong order.

Second question: How fast will you be able to learn them by yourself? If you’re struggling with JavaScript already, it’s probably going to take you a long time to become proficient at JavaScript.

This course is a shortcut.

I’m here to ensure you have the best possible experience with JavaScript.

I improved the lessons over and over based on past students’ experiences. You get to benefit from this work. You’ll learn the right things in the right order.

You don’t have to learn by trial-and-error anymore. You get to follow a tried-and-tested roadmap that’ll help you become good at JavaScript.

Your learning speeds up incredibly if you get a teacher who can teach you the right things in the right order,

I suffered for years when learning to draw by myself. I couldn’t draw anything nice. I decided to join a class one day, and I managed to go from junk to a realistic picture in 10 weeks.

That’s the benefit of having a teacher who knows their stuff.

Left: Zell's drawing of his face (that doesn't look anything like a face). Right: Zell's drawing of a tiger.

You don’t have to worry about the sequence of things to learn. I can teach you the right things in the right order.

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

Questions people asked before joining Learn JavaScript

Can I really learn JavaScript?

I understand you invested in other courses before and they failed you. You’re worried that Learn JavaScript is going to be another waste of time and money.

Don’t worry, it won’t. I understand your pain and I got your back. I’ve done everything possible to ensure you learn JavaScript successfully.

You will learn JavaScript from this course.

  • I create analogies to help you understand concepts, so you know when you should use that concept (and why you should use it).
  • I teach you how to build things with the concepts you learned, so you learn to think like a developer.
  • If you get stuck, you can ask questions in the community, and you’ll get help from other students and me.
  • Finally, I rewrite the lessons that are confusing for students (yes, I actually do this) to make it easier for you to understand concepts.

So I can guarantee you’ll learn JavaScript successfully – but only if you go through the course!

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

How long do I need to study before seeing results?

I engineered the course to help you learn JavaScript as quickly as possible.

Your understanding of JavaScript will change completely when you complete Modules 2 and 3. You’ll start knowing how to build things.

  • You will begin understanding JavaScript when you finish Module 2.
  • You will begin to think like a developer when you finish Module 3.

Assuming you spend 15 minutes on the course everyday, it should take you about 2 weeks to complete Module 2. And it should take you another one week (so a total of three weeks) to complete Module 3.

Email from Lauralee

I’ve taken other JavaScript courses — what makes Learn JavaScript special?

Most JavaScript courses teach you how to build simple things. These things are like toys. You build them once, and you throw them away. They have no practical use in your daily work.

In Learn JavaScript, I teach you how to build real-world components that you can use in your work. And I teach you step by step.

  • You’ll learn to build the simple versions at first
  • Then you add more features
  • Then you refactor the code to make it clean and maintainable

In short, you will learn to become a professional at JavaScript — which is something other courses don’t teach.

I wasn’t sure if Learn JavaScript was going to be any different from other JavaScript courses out there. But Zell proved me wrong.

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.

Now, I can build some applications myself, I can understand other developers’ code, and I can give answers to questions on Stackoverflow.

Picture of Adam Ragheb

Adam Ragheb

Why is Learn JavaScript text-based, not video-based?

Each Learn JavaScript lesson is an article. They contain text, images, gifs, and supporting videos to guide you through the learning process.

I teach you via text because:

  1. Reading is a critical skill for developers. Documentations are written in text, so you need to be able to understand text. My explanations helps you make this transition to a professional developer faster.
  2. You can find information via text faster than video. You don’t need to scrub through a video to find what you need. You can just scroll… and voilà.

Nathan expresses why he loved this text-based approach one day. Here’s what he said.

Text vs Video 3

Will I learn frameworks like React and Vue?

No, we focus on JavaScript in this course. When you know JavaScript, you can pick up frameworks with less effort.

To help you learn frameworks, I explain how to learn a framework as the last module in the course. (This module is planned, but not written yet).

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

Will I learn Node?

No. I want to make sure you know JavaScript on a deep level so we will focus only on frontend JavaScript.

Node is JavaScript on the backend. If you want to understand Node, you need a to learn how a backend infrastructure works. This is another beast by itself. So we will focus on Node in a separate course.

How many hours do I need to invest every week?

Let’s think about it this way: How much time do you spend Googling for answers every day?

You know it deep down inside that more Googling isn’t going to help you anymore. Why not try spending 1/4 of your googling-time going through Learn JavaScript?

If you do this for a month, I guarantee you will become more confident in JavaScript that you were. You will know how to think like a developer, and you can begin build to build things you imagined but you could never build before.

That said, consistency creates results. I recommend spending 15 minutes per day (or 2 hours per week) for the best results.

What happens if I fall behind?

Learn JavaScriptis a self-paced course. You have full access to the course forever.

So no worries if life happens. You can take a break and resume whenever you want.

Do you offer purchase parity pricing?

Nope I do not offer purchase parity pricing at this point.

Can I upgrade later?

Yes. You can upgrade to Mastery or Guided for the difference in prices. You will find upgrade instructions in the course.

Can I get a discount?

I reward early buyers so I never discount my courses. (Here’s why). So prices for Learn JavaScript are the lowest right now. It will only increase in the future.

If money is tight, I suggest you get “Starter” first. You can always upgrade later. You can also choose to split the investments into 12 payments.

I understand it’s a lot of money to you. I want you to think about what this investment leads to. What will change if you know JavaScript?

Here’s Rachel comments after investing in Learn JavaScript:

I have a question that has not been answered yet

I’m happy to answer your questions. Just contact me and I’ll reply with my honest thoughts.

Learn JavaScript Guarantee

30-day money back guarantee badge

I guarantee you will learn JavaScript. Try out this course for 30-days, risk-free. If you don’t feel you understand JavaScript within these 30 days, write back and let me know. I’ll refund every cent of your investment.

I offer this guarantee because I want you to experience the course without inhibition. I’m confident that Learn Javascript will exceed your expectations.

Learn JavaScript has helped me to finally understand JavaScript for real and, most importantly, start using JavaScript in my job. All the other courses I did were too focused on the nitty-gritty of JavaScript. I needed some visual feedback, logical explanations, and baby steps. Learn JavaScript did that for me :)

I already started building a custom framework for the company where I work. I also enhanced my own website with the teachings from Learn JavaScript.

Picture of Mark Teekman

Mark Teekman

Start learning JavaScript

I can’t wait to help you start learning JavaScript. I know this course will help you master the language. You’ll be able to understand JavaScript, build anything you want from scratch, and code without copy-pasting from Google.

Enrollment closes on Friday, 17 July, 11:59pm Pacific. Late enrolments will not be excepted, no exceptions. Don’t miss this chance to enroll if you want to learn JavaScript properly!



Great for building your JavaScript foundations.

  • 7 modules
  • 65 lessons
  • 5 components
  • Private community


Made for people who want to master JavaScript.

  • 20 modules
  • 300+ lessons
  • 20 components
  • Private community
  • 3 months of JavaScript Accelerator


Designed for professionals with real-world questions.

  • Two 60-minute calls
  • 20 modules
  • 300+ lessons
  • 20 components
  • Private community
  • 6 months of JavaScript Accelerator

You can remember JavaScript forever

A kid and an adult cycling. The kid is waving at you.

JavaScript is is a skill (like swimming and riding a bicycle). Like all skills, once you learn JavaScript, you can keep it for life.

You may get rusty, but you can remember JavaScript within hours of practice.

Most people forget JavaScript because they try to cram materials into their head. They study JavaScript as if they’re studying for an exam. This doesn’t work!

If you want to learn JavaScript as a skill, you need to understand the concepts. You need to be able to apply the concepts. You’ll do both of these in Learn JavaScript.

Don’t waste your time learning and forgetting JavaScript. Learn it once, learn it well.

You can become a JavaScript expert

Being a JavaScript expert doesn’t mean you know everything about JavaScript. It means:

  1. You can make anything you want from scratch
  2. You can solve any JavaScript problem you encounter
  3. You know what to learn and how to learn them
  4. You can make decisions between different coding styles
  5. You can choose between frameworks
  6. You know your code is good enough
  7. You understand coding techniques and frameworks when you read articles
  8. You can apply what you learned when coding
  9. You can grasp deep concepts without getting a headache.

You can become a JavaScript expert. It takes effort, but you can do it.

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

More reviews from Learn JavaScript students

I’ve been trying to understand CSS transitions/animations for so many times. I failed each time in the past, but not with JavaScript. The CSS transitions/animation lessons in Learn JavaScript is so clear and easy to understand.

I never thought I would understand CSS transitions/animations while learning JavaScript, but I did. This is beyond my expectation.

Picture of Sirapop Lam-o-pas

Sirapop Lam-o-pas

I thought the price seemed a little high at first but I always found Zell’s content informing and easy to understand so I bought the course, and I’m glad I did!

The content in Learn Javascript is easy to understand and laid out in a way that builds in the areas you need to know for web development fundamentals. Even for an industry veteran like myself, I’ve found that knowing the fundamentals is most important, 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

That’s it!

I hope you’ll join the course if you’re interested in mastering JavaScript. I look forward to teaching you!

Stay awesome,