Why Learn JS?

JavaScript is the only language that lets you build applications for any technology platform. The goal of the curriculum is to give you exercises to help you understand technology at a conceptual level first, end to end:

  1. Client side - mobile apps, websites, terminal UI, etc.
  2. Server side - Database interactions, system design and optimizations
  3. Batch - ML models and scripting

Once you understand these moving parts conceptually, you will be well prepared to specialize in domain specific languages that optimizes for each task as you gain more experience as a software engineer.


Before starting, please make sure you know some math!

Numbers Math

This will be the extent of how much you will need to know math. If you find any of the exercises challenging, ask in person at a meetup group or in the chatroom!

In this lesson, you will learn the fundamental building blocks of coding:

There will be many exercises; be sure to solve each problem by yourself first before looking at the answer! If these concepts are new to you, please go through the exercises in this lesson over and over again until you are confident before continuing to the next lesson.

How to Follow Along

For experienced coders - If you already know some JavaScript and wish to skip directly to the challenges, please at least glance through the materials covered to make sure you are not missing anything.