The Silent Bridge

Teaching Programming to my 9-year-old – any ideas?

Some of you know that my background is Computer Science Β I got started programming when I was Ethan’s age with my Timex Sinclair 99. I made some awesome games for that thing back in the day… good times…

So, my question… what is the best language / tool / platform to teach a 9-year-old programming? I’m thinking about either using the Android wysiwyg tool, Python, or even a good old-fashioned BASIC emulator.

Daily Photo – The Silent Bridge

When I woke up in Nikko, snow had been falling all night. I started a long walk from the old lodge where I was staying towards the older area that has all the temples. Along the way, I passed by this old bridge with it’s ancient and lavish design. Underneath it, the crystal-clear water flowed quickly as the snowmelt was giving it a bit more action than usual. It was very peaceful and nice.

High Dynamic Range Photography

  • I used to do programming before I decided to go into business instead of engineering, computer science, industrial design… list goes on…

    Why not start with the absolute basics …. BASIC or … Visual Basic then when he’s got a grip on the structure of programming and how it all works, move into C++ and Java.

  • I learned QBasic in first grade. Basic is a great first language for young’uns. I still remember in HS thinking how easy Algebra was: it’s just stuff I’d learned already in QBasic! πŸ™‚

    I went on to VB, VBScript, ASP, HTML, CSS, JavaScript, C++, and PHP.

  • casusan

    Beautiful shot Trey – so peaceful – I love to listen to water like this – and of course the ocean while I sleep! Am sure you’ll pick the right program for Ethan – you both will have fun!

  • This thread might help:

    (ok, slightly different, but might be a start)

    I’d go with maybe Ruby, Python, or if you can find anything on it, KPL (now renamed: )

    Not knowing your son, or your level, it’s a hard one to gague. I started with Pascal at about 13, tho I had some help and a LOAD of books.

    Ruby – and specifically Rails – might be a good way to start if he knows a bit of HTML (or could learn it). The feedback loop is quite quick once you get it setup.

  • BTW, the android thing looks good – nothing like getting things running on your “favourite” portable device. Be prepaired to buy another phone tho πŸ™‚

  • Mauro

    Hey Trey,

    Being a programmer myself, I was listening to a Podcast from Scott Hanselman (Excellent programmer in the .NET community). He done an interview where this kid and his dad wrote a book on programming for kids. It sounded really great and it even went into some advanced topics. You can check out the podcast here and he has a link to the book as well

    Hope it helps πŸ™‚

  • Simon Morris

    It does look a nice peaceful spot… a good place for time and reflection. I like the moss down the lefthand side… did the ends of the bridge not warrant capturing at all? Just seems a wee bit overcropped!

  • Me and my brother learned when we were around that age on a second-hand 128k Sinclair ZX Spectrum which brings back a lot of good memories and fun times – it used BASIC and in my opinion is an excellent starting point – plus the old games that came on casette that took ages to load with that bizarre beeping/buzzing noise were awesome.

    For me, the water and foliage steal the show in today’s photo πŸ™‚

  • hey,

    as i started out with learning C# at roughly 12years and it took quiet some time getting used to, Id recommend to start out with C and later move on to C++, which both (especially C++) are a great language for understanding how programms and programming work in general.

  • Jeb

    Hmmm, that is an interesting question. I learned the basics on BASIC. It is structurally simple so it would build a good understanding of loops and stuff. Perl is a great language because it is so flexible and simple, but it does allow for a lot of mistakes, which may or may not be a good thing to start out with.

    Another good starting point is the turtle. You could probably download it for your computer, but there is a web based version at:

  • I started with basic when I was a kid, but I’d recommend actionscript (yep, everyone hates adobe right now, blablabla πŸ™‚ for one simple reason… you put in small amount of code, and you get a big result! it’s also got the visual IDE so he car draw and paint his graphics straight in, give them identifiers and suddenly has access to their x and y… it’s the speed that’s the winner, it certainly gave my kid brothers the bug, wanting to make flash games, after they saw how simple some things were they stuck it out a bit longer to get to the more fun stuff (3D, augmented reality, touch screen etc…)

    also, flash is a 30 day free trial, if you don’t already have it. There’s also loads of tutorials from the community! google what you want to make and append “in flash”, and you’re away.

  • oh yeah! actionscript is also based on ECMAScript (javascript) so it’s a great entry for a whole world of OO programming in general…

    I dunno, I personally program in C++, javascript in my day-to-day work, but for reasons mentioned above, can’t beat flash for it’s fast learning curve… we taught it at our university for that reason… ok enough flash love πŸ˜€

  • Trey,education is important in this day and age..I for one am giving my daughter the best i can possibly give at the end of the day its up to them. As a father it is both yours and mine to teach our children the scriptures,we at least give them that chance to know who the real Creator is and maker of all things and they can choose which life to live the worldly or spiritually. The time of the end is closer than we think,we may laugh or scorn one another but its a reality.I’m from an home of unwanted kids who for 14 years was wiped beaten but came out fighting, struggled all my life have not been the best parent but my daughter can play piano,flute speak english,Cantonese and now in china having a crash cause in Mandarin. And all this is from my heavenly Father.There have been no hand outs just hard work and at 69 still working and my daughter has one year to go at school. Trey all this this technical and computers leave me for dead but the bible teaches us right from wrong and not to be part of this world which is not easy. So the only good advice I can give is Study the Bible with your family. many may think I’m the idiot but I can take it.Hope this give you some thought.

  • PS
    remember you’ll be saving live mybe your own

  • Andreas

    Hi Trey,

    have a look at
    It’s especially designed for kids, first learning some concepts about finite state machines and then introducing various programming languages, all explained in a way children can understand while playing with it.
    A more detailed german page is also availabe at
    Though, the program is available as both english and german.

    Have fun!

  • Dirk

    I did my first programming steps with Basic but learned a lot about loops and such things with Logo and it’s turtle. I thinks it’s a good way to show results instantly. Have a look at the Wikipedia article:

    Good Luck! My daughter was absolute uninterested…

  • John
  • John

    Oh, and Squeak Etoys:

  • Trey, you should try “Small Basic” from Microsoft. Its a lot of fun to learn programming on it for kids. Its got a lovely IDE, do give it a try, you can get it at the below URL for free –

  • I lean towards C# since this is what I develop in but VB.NET would be a great place to start.

  • Before you get into text coding try Scratch:

  • Gail in Montana

    Wow, Trey, I’m farther down on the list then I was when I posted last night, lol. Is there anything you don’t do. Programming at Ethan’s age, what a smart fellow. But we already knew that ;-). I love todays photo and saved it in my pictures, but not the right shape for a desktop wallpaper. I think I have enough that are, lol. I love the flowing water over the rocks, the reddish bridge, the stream bank, the all the color in the trees, and the rapids!! Absolutely beautiful!! Thanks for sharing πŸ™‚

  • Fantastic suggestions everyone — I knew there were a lot of cool geeks here, but glad to see you all come out of the digital woodwork! πŸ™‚ hehe

  • I’m pretty sure you’re a Mac guy so this may not help but I’ll second the “SmallBasic” suggestion. A great implementation and documented specifically for teaching kids. The API is set up to make the fun stuff (graphics) easy. It also include Logo-esqe Turtle graphics if you want to start there before moving on to the more typical graphics primitives. My 11 year old is enjoying it and, frankly, so am I since I’ve not programmed BASIC for about 25 years!

  • Turbo Pascal! Oh, wait. You know I’m old because I’m recommending a DOS language tool. My suggestion would be something similar in the C/C++/C# vein. It doesn’t matter which platform, but he may as well get used to abstraction and objects right out of the gate. Otherwise, it’ll just seem confusing later.

  • I recently read a post over on Read Write Web. I am guessing your might have already saw it, but if not, here is the link.

    Several of the tools mentioned in the post have been mentioned here.

    Good luck!

  • I would say pick up some scripting languages as well.
    Perl is easy to get a hang of and also is great for automating every day activities.

  • charles

    Hi Trey,
    I started programming 7 years ago when I whent in computer science here at UQAM. The first language we used was ADA. The I moved to C and Java short while later.
    ADA was great to teach structure, type safe implementation, object oriented and much more… but probably not suited for a 9 yo kid.

    Great picture.

  • Matthew M

    I would really recommend Dark Basic Pro. It has a BASIC-like syntax but is game oriented and has a very easy to use modern 3d graphics engine. It’s free to download and use(ad supported). Start with that, then later on, introduce them to python. Dark Basic will teach them how to code; Python will teach them to code correctly. Beautiful picture Trey, though I can’t wait for more Iceland shots.

  • STOS on the Atari ST was always a great choice too!

  • the rocks under the bridge left und left behind are unnatural light and purple’ish….could be like on the right side. after playing in photomatix in PS and adjust the opacity in this area on a second layer over one of the originals.

  • I’ve been programming since I was 21, before the PC was invented…LOL I first learned Basic programming language and then COBOL and have since learned C, C++, C#, HTML, .ASP, .NET, e.t.c. Phython would be a great starting point for kids, it’s open source and used by NASA and Google. Here’s a good book that’s highly recommended – (Hello World! Computer Programming for Kids and Other Beginners by Warren Sande and Carter Sande )

  • Travis;-P

    I am a mechanical guy so I learn visually. You might try several development board type of programming. Lego Mindstorm is popular for starting out. You build things with legos and program them to move around or perform some action. It’s a good way to visualize your code structure. It won’t take long to get past that and into either BasicStamp or Arduino development platform. These boards can do all sorts of cool stuff including flashing lights, operate motors and even drive displays.
    I follow and for ideas and tips.


  • BASIC has the fundamental flaw of not being a particularly transferable language. I learned on BASIC, and when I started doing some more formal program training (high school and then Computer Engineering in University), it was obvious how poorly regarded BASIC was. Spaghetti programming, non-modular, non memory management, etc..

    Turing is a language developed purely to teach broader programming skills. It’s fairly natural-language, uses structured programming, object-oriented, pointers, etc.. So it has plenty of room to go from basic “Hello World” to more advanced stuff before moving on to C, C++, Java, etc.. It has no real-world application, but it was developed as an introductory language.

    But Java is more commonly used to teach these days. The danger there is that I often run into Java programmers who have never used ANY other language, and wonder why we’d want to hire someone who knows C or C++, while we’re wondering why we’d want to hire someone who’s purely Java.

    Oddly enough, I find most of my programming on the job these days is VBA, which hits moments of tremendous annoyance when I run into what’s missing.

  • Tom Wolf

    Processing ( Very simple setup, short learning curve, lots of resources, a fast feedback loop to encourage learning for beginners – and an introduction to C style syntax.

    This will also provides a very good future segue into Arduino coding.

    tom w wolf

  • Great suggestions!

    Wow… I knew there were a lot of tools out there… and easy-to-learn options…. but not THAT many! Very good choices we have here – and thanks for all the links! I should put this into a long list of “Options for Teaching Coding to Kids!”

  • Cool image!

    May I suggest Ruby as a language to learn for your daughter.

  • I think that’s pretty awesome by the way teaching right now.

    I’ve been teaching my school-aged daughter C# and while she’s far from coding something from scratch she’s really starting to “understand” some things.

    On another note, one of the guys in our QA group is taking classes at Baker College. They teach some languages using a simulator environment:

    While I really question it’s purpose for my 36 year old co-worker — It’s probably not bad for kids πŸ™‚

    Good Luck!

  • Seeing your own program produce results on the screen in front of you is the key “wow” factor for anyone starting programming. Once they realize they are creators the motivation should kick in.

    I started on a Sinclair ZX80 and seeing my program come up on the tv screen was like magic for me. For children today, with all the video games etc and then internet websites around that might not seem so amazing.

    Even kids who use facebook have already experienced the magic of their information being compiled for others to see. So the wow factor is lost a bit there, but learning to program Android or iPhone and seeing your program appear on the phone device would be a real “wow” moment I am sure. Once the magic kicks in, the motivation to learn many languages will be there for a long time. I felt the same when I first made an HDR image and now I want to learn so much more about it πŸ™‚

    Good luck.

  • Keith

    My son learns Scratch in school.

  • Scott

    Another endorsement for Alice: The graphical approach helps teach logic without the hinderances of syntax.

  • Tim

    I second the recommendation for LEGO Mindstorm NXT. A great way to teach programming concepts to kids with a fun graphical interface instead of the traditional text-based languages. The other advantage is the immediate tangible feedback of seeing your creation (hopefully) do what you intended to program it to do. Disclaimer: my company developed the software interface, so I am biased.

  • How about Mozilla’s free School of Webcraft? Probably not your initial choice, but web development is pretty big these days.

  • Karl Fredrik Haugland

    As someone planning a future in Computer Science, but have yet to really get into coding, I find it inspiring to read people’s suggestion on one’s first programming language. With Upper Secondary School taking its toll, reading up and down on dry theory behind programming is not one of the top priorities at the moment. I’d loved to get into programming but still, haven’t really been able to “take the leap”.

    I’ve asked a little around and I’ve been recommended loads of languages to get into. Python is without doubt the one I’ve gotten most feedback on. From experience, I know that LEGO Mindstorms is a great way to get an idea of how stuff work… Building robots and then making programs for them using the pedagogic GUI is way fun!

    Let us know what you end up on, Trey; I bet there are several people out here who want to know how to get into/get others into programming πŸ˜€

  • Graham Telfer


    I’m happy to have found your site. I’m just beginning to use HDR after finally retiring my Mamiya and getting a DSLR.

    I enjoy programming too. I use Haskell and Prolog but as far as your son is concerned I think Scratch would be great.

  • Pingback: Serwis laptopΓ³w wroclaw()

Newsletter Sign Up

The most beautiful newsletter ever!