
Ask HN: Programming curriculum for a 10 year old - mavsman
I&#x27;m a professional software engineer and I&#x27;m mentoring a 10 year old kid (Big Brother Big Sister).<p>I&#x27;d like to teach him some programming but I don&#x27;t know the first place to start. I want to be careful that I&#x27;m not aimlessly pecking through scripts with him and wasting his time on a screen (he plays enough video games already). If it were my kid I&#x27;d be a lot more laid back in my preparation for teaching but I don&#x27;t think I have that luxury since with this kid since we aren&#x27;t together constantly.<p>I want to give him a taste of what programming is like. Any advice or curriculums you&#x27;ve used would be hugely helpful.
======
AnimalMuppet
I'd start with what he wants to do. Is there anything he wants to do that a
computer can do? Can you make that a project for him?

Then, given the project that he actually wants to do, what does he need to
know to be able to do it?

See, at 10 years old, you're trying to whet his appetite. You're not trying to
give him skills that will turn into a professional career - he's not ready for
that. So give him something where the learning will pay him back in terms of
being able to do something that he wants to do. That whets the appetite better
than teaching him something that, at the end, he's learned something that he
doesn't care about.

------
WheelsAtLarge
The most important part of learning to program for a beginner is to master the
logic and the general tools you get in a language to implement your ideas.
Some people can get it right away others take a bit more but if you try to
force the logic and the intricacies of a language like C++ at the same time
then it becomes a more difficult task than it needs to be and it's a recipe
for giving up because it's too hard.

I suggest you teach a language like Scratch. The ideal way to do it is to
agree on a project that the 10 year old and you agree on and set a plan to get
there. Working towards a goal gives you both a goal to work towards and a
reason to continue forward. The project doesn't have to be unique but you both
need to agree on it and develop a road map to get there. You should also set a
deadline.

Once you finish the project you can move on towards a different language and
more advanced subjects but always using projects to help you move forward.

------
sn9
_The Little Schemer_ , _The Seasoned Schemer_ , _How to Design Programs_ ,
_Realm of Racket_ , etc.

Not programming but perhaps even more invaluable: _Learning How to Learn_ on
Coursera. Also, Khan Academy.

------
ThrowawayR2
You could try educational games:

Human Resource Machine covers processor level programming in a fun and quirky
way and should be understandable by a 10 year old:
[https://tomorrowcorporation.com/humanresourcemachine](https://tomorrowcorporation.com/humanresourcemachine)

Screeps allows players to program little avatars in Javascript to do things in
a virtual world: [https://screeps.com/](https://screeps.com/) If you search
through the HN archives, it's been discussed before. Though it's nominally a
MMO, buying just the base game allows playing in sandbox mode offline.

------
topmonk
If he likes board games, you might want to try Tabletop Simulator and writing
some simple scripting for games that he invents. (It uses lua)

It's the fastest environment to go from zero to ”something cool” that I know
about. And using the steam workshop, there are literally tens of thousands of
games and projects with various different types of game pieces, scripted dice,
etc. already created there.

Also quite cheap at around $20. And right now, half off.
[https://steamcommunity.com/app/286160](https://steamcommunity.com/app/286160)

------
__d
Scratch ([https://scratch.mit.edu](https://scratch.mit.edu)) is an ok
introduction to thinking like a programmer, although it might be a little too
simple for a 10yo gamer ...

I'm finding the leap from Scratch to Python + PyGame is kinda challenging for
my 8yo, but he's getting there with some hand-holding.

------
danbolt
I'm not 100% sure what a good learning curve would be, but I could imagine
since he likes video games, making some simple stuff would blend over well.

I'm curious if anyone else here could suggest something similar to PyGame,
since it doesn't require a lot of technical knowledge compared to languages
like Java or C++.

~~~
__d
PyGame Zero ([https://pygame-zero.readthedocs.io/en/stable/](https://pygame-
zero.readthedocs.io/en/stable/)) might be worth a look? Its aim is to bridge
between Scratch and PyGame proper.

