4 ms·
Ask HN: Programming curriculum for a 10 year old
I'm a professional software engineer and I'm mentoring a 10 year old kid (Big Brother Big Sister).
I'd like to teach him some programming but I don't know the first place to start. I want to be careful that I'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'd be a lot more laid back in my preparation for teaching but I don't think I have that luxury since with this kid since we aren't together constantly.
I want to give him a taste of what programming is like. Any advice or curriculums you've used would be hugely helpful.
- AnimalMuppet 7y agoI'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.
- danbolt 7y agoI'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 7y agoPyGame 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.
- topmonk 7y agoIf 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 7y agoScratch (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.
- ThrowawayR2 7y agoYou 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.
- WheelsAtLarge 7y agoThe 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 7y agoThe 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.