Teaching My Son to Program, When I Don’t Know How
March 23rd, 2008 | Published in Blake, Programming | 5 Comments
I was already short on spare time before I took on this project. Now it appears that I’m in way over my head.
My son, Blake, who is ten years old, told me that he wants to learn how to program computers. I thought I could probably help him because when I was his age, I did a little programming with Basic. In fact in elementary school, I was part of the Computer Club. I was a wiz with computers back then. I figured once a wiz, always a wiz. I was wrong.
It turns out that programming (anything useful anyway) takes a much higher level of programming language than Basic, and since we’re on Macs, we need to learn how to Program in Objective-C using a Cocoa framework, Xcode, and Interface Builder.
What does that last part mean? I don’t really know. It’s very, very confusing.
Rising to the challenge, I thought I could learn just enough to turn around and teach it to my son, so I bought a book called “Beginning Mac OS X Programming” and started studying it one chapter at a time. It seemed ideal. Both of us would end up learning it together. As the teacher, I would really learn it, because the best way to learn something is to teach it, right?
Now 150 pages into the book, I’m completely confused.
We covered variables and some basic conditional statements. And now we’re stumped. Rather, I’m stumped — which means he’s not getting much further. I feel bad for him because he wants to learn to program right now, and I can’t help him. I realize that there are probably classes out there, private tutors, maybe even audio/visual resources available for check out, which would cover the material in a way he would understand. I suppose we’ll start looking for those types of resources.
Lesson to be learned here? It’s difficult to teach something I’m clueless about.
Additional lesson? Research, then commit. :-)

March 23rd, 2008 at 1:58 pm (#)
Awesome effort on your part.
OSX also has a few scripting languages bundled in that might make learning the fundamentals of programming easier to teach. Not having to deal with a complex interface and compilation issues etc.
Try Ruby, Perl, or even just Bash shell script. A simple text editor and the terminal window is all you need.
Once he learns the basics, then he can
move on to Obj-C
–
sent from my iPhone (@ihop) lol
March 25th, 2008 at 12:45 am (#)
I find the greatest problem is lack of metacognition. My brain is screaming at me to take a step back and fit the bits into a greater picture. I can do monkey-see-monkey-do for bits of changes to something, but I lack knowledge of the whole.
And reading books is hilarious. ‘X’ number of pages of ‘what it is all about’ at a seemingly simple level, and then bang!, lost in deep space.
You have my sympathy, and I have my sympathy.
Onwards and upwards.
March 25th, 2008 at 4:19 am (#)
I agree with Arturo… Try some web application programming, using your Mac’s built in web server to display the results. In fact, if Blake has his own computer, you can set your Mac as a server internally at your house, and he can access his programs from elsewhere in the house, which he might get a kick out of. Then, if you are OK with it, he could even have some real online space to experiment.
He also might not really know what he want to do yet, so a primer on HTML might be useful also… Then he can build web applications that do interesting things, all viewable using his browser, an interface which is probably very familiar to him. You could also go into using mySQL for him to build a database for his toys or friends or something, and learn to write the applications to access and edit the DB, then display certain results in a page.
Hope this is helpful :)
-Brian
March 31st, 2008 at 6:21 pm (#)
I would start Blake on ACSLogo… ;-)
http://www.alancsmith.co.uk/logo/
April 27th, 2008 at 6:09 pm (#)
I appreciate your dilemma. No doubt, you will get varying opinions, any number which might - or might not - work for you.
In our family, we home-school our 2 kids, and I’m a computer professional dad. In our case, we found what I think to be a VERY good intro to programming, that will motivate kids to learn. (Will it work for a 10 year old? I don’t know.)
We have used a book to teach the programming language Python. The book takes you through how to program simple games in Python. The book is “Python Programming for the Absolute Beginner”, by Michael Dawson. It is about $20 on amazon.com. Python is nice because:
- It is easy to learn how to do simple things quickly.
- It runs equally well on Windows, Mac, or LINUX
- It has a thriving community at python.org
- You don’t have to buy any tools
- You actually LEARN how to program, instead of just how to use a tool
You might give it a try. I don’t have any financial interest in this. This isn’t the only way to learn programming.