teaching my son programming

1 view
Skip to first unread message

Joshua Paine

unread,
May 6, 2012, 9:56:53 AM5/6/12
to hn-pa...@googlegroups.com
B is turning 8. He desperately wants to learn to program. He just got
over $100 in gift money, and he wants to use it to buy programming
book(s). I program for a living, primarily in PHP, JavaScript, and
Ruby. But I do not feel like I have a good handle on how to teach it.
More details:

* He wants to emulate me, sure, but notch (creator of minecraft) even more so.
* His goal is to build a game. So far his ideas are all variations on Minecraft.
* He figures it will take him about three years. This is still wildly
optimistic, but at least he realizes not to expect success overnight.
* He has dyslexia. Reading is still slow for him (worse some days than others).

With the dyslexia, I'm thinking that I'll be doing a lot of reading to
him from whatever book(s) we get, that smaller APIs with printable
references (or for which I can make such) will be important, and that
a good color-coding editor will help.

Minecraft and the mods for it are of course written in Java, and
there's some (reputedly) good teaching stuff in Java, but I'm afraid
the verbosity will be an obstacle for him. I'm thinking simplicity and
small vocabulary of Lua or indent levels instead of matching brackets
of Python would be helpful.

Any advice? Hopefully I can get him to scale down his plans or at
least embrace making some smaller games as practice along the way. I'd
love for him to be able to build something (in a lot less than three
years) that's actually fun for him and his best friend to play, even
if simple and short lived.

--
Joshua Paine
LetterBlock: Web applications built with joy
http://letterblock.com/

Eric Kidd

unread,
May 6, 2012, 10:40:47 AM5/6/12
to hn-pa...@googlegroups.com
 2012/5/6 Joshua Paine <midnigh...@gmail.com>
Any advice? Hopefully I can get him to scale down his plans or at
least embrace making some smaller games as practice along the way. I'd
love for him to be able to build something (in a lot less than three
years) that's actually fun for him and his best friend to play, even
if simple and short lived.

That's one of the most important lessons in programming, at any level: Every big program starts out as a little program. Could you frame it as a challenge? Can he write a fun game in 100 lines of code? Can he draw something cool on the screen? What's the simplest thing that makes people go wow?

Python is an excellent choice, because it's easy for beginners but still a powerful tool in the hands of an expert. But if he's interested in games, you might also want to look for a kid-friendly game engine with a scripting language. This would allow him to ignore graphics and physics for a while, and concentrate on game logic. There's undoubtedly something like this for Python, but you might also want to look further afield. And there's nothing wrong with modding existing games either, especially if there's a scripting language involved.

For an older student who already knew some basic object-oriented programming, I'd actually recommend taking a look at UnrealScript. It comes with an excellent game engine, a well-documented toolchain and plenty of docs, but the language itself is also especially well-suited to building games. I'd say UnrealScript falls somewhere between Python and Java in complexity, but it has a few special tricks (like object states) that make excellent sense for writing game logic.

-Eric, occasional game developer

Colin Putney

unread,
May 6, 2012, 10:57:37 AM5/6/12
to hn-pa...@googlegroups.com

On 2012-05-06, at 6:56 AM, Joshua Paine wrote:

Any advice? Hopefully I can get him to scale down his plans or at
least embrace making some smaller games as practice along the way. I'd
love for him to be able to build something (in a lot less than three
years) that's actually fun for him and his best friend to play, even
if simple and short lived.

You might also want to take a look at Etoys[1] and Scratch[2]. They're programming environments designed for kids. 

Colin

Noah Gibbs

unread,
May 6, 2012, 12:12:37 PM5/6/12
to hn-pa...@googlegroups.com
I was going to say...  8-year-old and dyslexic?  *strongly* consider Scratch first.  It's all the power of Smalltalk under the hood, it's portable and it has excellent libraries for sprites, collision detection and general 2D visual programming with (basic) audio.  Won't teach function/method calls (it uses signals for that and concurrency), but it will teach nearly everything else he'll need to switch to a "real" environment later.


From: Colin Putney <co...@wiresong.com>
To: hn-pa...@googlegroups.com
Sent: Sunday, May 6, 2012 7:57 AM
Subject: Re: teaching my son programming

-rada-

unread,
May 7, 2012, 9:47:35 AM5/7/12
to hn-pa...@googlegroups.com
> With the dyslexia, I'll be doing a lot of reading to him from whatever books we get. 

Kindle (at least my model) has an amazing text-to-speech feature. Some people find it robotic but I find it very tolerable and even preferable (less distracting) to audiobooks. Increased text size and line spacing help as well. 

Some publishers opt out of this feature so if you go that route make sure your book has it. Good luck.

Niels Olson

unread,
May 7, 2012, 2:34:27 PM5/7/12
to hn-pa...@googlegroups.com
If you go with python, one thing that really did come to pass after
all the fanfare died down has been the view-source function in OLPC's
Sugar interface. It has been running quite well now for over a year.
You can view source on a game. For example, you could change the
colors of the game pieces, move on to changing speed, then change
shapes, change the board, etc. It might also be instructive to see how
much code goes into these simple games.

sugarlabs.org

There are a number of options to run it

-- an XO, which can probably be found on eBay
-- QEMU
-- Install the Sweets repo to run Sugar on top of another distro:
http://wiki.sugarlabs.org/go/Community/Distributions/Sweets_Distribution

Joël Franusic

unread,
May 7, 2012, 2:35:45 PM5/7/12
to hn-pa...@googlegroups.com
For what it's worth, here is some advice from my friend who helps run tigsource.com (which is where Notch announced his early version of Minecraft):

"Start SMALL. Any project that takes longer than a couple months is going to fail at this point. Start with gamemaking tools like GameMaker or Unity. The goal should be to make lots of little games. Any time there is a BIG game idea, it needs to be encouraged to break it down into smaller ideas that can be made into individual games. The knowledge and experience can later be put into a bigger game. But I think with game programming especially, you want to encourage and facilitate small successes early on, which means almost forcing them to not work on large projects."

Chris

unread,
May 8, 2012, 9:41:48 AM5/8/12
to HN Parents
I almost made the same comment but then remembered the last time I
tried text-to-speech on a programming book...ugh! TTS is great for
long passages of text like a novel but becomes very hard to follow
when it hits a code example or worse, and illustration of the output a
code sample generates.

On May 7, 8:47 am, -rada- <rvarshavsk...@gmail.com> wrote:
> > With the dyslexia, I'll be doing a lot of reading to him from whatever
>
> books we get.
>
> Kindle (at least my model) has an amazing text-to-speech feature. Some
> people find it robotic but I find it very tolerable and even preferable
> (less distracting) to audiobooks. Increased text size and line spacing help
> as well.
>
> Some publishers opt out of this feature so if you go that route make sure
> your book has it. Good luck.
>
Reply all
Reply to author
Forward
0 new messages