Yesterday morning, I'm sitting at my laptop, trying to wake up, reading the latest on #reprap when he asks me "how do you learn to program a computer?" I wanted to yell, "OOH, OOH PICK ME, I CAN HELP!", but instead I handed him the two books that have been waiting for him. They were given to me at about the same age and they cover good ol' 8-bit computers and BASIC.
Now, perhaps I'm too nostalgic (or just repeating my learning steps) and should start him with C or HTML or any one of the dozens of mainstream options, but starting with BASIC has always seemed "right".
There is a great article from 2005 that explains my sentiment called "Why Johnny Can't Code" in that article, the author explains that BASIC was ubiquitous - as you were given a computer back in the day, you were also given a manual for BASIC. Learning to code in basic was like learning how to use a web browser today - expected as part of the experience.
I've had more than those books waiting for him...I pulled out the C64 yesterday, along with the Commodore monitor and the 1541. He was excited. "I like the way the keyboard sounds dad..." - I wanted to cry little tears of pride :)
He started reading the book immediately and spent an hour calling me in to show his PRINT statements. Next thing I know, he's doing math and INPUT. We would take his programs and I would add one more concept, then let him change it again from there.
About midnight, I found myself in the attic, pulling out the C64 Programmers Reference guide. (I have two - and knew exactly where they were...sad, huh?)
|Oh, the memories...|
When I was 12 or 13, I knew this book inside and out. I remember at that time thinking that the only thing I didn't really understand was the machine language section and the schematic included in the back of the book. Turns out that a computer science degree helped - that stuff makes sense now.
Today, I'm just going to let him find his own way with the C64 and the books - back to that freewill - and see what happens.