JavaScript & TypeScript Course

Learn JavaScript & TypeScript from zero

The language foundation every other course on this site assumes you already have — core JavaScript from values and functions through closures, objects and async, then TypeScript's type system and everyday tooling, ending with a small typed project you build yourself. All 14 weeks are live, start to finish.

14-Week Plan 100% Complete No Prior Coding Required ES2023 & TypeScript 5
14
Weeks, all live
8
Phases
56
Knowledge-check questions
1
Capstone project, typed & tested
Before You Start

Prerequisites & tooling

What you should already know

  • Nothing — this course assumes zero prior programming experience
  • Basic comfort using a computer: installing software, working with files and folders
  • Willingness to install a code editor and a terminal-based tool or two along the way

Stack you'll work with

Everything here is free, and every tool carries straight into this site's Angular, React and Node.js & Express courses.

Node.js LTS VS Code npm TypeScript 5 ESLint Vitest Browser DevTools
Syllabus

The full 14-week roadmap

Eight phases, from your first variable through closures and async JavaScript, to TypeScript's type system and a small typed capstone. All 14 weeks are live — start with Week 1 and work straight through to a real, tested TypeScript project.

01
WEEK 1

JavaScript Values, Types & Operators

Write and reason about your first real JavaScript, starting from what a value actually is.

  • Primitive types, typeof, and let/const/var
  • Operators, type coercion & template literals
  • Control flow: if/else and switch
Start this lesson
02
WEEK 2

Functions, Scope & Hoisting

Learn the three ways to write a function, and where a variable actually lives.

  • Function declarations, expressions & arrow functions
  • Default & rest parameters
  • Block vs. function scope, and what hoisting actually does
Start Week 2
03
WEEK 3

Closures & Lexical Scope

Why an inner function keeps working after its outer function has already returned.

  • Closures: what they are and why they matter
  • Lexical scoping & the scope chain
  • The classic var-in-a-loop pitfall, and IIFEs
Start Week 3
04
WEEK 4

this, Objects & Classes

The other idea that trips up almost everyone coming from another language.

  • How this is actually determined at call time
  • call, apply, bind & the prototype chain
  • Class syntax: constructors, methods & extends
Start Week 4
05
WEEK 5

Arrays & Array Methods

Stop writing manual loops — reach for the array methods that do the job instead.

  • map, filter & reduce
  • find, some, every & sort with a comparator
  • Chaining array methods into a readable pipeline
Start Week 5
06
WEEK 6

Functions as Values & Immutability

Functions in JavaScript are values, just like numbers or strings — and mutation is a bug waiting to happen.

  • Functions as first-class values & higher-order functions
  • Immutability patterns with spread syntax
  • A first look at currying & composition
Start Week 6
07
WEEK 7

Callbacks, the Event Loop & Promises

How JavaScript waits on slow things without freezing — and the object that represents "not ready yet."

  • The call stack, callbacks & callback hell
  • The event loop & task queue
  • Promises: creating, consuming & chaining
Start Week 7
08
WEEK 8

async/await & Error Handling

Async code that finally reads top to bottom, plus the mistakes that catch almost everyone at first.

  • async/await syntax, built on Promises
  • Real error handling with try/catch
  • Awaiting multiple Promises the right way
Start Week 8
09
WEEK 9

Modern ES6+ & Modules

The syntax that shows up in essentially every modern JS codebase.

  • Destructuring, spread & rest
  • Optional chaining & nullish coalescing
  • ES modules: import/export in the browser & Node
Start Week 9
10
WEEK 10

The DOM & Runtime Basics

Put JavaScript to work in a browser, and see what Node adds outside one.

  • Selecting & updating elements, handling events
  • fetch & working with a real API
  • What Node.js's runtime gives you that a browser doesn't
Start Week 10
11
WEEK 11

TypeScript Setup & Basic Types

Add a type system on top of everything learned so far, and let the compiler catch real bugs.

  • tsconfig.json, basic types & type inference
  • Typing function parameters & return values
  • any vs. unknown, and when inference is enough
Start Week 11
12
WEEK 12

Interfaces & Type Aliases

Typing the shape of real data — objects, API responses, and everything in between.

  • Interfaces, type aliases & when to use which
  • Optional & readonly properties
  • Union & intersection types
Start Week 12
13
WEEK 13

Generics, Utility Types & Narrowing

Write genuinely reusable typed code instead of retyping the same shape repeatedly.

  • Generic functions & interfaces
  • Utility types: Partial, Pick, Omit & Record
  • Type narrowing, type guards & enums
Start Week 13
14
WEEK 14 · CAPSTONE

Tooling, Testing & Capstone

Wire up a real project setup, write your first tests, and ship a small typed capstone.

  • npm scripts, ESLint & a bundler, briefly
  • Writing your first unit tests with Vitest
  • Capstone: a small, tested, fully-typed TypeScript project
Start Week 14

Ready to write your first line of JavaScript?

Start with Week 1 — no prior programming experience required. This course is designed as the language foundation to work through before this site's Angular, React or Node.js & Express courses, ending with a capstone project of your own.