CPPK / PRE / 01
Scratch coding
Logic in blocks.
Open the syllabusUnited States · Ages 9 to 13 and up · C++
Some children ask for C++ by name. They have heard it runs real games, or an older cousin uses it for competitions, or they simply want the language that sounds hardest. C++ is a serious, fast, widely used language, and a determined child can learn it. It is also strict, wordy and unforgiving in ways that Python and Scratch are not. This page is an honest guide for American parents: which children are ready, which should start elsewhere first, what C++ code actually looks like at a beginner level, and where it leads for students who stay with it.
Live teaching since 2020 · 10,000+ students · An honest answer on readiness first
In short
C++ can be a child’s first typed language from about 11 or 12, if they read and type comfortably and do not mind strict error messages; for children of 9 or 10 we recommend starting in Scratch or Python and moving to C++ later. Free compilers such as g++ and Clang, or an online compiler page, are all a beginner needs. Modern Age Coders teaches this live online for US students, in a batch or one to one, and the first class is free.
Learn it with a teacher
C++ for Kids covers ages 9 to 12, C++ for teens takes over at 13, and Python suits a child who wants a gentler first language.

CPPK / 01
Ages 9 to 12. A first program, loops, functions, small games and puzzles.
Open the syllabus →
CPPK / 02
Ages 9 to 12. The gentler typed language we usually start with.
Open the syllabus →
CPPK / 03
Ages 13 to 18. Fundamentals, the STL, data structures and games.
Open the syllabus →Is my child ready?
The official C++ site asks beginners who have never programmed, "why not learn in modern C++?" For teenagers we agree. For younger children the answer depends on the child, so here is the table we use with parents.
| Age | Usual starting point | When C++ makes sense |
|---|---|---|
| 6 to 8 | Scratch or other block coding | Not yet; typing and reading speed get in the way |
| 9 to 10 | Scratch, then Python | Rarely as a first language; a few C++ ideas after a year of Python |
| 11 to 12 | Python, or C++ with a patient teacher | Yes, for a child who types well, reads errors calmly and wants it |
| 13 and up | C++ directly is fine | Yes; our teen course starts from zero |
A child who wants to compete is the clearest case. USACO, the USA Computing Olympiad, accepts C, C++, Java and Python, and says C++ is the only language supported at the International Olympiad in Informatics.
It also suits children who like knowing how things work underneath: why a number has a limit, where memory goes, why one program runs faster than another. C++ makes those questions visible.
If your child wants to see something on screen within ten minutes, C++ is a slow start. Python, Scratch or JavaScript give quicker rewards, and quick rewards keep young beginners coming back.
If their goal is websites, apps or AI, C++ is the long way round. Those children do better in JavaScript or Python, and can still learn C++ later for competitions.
For a side-by-side view of languages by age, see our post on coding languages for ages 10 to 18 and our guide to the right age to start coding.
Setting up
The tools are free. The official site, isocpp.org, lists free compilers for every major operating system and several online compiler pages for computers where nothing can be installed.
| Computer | Free option isocpp.org lists | Note |
|---|---|---|
| Windows PC | Visual C++ Community, or a Windows build of GCC (g++) | Microsoft’s compiler is described as free for Windows |
| Mac | Clang | Described by isocpp.org as an open-source compiler for various platforms |
| Linux | GCC or Clang | isocpp.org says builds are likely available through the package manager |
| Chromebook or school laptop | Online compiler pages such as godbolt.org, Wandbox or ideone.com | Some only compile; others also run the program and show its output |
C++ is an ISO international standard, and its committee publishes new versions over time. The isocpp.org status page says C++23 has been published and work is under way on C++26.
For a child, the version matters less than the style. Modern C++ uses std::string, std::vector and the random library instead of the older C habits, and that is what every program on this page uses.
isocpp.org recommends books for complete beginners, including an introduction to programming written by the creator of C++ and a shorter Tour of C++ by the same author. Both are written for adults and older teens.
For younger readers, we suggest a teacher and short programs first, then a book once they can already read simple C++ comfortably.
Real code
These are the first three programs our C++ beginners write. They use only standard C++ described on cppreference.com. Paste each into an online compiler or a compiler on your computer and run it.
// hello.cpp (ours)
#include <iostream>
#include <string>
int main() {
std::string name;
std::cout << "What is your name? ";
std::cin >> name;
std::cout << "Hello, " << name << ". Welcome to C++.\n";
}There is no return statement, and that is allowed: cppreference says that reaching the end of main without one has the effect of return 0. std::cin reads from the keyboard, the standard input.
// guess.cpp: a number guessing game (ours)
#include <iostream>
#include <random>
int main() {
std::random_device rd; // a seed source
std::mt19937 gen(rd()); // the random engine
std::uniform_int_distribution<int> pick(1, 50);
int secret = pick(gen); // 1 to 50, both ends included
int guess = 0;
int tries = 0;
while (guess != secret) {
std::cout << "Guess a number from 1 to 50: ";
std::cin >> guess;
tries = tries + 1;
if (guess < secret) std::cout << "Higher\n";
else if (guess > secret) std::cout << "Lower\n";
}
std::cout << "Got it in " << tries << " tries.\n";
}uniform_int_distribution produces whole numbers on the closed interval from a to b, so 1 and 50 can both be the secret. Our arithmetic: halving the range each time finds any number from 1 to 50 in at most 6 guesses, because 2 to the power 6 is 64, which is at least 50.
// scores.cpp: why .at() is the safer way in (ours)
#include <iostream>
#include <stdexcept>
#include <vector>
int main() {
std::vector<int> scores = {7, 9, 4};
scores.push_back(10); // positions 0, 1, 2 and 3
std::cout << "First score: " << scores.at(0) << "\n";
std::cout << "How many: " << scores.size() << "\n";
try {
// there is no position 4
std::cout << scores.at(4) << "\n";
} catch (const std::out_of_range& e) {
std::cout << "Caught it: no score at position 4\n";
}
// scores[4] also compiles, but reading it is undefined behavior
}vector::at checks the position and throws std::out_of_range when it is outside the vector. The square-bracket version does no check, so the program in the last comment would compile and then behave unpredictably.
The while loop keeps asking until the guess equals the secret; the if and else if decide which hint to give. That is a complete game in under twenty lines, and every line is something the child can explain.
The halving strategy is the real lesson. A child who works out that 6 guesses are always enough has discovered binary search, an idea that appears in competitions for years to come.
Beginners make off-by-one mistakes constantly: a vector of 4 scores has positions 0 to 3, not 1 to 4. With .at(), that mistake produces a clear error the child can find. With square brackets, it can produce nonsense that looks like a working program.
Once a student can always say which positions exist, we show them square brackets and why experienced programmers use them in fast code.
Limits and bugs
In Python, whole numbers grow as big as needed. In C++, each type has a fixed width, and going past it is a bug the language does not have to catch. Children find this strange at first and fascinating soon after.
| Type | The standard guarantees | Usual today |
|---|---|---|
| short | At least 16 bits | 16 bits |
| int | At least 16 bits | At least 32 bits on 32-bit and 64-bit systems |
| long | At least 32 bits | 32 or 64 bits, depending on the system |
| long long | At least 64 bits | 64 bits |
Our example: a game stores the score in a 32-bit int, which can hold up to 2,147,483,647. If the game adds 1,000 points every second, the score passes that limit after about 2,147,483 seconds, and 2,147,483 / 86,400 is about 24.8 days of non-stop play.
After that, signed integer overflow is undefined behavior. cppreference lists it among its examples, alongside reading outside an array, and says of undefined behavior: "There are no restrictions on the behavior of the program."
The fix is simple, a long long, which the standard guarantees is at least 64 bits. The habit is the valuable part: asking how big a value can get before choosing its type.
USACO makes the same point in its instructions: answers usually fit in a standard 32-bit integer, but this is not guaranteed. Checking limits before coding is a habit we teach from the first month.
Where it leads in the US
For American students, C++ has one very concrete destination: the USA Computing Olympiad. Its contest instructions explain how languages are treated.
| Point | What USACO says |
|---|---|
| Fee | "There is never any fee for participation." |
| Languages | Solutions in C, C++, Java or Python |
| At the international level | "C++ is the only language supported at IOI" |
| Time limits | For most contests, 2 seconds per input case for C and C++, 4 seconds for Java and Python |
| Python at the start | All bronze-level problems are meant to be fully solvable in Python |
| Divisions | Bronze, silver, gold and platinum |
A child does not need C++ to start USACO. Bronze can be done in Python, so a younger student can compete in the language they already know and switch when the problems demand speed.
USACO also says that on some problems, particularly in higher divisions, Python may be too slow to solve every input in time. That is the point where C++ pays off, and a student who learned it at 12 or 13 is ready for it.
Our USACO preparation coaching takes students from their first contest upward. We are not connected with USACO, and we make no promises about divisions or results.
Teens who prefer building to competing can take C++ toward graphics and games instead; our page on C++ game development covers that route.
A first term
Our outline for a younger student who is ready for C++. Teens in our main course move faster; younger children may spend longer on the first weeks.
| Weeks | What the student builds | The idea |
|---|---|---|
| 1 to 2 | Hello, a calculator, a mad-libs story | Compiling, variables, input and output |
| 3 to 4 | The guessing game, then a dice roller | Loops, conditions, random numbers |
| 5 to 6 | A times-table quiz that keeps score | Functions and return values |
| 7 to 8 | Scores and names in vectors | Vectors, .at() and off-by-one thinking |
| 9 to 10 | A text adventure with rooms | Strings, menus, larger programs |
| 11 to 12 | Two small olympiad-style problems | Reading a problem, testing edge cases |
C++ for Kids at a slower pace, with more time on typing carefully and reading what the compiler says; some children try Python first.
The twelve weeks above inside C++ for Kids, in a batch or one to one, with a lot of time on reading error messages.
Our C++ for teens course, from first programs through the STL and data structures to games and competition problems.
Growing into C++
The stages we teach through, and what comes next.
| Stage | What it looks like |
|---|---|
| 1. Copier | Types out programs carefully and hunts down missing semicolons |
| 2. Reader | Can explain what each line of a short program does |
| 3. Builder | Writes small games and tools from an idea, with loops and vectors |
| 4. Solver | Reads a contest problem, plans, and checks limits before coding |
Compiler errors are long and frightening at first. A child who reads the first line of the error, not the whole wall, has already reached stage 2.
Ask your child what the largest value in their program could be. If they can answer, they are thinking like a C++ programmer.
Fix the first error first. One missing semicolon can cause ten errors further down.
Run the program after every few lines. Small steps make bugs easy to find.
The catalog
Each course is taught live by one teacher who stays with the class, in a group or privately.
CPPK / PRE / 01
Logic in blocks.
Open the syllabusCPPK / PRE / 02
The first typed language.
Open the syllabusCPPK / PRE / 03
Puzzles, steps, patterns.
Open the syllabusCPPK / TEN / 01
Zero to data structures.
Open the syllabusCPPK / TEN / 02
Contest-style thinking.
Open the syllabusCPPK / TEN / 03
The AP CS A language.
Open the syllabusCPPK / FUR / 01
Java for the College Board exam.
Open the syllabusCPPK / FUR / 02
Engines and real games.
Open the syllabusCPPK / FUR / 03
Deeper C++ for older students.
Open the syllabusLesson times
Weekdays or weekends, flexible: choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
Weekdays
Evening batches that work from the East Coast to the West Coast.
Weekends
Weekend mornings suit students with busy weekdays.
1-on-1
Often the right choice for an 11 or 12 year old starting C++.
We tell you honestly if Python should come first.
Students type, compile and debug in class.
Learning to read compiler messages is part of the plan.
One teacher who knows your child’s code.
A laptop or Chromebook and a browser.
Fifteen to twenty, or one to one.
Student work
Work from learners who began with programs like the three above. More on the student labs page.

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
Compilers cost nothing. What you pay for is a teacher, one month at a time and shown in US dollars, with no semester commitment; stop whenever a month ends.
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
Copied from Google, in parents’ own words.
★★★★★
"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
Questions from parents
Yes. A child can learn C++ from about 11 or 12 if they read and type comfortably. For children of 9 or 10 we recommend starting with Scratch or Python and moving to C++ once they understand loops and variables.
In our view it is a harder first language than a 10 year old needs, because of strict syntax and long error messages. A year of Python first usually makes C++ much easier.
We usually recommend Python first. Choose C++ first if your child is 12 or older and aims at competitions such as USACO, or wants to understand how computers handle memory and speed.
The tools are free. isocpp.org lists free compilers such as GCC (g++), Clang and Visual C++ Community, plus online compiler pages that run in a browser.
Yes, using an online compiler page such as godbolt.org, Wandbox or ideone.com, which isocpp.org lists. Some only compile code; others also run it and show the output.
Modern C++. The isocpp.org status page says C++23 has been published and work is under way on C++26. For beginners, the style matters more than the version number.
Not at first. USACO accepts C, C++, Java and Python, and aims for every bronze problem to be fully solvable in Python. It says C++ is the only language supported at the international olympiad, so serious competitors usually learn it.
A short program that asks for their name and says hello, then a number guessing game with a loop. Both appear on this page, written in standard C++.
Yes. C++ for Kids is for ages 9 to 12, in a batch or one to one, and C++ for teens continues from 13. Some younger children start with Python or Scratch and move across.
Weekdays or weekends, flexible. Choose your batch, or for a very personalised plan choose 1-on-1 at your convenience, weekend mornings or weekdays.
The first lesson is free. Then families pay monthly for the teaching, and the fees section of this page shows the amount in US dollars.
On this site
More for US families weighing up C++.
Our full C++ course page.
Coaching for the US olympiad.
For teens who want to build games.
The usual first step.
All our pages for US families.
For older beginners and adults.
JavaScript for kids: an age guide, the Console, and three real programs to try today.
MIT App Inventor for kids: sign-in options, phone setup and a first app in real blocks.
Coding for elementary students, grade by grade, with a first program and an at-home activity.
Start here
Tell us your child’s age and what they have coded so far. The teacher will try a small C++ program with them and tell you honestly whether to start with C++ or Python.
If you would like to see the method first, how we teach describes a live class, and the C++ syllabus sits on our courses page.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Classes are online and our teachers work from India, so students anywhere in the United States join from home. For the fastest answer, message us on WhatsApp.
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