Learning to program

Youngest walks up to me about a month ago and asks how you program (write software for computers).

Oh joy! 🙂

Now I’ve talked about learning to program before and even a second time. I always come back to Karel the Robot as a great way to learn how to program. Why? Because you get to learn the constructs of programming without being burden by the constructs of programming. You can learn about loops and conditionals and variables and logic and flow, but you don’t have to spend 3 hours debugging a problem to find out it was because you misplaced a comma. And it doesn’t matter if you really do anything useful or not at this stage, in terms of gaining some employable skill (no job listings for Karel knowledge); once you learn how to program, then languages are just languages and toolsets are just toolsets.

Back when I looked at the LEGO Heavy Weapons book, No Starch Press offered other books to me to review. I asked about the Python for Kids book because it looked like it might be a great way to start the kids into programming. They sent me a copy, but I have yet to go through it. Mostly inertia on my part. Daughter asked me about it, but just a passing interest. And I must admit, while I think the book is well done for what it is, I still think it’s not a perfect start because there’s issues of language that get in the way. You have to get bogged down by syntax of Python. It’s not horrible of course, but I know things can be simpler. I think this book would make a good “phase 2”.

When Youngest asked me again, I went looking around. I found Scratch from MIT.

I think I’ve found what I’ve been looking for.

Youngest and I played around with this for a bit, doing the tutorial. I saw how Scratch gave you all the language, all the logic, even some advanced things like variables, lists, and inter-object messaging. It’s actually pretty cool. I liked the way you just drag and drop to make logic go. It also is able to give you direct feedback, which I think is good for capturing a child’s interest in the topic. I encouraged Youngest to “just try it”. What would happen if? Just try it and see! The environment is very forgiving, but even still, you can make mistakes and have to learn to debug.

I also really dig that all Scratch projects are “open source”. You can look at what others have done, and then you can look at the “source code” to see how they did it. I was able to find a simple game on the site, then show everyone how they made it happen and how neat that was.

So I’m working on this with Youngest. I told him a simple project he could start with would be reinventing comics. We all love Pearls Before Swine and I told him he could start by taking a simple Pearls comic (maybe just Pig and Rat talking to each other) and recreating it in Scratch. It’s a simple project, simple goals, but challenging enough to get your feet wet with.

And we joke… with Youngest programming… Daughter creating artwork and music… Oldest creating artwork, music, and overall design work… they all like to make movies, do voice work. Oh geez… I’ve got an in-house dev shop now!

Man, I wonder how far this ball will roll. 🙂

12 thoughts on “Learning to program

  1. Fantastic post mate, seriously. Our little dude, like yours, is beginning to ask what I do for a living in a more curious sense (I’m an engineer – avionics). Engineering talk is dreadful so we picked up some Lego Mind Storm kits to give him an idea, get the creative juices flowing. Just this past Tuesday he asked out of the blue how some of his fave websites and particularly the games are created … Needless to say we will be playing with Scratch later this morning! Thank you!

    • There you go! I think LEGO Mindstorms is an awesome thing. My kids never got into it, but it’s certainly a wonderful way to really help kids have fun and be creative… and maybe learn something too. 🙂

      Y’all have fun!

  2. My son and I wrote a side scrolling space game with scratch a year or so ago– it was a great experience. My son is now wanting to learn C so he can write his own Arduino programs too– that’s the next step. When they are ready get them an Arduino too. Very cheap on dealextreme ($10).

  3. Redstone circuits in Minecraft are great for digital logic learning.
    Minecraft is Turing Complete so the only limits to your logic structures is size.
    It is interesting watching the kids debug and optimize their circuits.

    • You know, we just haven’t gotten into Minecraft around here. No one’s had the interest. I admit it seems really cool, and I probably have lost some geek cred because we haven’t become addicts. 🙂

  4. Pingback: More stuff for learning to program | Stuff From Hsoi

Comments are closed.