What Should a 10-Year-Old Actually Build With Python?
A guessing game, a quiz, a calculator, a story maker and a spiral. Five projects with the real code, and exactly what each one puts on the screen.

In this article
This one is aimed at you if you are the one doing the building, and grown-ups are welcome to read over your shoulder.
Here is the problem with most lists of beginner projects. They are enormous. Build a chess engine, build a weather app, build a website. You start, you get four hours in, it does not work, and you quietly never open it again.
So these five are picked on a different rule: every one of them finishes. Each fits on roughly half a screen, each does something the moment you run it, and each one can be made stranger by changing a single number.
All five are real code. Type them, run them, then wreck them on purpose.
What makes a project worth building
Before the five, the test I use for whether something is a good project at all.
It has to talk back. A program that just works out a number is fine, but a program that asks you something and reacts to your answer feels alive in a way the first one never does. Four of these five ask you a question.
It has to finish tonight. Not this week. If you cannot get a wonky version running before you go to bed, the project is too big and you will not come back to it.
And it has to have you in it. Put your friends' names in the quiz. Put your dog in the story maker. A project with your actual life in it gets shown to people, and showing it to people is the bit that makes you want to build the next one.
One more rule, and it is the one nobody tells you. A good project has to be easy to wreck. If you can change one number and get something completely different, you will keep poking at it for another hour without noticing. If breaking it means starting over, you will close the laptop the first time it goes wrong.
1. The guessing game
Start here. This is the one that teaches you the most per line, and it is the one that keeps people playing longest.
The computer picks a number and will not tell you. You guess. It says higher or lower until you get it, then tells you how many tries it took.
There is a loop in here, and a condition, and a counter, and you will learn all three without anybody saying those words to you.
The strange looking bit is while True, which means keep going forever. That sounds like a mistake and is not: the break at the bottom is what stops it, and it only runs when you finally get the number right. A loop that runs until something happens, rather than a fixed number of times, is a genuinely different tool and this is the friendliest place to meet it.
import random
secret = random.randint(1, 20)
guesses = 0
while True:
guess = int(input("Guess 1 to 20: "))
guesses = guesses + 1
if guess < secret:
print("Too low!")
elif guess > secret:
print("Too high!")
else:
print("Got it in " + str(guesses) + "!")
break
# Too high!
# Too high!
# Too low!
# Got it in 4!2. The quiz
Now make one about your own friends, your own class, or something nobody else would ever write a quiz about.
This one is worth building because of the list at the top. Add a question to the list and everything else keeps working, and you did not have to change the part that asks or the part that counts. That is the first time most people feel what a list is actually for.
Type your own questions in. The ones below are placeholders and honestly not very good:
questions = [
("Capital of Kerala? ", "thiruvananthapuram"),
("How many legs has a spider? ", "8"),
("Which planet is the red one? ", "mars"),
]
score = 0
for question, answer in questions:
reply = input(question)
if reply.lower().strip() == answer:
score = score + 1
print("You scored " + str(score) + " / " + str(len(questions)))
# You scored 2 / 33, 4 and 5: one evening each
These three are shorter and you can do all of them in a sitting.
The calculator is the plainest thing here and still worth typing once, because float is how you tell Python you mean numbers with a dot in them, and getting that wrong is a mistake everybody makes exactly once.
The story maker is the one that gets funny fast. Add ten more options to each list and run it twenty times.
The spiral is the one to show somebody. Note that it turns 91 degrees rather than 90, which is the entire reason it spirals instead of drawing a square. Change 91 to 89, or to 120, and see what falls out.
That single degree is worth sitting with for a minute. At exactly 90 the turtle comes back to where it started and retraces the same square forever. At 91 it never quite closes, so every lap lands slightly rotated from the last one, and a hundred laps later you have a spiral nobody drew on purpose. Almost every interesting thing in graphics is some version of that trick:
# 3. Calculator
a = float(input("First number: "))
b = float(input("Second number: "))
print(a + b)
# 12.5
# 4. Story maker
import random
who = random.choice(["The brave cat", "A tiny robot", "Ammu"])
did = random.choice(["sang", "danced", "sneezed"])
print(who + " " + did + ".")
# The brave cat sang.
# 5. Turtle spiral
from turtle import forward, right, done
for i in range(100):
forward(i)
right(91)
done()What you can do this week
Do not try to do all five. Pick one, get it running badly, then make it worse on purpose.
The three below are the difference between typing somebody else's code and owning it.
- Build the guessing game, then change 20 to 1000 and see how much more annoying it gets.
- Put five real people you know into the story maker and run it until it says something ridiculous.
- Break one of them so badly it will not run, then get it back without deleting anything.
Final thought
None of these five is impressive on its own, and that is deliberate. They are small enough to finish, which means you will actually finish them, which is the only thing that matters at the start.
What they have in common is that all five do something the second you run them. That is the feeling worth chasing, and it is the reason people keep going long enough to build the big things later.
If you want to know what a first lesson is like before any of this, the grown-ups' version is what does a first coding class actually look like. And if somebody has told you coding is not worth learning any more, coding isn't dying is the one to send them.
If you are still in blocks and this looks like a foreign language, that is fine and you are not behind. 7 signs your child is ready to move beyond blocks is worth a look with a grown-up.
Or come to a free trial class and build the guessing game with somebody sitting next to you. One hour, no card needed. Bring a project nobody asked you for.


