JSAU / TEN / 01
JavaScript for Teens
Interactive pages and games.
Open the syllabusAustralia · Ages 13 to adult · Browser, Node and async
JavaScript runs in every web browser and, through Node, on servers and laptops too. That makes it one of the most useful languages to know, and one of the easiest to get subtly wrong, because so much of it is asynchronous: code that asks for something and carries on before the answer arrives. Our JavaScript classes teach the language properly, live online, to Australian teens and adults, from the first variable to promises and async functions. This page sets out what is covered, measures one asynchronous mistake with real requests to the Australian Bureau of Statistics, and shows where JavaScript sits in the Australian Curriculum.
Live teaching since 2020 · 10,000+ students · The language first, then the frameworks
In short
JavaScript classes online teach the JavaScript language for use in web browsers and on servers through Node.js: values, functions, objects, events and asynchronous code with promises and async functions. The Australian Curriculum names JavaScript as one example of a general-purpose language. Modern Age Coders teaches JavaScript live online to Australian teens and adults, in small groups or one to one, and the first class is free.
Start here
Chosen by age and direction. Each card opens the syllabus.

JSAU / 01
Ages 13 to 18 from zero: interactive pages and browser games.
Open the syllabus →
JSAU / 02
For 18 and over: JavaScript with types, then React and Node.
Open the syllabus →
JSAU / 03
For adults who know the basics: JavaScript to production React.
Open the syllabus →The language
Frameworks change every few years. The language underneath changes slowly, so we teach it first.
| Topic | What learners practise | Typical first mistake |
|---|---|---|
| Values and types | Numbers, strings, booleans, null and undefined | Comparing with == instead of === |
| Functions | Declarations, arrow functions, parameters, return values | Forgetting to return a value |
| Objects and arrays | Building, reading and copying data structures | Changing an object shared by two variables |
| The browser | Selecting elements, handling clicks and form input | Running code before the page has loaded |
| Asynchronous code | Promises, async and await, error handling | Starting work and not waiting for it |
Australian Curriculum content description AC9TDI8P09 asks Years 7 and 8 students to implement and debug programs, and its elaboration describes writing programs "in a general-purpose programming language, such as Python, JavaScript or C#".
JavaScript is one of the languages schools can choose, and the one that runs on every device students own.
ANZSCO 261212 Web Developer "Plans, produces and maintains websites using web programming languages, software applications, technologies and databases".
JavaScript is the language that runs in the browser for that work. We make no promise about jobs; we describe what the work involves.
A worked example
Most real JavaScript waits for something: a server, a file, a database. How it waits changes how long a user sits watching a spinner.
We wrote a short Node program that asks the ABS Data API for the 2025 estimated resident population of seven capital-city councils (Sydney, Melbourne, Brisbane, Adelaide, Perth, Hobart and Darwin) plus the unincorporated ACT. It ran the eight requests three ways: awaiting each one before starting the next, starting all eight and awaiting them together with Promise.all, and the common mistake of calling an async function inside forEach.
| Approach | Round 1 | Round 2 | Result |
|---|---|---|---|
| await each request in a for loop | 16,843 ms | 9,512 ms | All eight values |
| Promise.all over all eight | 2,190 ms | 1,940 ms | The same eight values |
| async callback inside forEach | 8.5 ms | not repeated | Returned with 0 of 8 finished |
Sequential awaits pay for every round trip one after another. Promise.all lets the eight requests overlap, which was between about five and eight times faster here.
The forEach version looked fastest at 8.5 ms because it did not wait at all. MDN says plainly that forEach "does not wait for promises".
If a service limits how many requests you may send at once, or each request needs the previous answer, the slow sequential loop is the correct choice. Speed is not the only test.
MDN describes it as taking "an iterable of promises as input" and returning "a single Promise". It also warns that the result "rejects when any of the input's promises rejects", so one failed request fails the lot.
Learners write the version that handles one failure without losing the other seven.
Timings over a real network vary, which is why we show two rounds. The ratio between the approaches is the lesson, not the exact milliseconds.
Eight small requests are a light load on a public data service, and we ran only two rounds.
Sources, read 14 October 2026: MDN Web Docs on Promise.all() and Array.prototype.forEach(); data from the ABS Data API (CC BY 4.0). The program and timings are our own.
Where it runs
Learners meet JavaScript in the browser first, then in Node, then inside frameworks.
| Place | What it is for | A project in our classes |
|---|---|---|
| The browser | Making pages respond to people | A quiz or game that keeps score |
| Node.js | Scripts, tools and servers on a computer | A program that fetches and summarises public data |
| Frameworks such as React | Large interfaces built from components | A small app with several screens |
Teens usually start in the browser, because results appear instantly. Those who want to build whole websites should also look at web development for teens.
Years 9 and 10 students meet object-oriented programming in the curriculum too, which JavaScript classes reach later.
Adults often start in Node, writing scripts that save time at work, before moving to the browser or React.
Career changers may prefer the broader coding for career changers route.
Route
Each project adds one idea and keeps the earlier ones in use.
| Project | New idea | Done when |
|---|---|---|
| Tip calculator in the browser | Variables, functions, events | It handles empty and silly input |
| Card game | Arrays, objects and state | A full round plays without errors |
| Data fetcher in Node | Promises and async functions | All requests finish and failures are reported |
| Faster data fetcher | Promise.all and error handling | It is faster and still correct when one request fails |
| Small React app | Components and props | Another learner can add a screen |
Learners who want to understand how larger programs are kept working can add the software development course. Those curious about a compiled language may enjoy C++ classes.
Debugging
Every modern browser includes developer tools. Learners use them from the first week instead of guessing.
| Tool | What it shows | Typical use |
|---|---|---|
| Console | Errors, warnings and anything logged | Reading the first error, not the last |
| Breakpoints | The program paused on a chosen line | Checking values one step at a time |
| Network panel | Every request, its timing and its reply | Seeing whether requests run one after another or together |
| Elements panel | The live page and its styles | Finding why a button does not respond |
| Performance panel | Where time goes while a page runs | Spotting slow loops and long tasks |
In the network panel, the sequential version shows eight requests as a staircase; the Promise.all version shows them stacked side by side.
Seeing the shape makes the timing difference obvious without reading a single number.
Learners practise reading an error message from the top: what kind of error, on which line, in which file.
Most beginner bugs are solved by the first line of the first error.
Modern JavaScript
JavaScript has changed a great deal. Learners meet older code online, so we show both and explain why the newer form is preferred.
| Older pattern | Modern form | Why |
|---|---|---|
| var | let and const | Clearer scope and fewer accidental changes |
| Nested callbacks | Promises with async and await | Code that reads top to bottom |
| == comparisons | === comparisons | No surprising type conversions |
| String joining with + | Template literals | Easier to read and edit |
| Manual loops for everything | map, filter and for...of | Intent is clear at a glance |
Knowing the older forms still matters, because tutorials, answers online and existing projects are full of them. Learners rewrite a short old-style script in modern JavaScript as an exercise.
AI assistants produce JavaScript quickly, and it often mixes old and new styles or skips the waiting step in asynchronous code. Learners who know the patterns on this page can spot both.
Teens use AI tools only where the age rules of each tool allow it; adults can use them more freely.
Each lesson includes a short program to read before running: what will it print, and in what order? Asynchronous code makes that question interesting.
Predicting first, then running, is how the event loop stops being mysterious.
Progress
Each level is a set of things a learner can do, confirmed by a project.
| Level | What you can do |
|---|---|
| 1. Scripter | Write functions that work on numbers, strings and arrays |
| 2. Page builder | Make a web page respond to clicks and typing |
| 3. Async coder | Fetch data, wait for it correctly and handle failures |
| 4. App builder | Structure a larger program in components or modules |
Either works. Python is gentler for complete beginners; JavaScript is better for someone who wants things on screen quickly.
Many learners end up using both.
For adults building larger projects, yes. It adds types that catch mistakes before the code runs.
We teach it after plain JavaScript feels comfortable.
The catalogue
Grouped by age and stage. The free class decides where a learner starts.
JSAU / TEN / 01
Interactive pages and games.
Open the syllabusJSAU / TEN / 02
JavaScript to real React apps.
Open the syllabusJSAU / TEN / 03
Node, APIs and databases.
Open the syllabusJSAU / ADL / 01
Typed JavaScript, React and Node.
Open the syllabusJSAU / ADL / 02
To production React.
Open the syllabusJSAU / ADL / 03
MongoDB, Express, React, Node.
Open the syllabusJSAU / CMP / 01
The page JavaScript works on.
Open the syllabusJSAU / CMP / 02
Saving every version.
Open the syllabusJSAU / CMP / 03
React, Node and deployment, 18+.
Open the syllabusHow lessons run
Teachers work from India, and their day overlaps Australian afternoons and evenings. Times are set in your own state's time and move with daylight saving.
After school
For teens in term time.
Evening
For adults after work, by arrangement.
Weekend
Longer build sessions.
A first script in the browser and advice on where to start.
Fifteen to twenty learners at the same stage.
For a particular project or pace.
Learners read errors in the browser console from day one.
Public Australian data in the async projects.
Teachers guide; learners type every line.
Student work
Work our students built and published. More in the student labs.

