Skip to content
wannacode

Programming with JavaScript

Programming with JavaScript, the language of every web page in the browser and of servers with Node.js. You start from your first program and get to classes, files, collections, tests, threads and networking. The ideas are the same as in the Java and C# courses; the code and the details are JavaScript.

The course is split into modules, and each module into short lessons. A lesson is a series of cards, one idea per card: a real problem, what actually happens (often with an animation next to the code), a small task, then the next idea. At the end there is an exercise for your editor and a short test.

Every module uses only what the earlier ones have shown. Your progress is kept in your browser: a lesson picks up from the card you reached.

Module 0

Welcome

3 lessons · the language, where it is used, setup

  1. The language you are learning
  2. Getting your computer ready
  3. How to solve a task

Module 1

Language basics

9 lessons · variables, conditions, loops, arrays

  1. Your first program
  2. Variables and types
  3. Input and output
  4. Doing math
  5. Conditions
  6. Loops
  7. Arrays
  8. Tables of numbers
  9. Working with text

Module 2

Functions

4 lessons · code you write once and call many times

  1. Why functions
  2. Parameters and return
  3. Default values
  4. Recursion

Module 3

Classes and objects

5 lessons · your own types

  1. Your own type
  2. Constructors and this
  3. Behavior
  4. Encapsulation
  5. static: what all objects share

Module 4

Inheritance and polymorphism

5 lessons · what is shared, in one place

  1. Inheritance
  2. Polymorphism
  3. Abstract classes without abstract
  4. Interfaces without interface
  5. What is it really?

Module 5

Errors and exceptions

3 lessons · when something goes wrong

  1. When something goes wrong
  2. Different errors and finally
  3. Throwing and your own exceptions

Module 6

Text and files

5 lessons · strings, regex, files

  1. Text up close
  2. Regular expressions
  3. Search and replace
  4. Files
  5. Data in files

Module 7

Collections

5 lessons · arrays, stack, queue, Map, Set

  1. An array that grows
  2. Stack, queue and linked list
  3. Map and Set
  4. How Map and Set work
  5. Classes inside classes and data inside data

Module 8

Modern JavaScript

4 lessons · lambdas, data pipelines, patterns

  1. Arrow functions
  2. Array methods
  3. Data, switch and destructuring
  4. Design patterns

Module 9

Real-world programs

5 lessons · tests, threads, network, databases, reflection

  1. Tests with node:test
  2. Async, await and threads
  3. Programs on the network
  4. Databases
  5. Reflection

Let's make a game

three games from scratch

8 lessons

  1. How to think about a game
  2. RPG 1: the heroes
  3. RPG 2: the battle
  4. RPG 3: the whole game
  5. Epic Cosmos 1: the objects in space
  6. Epic Cosmos 2: resources, buildings, ships
  7. The locked lab 1: rooms and commands
  8. The locked lab 2: puzzles and the way out

Project

a whole program, step by step

1 lesson

  1. Hotel reservations

Made by Ivo Gergov as part of Evo Tech's campaign for accessible programming education ·