Javascript Engineer from Scratch
Complete JavaScript course from scratch for beginners 12+. From your first variable to a browser game on Canvas - through micro-lessons, live projects and gamification.
Course Curriculum
What JavaScript is and why it is needed
5 tasks
Developer Tools: Opening the Browser Console
5 tasks
First Command: console.log
6 tasks
Variables: what var, let, and const are
5 tasks
Variables: When to Use let and const
6 tasks
Data Types: Numbers and Strings
6 tasks
Data Types: boolean, null, undefined
10 tasks
Arithmetic Operators: +, -, *, /, %
6 tasks
String Concatenation and Template Literals
7 tasks
typeof: How to Find a Variable's Type
8 tasks
Module Final Project: Player Card
6 tasks
Comparison Operators: ==, ===, !=, !==, >, <
8 tasks
Logical Operators: &&, ||, !
7 tasks
if / else: First Branch
7 tasks
else if: several conditions in a row
6 tasks
Ternary Operator: a Short If in One Line
6 tasks
switch / case: Choosing From Many Options
8 tasks
Falsy and truthy values in conditions
7 tasks
Module Final Project: Guess the Number
7 tasks
Why Loops Exist: The DRY Principle
7 tasks
The for Loop: Structure and Counter
7 tasks
for Loop: Nested Loops
7 tasks
while Loop: When You Do Not Need a Counter
7 tasks
do...while: At Least One Run
7 tasks
break and continue: Controlling a Loop
7 tasks
for...of: Looping Over Values
8 tasks
Infinite Loops: The Bug and the Guard
7 tasks
Module Capstone: Leaderboard
7 tasks
What Is a Function: Declaration and Call
8 tasks
Function Parameters and Arguments
7 tasks
return: returning a value from a function
7 tasks
Default Parameters
7 tasks
Function Expressions: const fn = function()
8 tasks
Arrow Functions: Short Syntax
7 tasks
Scope: Global and Local
8 tasks
Block Scope: let/const vs var
10 tasks
Pure Functions: Same Input, Same Output
10 tasks
Module Final Project: Game Engine
10 tasks
Arrays: Creating Arrays and Accessing by Index
10 tasks
Array Methods: push, pop, shift, unshift
10 tasks
Array Methods: splice, slice, indexOf
10 tasks
The map Method: Transforming Every Element
10 tasks
The filter Method: Keeping Matching Elements
10 tasks
The reduce Method: Turning an Array into One Value
10 tasks
Objects: Creation and Properties
10 tasks
Objects: Methods Inside an Object
10 tasks
Array and Object Destructuring
10 tasks
Spread and Rest Operators
10 tasks
JSON: Object to String and Back
10 tasks
Module Final Project: Character Manager
10 tasks
What Is the DOM: The Page Element Tree
10 tasks
querySelector and querySelectorAll: Finding Elements
10 tasks
Changing Text: textContent and innerHTML
10 tasks
Changing Styles with style and classList
10 tasks
Creating and Removing Elements: createElement, append, remove
10 tasks
Events: addEventListener and Event Types
10 tasks
The Event Object: event.target and event.key
10 tasks
Event Delegation
10 tasks
Forms: Reading input and submit
10 tasks
XSS Attack: The Danger of innerHTML and Protection
10 tasks
Module Final Project: Interactive Quiz
10 tasks
Synchronous vs Asynchronous Code: Stack and Queue
10 tasks
setTimeout: Delayed Execution
10 tasks
setInterval: Repeating Timer
10 tasks
Callback Functions: Passing a Function as an Argument
10 tasks
Promises: Creating and Chaining .then/.catch
10 tasks
async / await: Promises as Synchronous-Looking Code
10 tasks
Fetch API: Making a GET Request to a Server
10 tasks
Handling Network Errors: try/catch with fetch
10 tasks
Promise.all: Parallel Requests
10 tasks
Public APIs and CORS: What the Browser Allows
10 tasks
Module Final Project: Quiz with Real Questions from an API
10 tasks
ES6 Classes: class and constructor syntax
10 tasks
Class Inheritance: extends and super
10 tasks
localStorage: Saving Data in the Browser
10 tasks
sessionStorage: Data for One Session
10 tasks
JavaScript Modules: import / export
10 tasks
Map and Set: Advanced Collections
10 tasks
Symbol and Iterators: Custom for...of
10 tasks
Regular Expressions: Search and Replace in Strings
10 tasks
Safe Data Storage in localStorage
10 tasks
Debugging Code: debugger and Breakpoints
10 tasks
Module Final Project: A Game with Saved Progress
8 tasks
Game Architecture: Splitting the Project into Modules
10 tasks
Game Loop: requestAnimationFrame
11 tasks
Rendering Objects on Canvas
10 tasks
Player Control: Keyboard Events
10 tasks
Collision Detection: Rectangles
10 tasks
Levels and Enemy Waves
10 tasks
Loading High Scores With fetch
10 tasks
Saving the High Score in localStorage
10 tasks
Sound and Visual Effects
10 tasks
Module Final Project: Space Defender - Complete Version
10 tasks