AI and ML
An AI nutrition coach that reads what you eat and works you toward a target.

AI and ML
A chatbot that answers mathematics and programming questions, built and deployed by a student.

AI and ML
An assistant that helps a young person recognise unsafe situations online.

Web app
A weather forecasting site with live conditions for any location.
Fees
Learners outside India pay one monthly fee in US dollars; nothing is due at sign-up and there is no contract.
Free first class
USD 0
no card required
Group batch
USD 100
a month, billed in US dollars
One to one
USD 150
a month, billed in US dollars
What families say
Published Google reviews, copied without edits.
★★★★★
"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."
Ria Mukherjee
Parent
★★★★★
"Modern Age Coders has been a game-changer for me. I struggled to grasp IT concepts and coding before joining, but their classes transformed everything. I can now confidently write complex programs with ease."
Samriddha Mondal
Student
★★★★★
"One of the most wonderful education centres out there. Education is not limited to school syllabus but focuses on skill development."
Vansh Agarwal
Student
★★★★★
"My child Dhairya is really enjoying the Modern Age Coders classes. This is his first online class and he eagerly looks forward to it. I can already see his improvement, and the teachers are very cooperative."
Sonam Oswal
Parent of Dhairya
★★★★★
"Modern Age Coders have wonderful teachers who teach in a clear, easy and practical way. The teacher boosts students' confidence and inspires them to learn without hesitation."
Sonu Goyal
Parent
★★★★★
"I highly recommend this computer coding class! The teachers are incredibly knowledgeable and passionate about coding."
Ritu Kedia
Parent
Learners ask
The core language, how it works in the browser, Node.js for scripts and servers, and asynchronous code with promises and async functions.
Awaiting in a loop runs requests one after another; Promise.all lets them overlap. In our test with eight ABS requests, the loop took 16,843 ms and Promise.all 2,190 ms in the first round.
forEach does not wait for the promises its callback returns, so the code after it runs before the work is done. In our test it returned after 8.5 ms with none of eight requests finished.
It is named as an example. The elaboration for AC9TDI8P09 describes using a general-purpose language "such as Python, JavaScript or C#".
It helps for browser work but is not required. Learners can start with JavaScript in Node and add HTML later.
Teens from 13 and adults of any age. Younger children usually start with Scratch or Python.
Web development for teens is about building whole sites. These classes go deeper into the JavaScript language itself and are open to adults.
Once plain JavaScript is comfortable, TypeScript is a good next step for larger projects.
We make no job or salary promises. The classes build real projects and understanding you can show.
The first class is on us, with no card asked for. Monthly group and one-to-one prices are listed in the fees panel.
Also on this site
Pages beside this one.
Whole sites, designed and published.
Testing, Git and debugging.
A compiled language.
For adults switching fields.
States, cities, exams and every subject door.
Private help in any language.
Start here
Leave your details and we will phone at a convenient time. The first class runs a first script and ends with a recommendation.
Read about how we teach or browse every course.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Send a WhatsApp from your Australian number for the fastest answer. The +91 line is answered by our team in India; we have no Australian office.
A priority demo is a full class of about 45 to 60 minutes. After the class the mentor sends a written skill report and a personal learning roadmap on WhatsApp. If you enrol, the demo fee is adjusted against your first month's fee. Share your demo Order ID with us on WhatsApp and we take it off.
Book a priority demo