I have one 13-year old child in my family who is really interested in programming but doesn't know a thing about it. One afternoon I decided I would teach him some but I didn't have a clue where to start from. Also he had quite strong opinions how programming works and how easy it is to create games without any knowledge of the area. I decided to start of with some basic HTML and CSS but he wanted to go straight to game programming which I don't have a clue at all (I have done mostly low level C programming and some web programming).<p>Do you guys have any good tips how to teach programming to this kind of child so that it will keep him motivated?
Game modding is an easier way to get your toes wet in this area. Find an open source game, a supportive community and generally try to supply resources to the kid.<p>Learning is something that comes far more naturally than teaching. If you aren't qualified to teach it, then don't try. Instead, facilitate their self study process. It will be far more effective and a better experience for both of you.
Hey drodil<p><a href="https://news.ycombinator.com/item?id=1076825" rel="nofollow">https://news.ycombinator.com/item?id=1076825</a><p>has an old (but still relevant) discussion of this.<p>I got interested at 11, wanting to make games, but my expectations (and those of my friends, particularly) were far too high. It wasn't until I was 15 or so and got interested in the function of computers and mathematical logic that I really learned anything.<p><a href="https://projecteuler.net/" rel="nofollow">https://projecteuler.net/</a> fed my hunger for challenge, knowledge and quick(ish) reward.<p>Edit: I started in Python and Pygame at 11, continued Python at 15 and then got into Clisp.
>so that it will keep him motivated?<p>You says he is interested. Then he won't lose motivation. Even if it does, it will keep coming back to him. With the help of the Internet, he will figure things out on his on.<p>As a starter, maybe give him something like this <a href="https://processing.org/download/" rel="nofollow">https://processing.org/download/</a><p>He can start making 2d and simple 3d stuff with it quite easily.
It sounds they want something tangible. See a result.<p>What's your child's aim? Impress they friends "I know game design!" Because that's impossible in a few weeks, or years, with expectations like beautiful visual effects.<p>Android/iOS also have a pain of structured languages.<p>Perhaps something like 100 Javascript steps per day. I did search, and perhaps another HNer could follow, but there was link 3-4 years ago about a person that gave herself a javascript challenge per day, starting from really basic HTML/CSS, to some quite interesting creations, in the space of a few weeks/months.<p>Then given some grounding in JS, extend that with something Node and React-based later (but don't announce that yet? Sounds too scriptured?). With a low-level understanding, you could certainly explain problems novices encounter with things like string inspections and data types.
I would try starting with Scratch first, to see if he likes it and because it's very easy to get started, with very little friction. If he seems to enjoy it and seems to understand the way of thinking, I would move to Python with Pygame next.<p>A friend of my created a Udemy course where he teaches how to build games such as Flappy Bird or Pacman in Scratch. It could be a good start. Let me know if you'd like a coupon (would cost $10).<p><a href="https://www.udemy.com/programming-for-kids/" rel="nofollow">https://www.udemy.com/programming-for-kids/</a>
Can she/he do non-twitch games like Sokoban, Bloxorz, Incredible Machine? Not just the beginning levels, but the more advanced levels. If so, advance to one of the thousands of programming enviroments that've been developed for kids. Unfortunately, there's currenly no clear winner.
My favs are Racket, Alice, Logo, TouchDevelop, and soon, <a href="http://code.world" rel="nofollow">http://code.world</a> (but not yet).
Bit pricey at $180 retail, but I can recommend Anki's Cozmo learning robot. Seeing a robot "grow" is the kind of magic that can unlock a lifetime interest in AI. App is intuitive, and with the right supervision even the Python SDK can be grokked by tech loving 13-year-olds!<p><a href="https://anki.com/en-us/cozmo" rel="nofollow">https://anki.com/en-us/cozmo</a>
I would suggest trying a simple game framework such as Löve or pyGame (or pyglet). The former use the lua language and the latter python. I guess Scratch could also be interesting, but I think some 13 year olds may not be attracted by it's "childish" appearance.