David Brin has an outstanding article up on Salon titled Why Johnny can’t code.
I’ve been the chairman of the National Center for Women & Information Technology for the past two years and have learned an enormous amount about the sociology of computer science, especially among women and kids. This summer I decided to “practice what I preach” by teaching my Alaskan 14 year old neighbor Eric how to program. I received a bunch of interesting comments and eventually settled on Ruby – which we are making ok progress with.
However, Brin’s article smacked me over the head. I learned how to program on an Apple II using BASIC when I was 13. I eventually learned Pascal, but did most of my programming – until I was in college – in BASIC. When my best friend Kent came home with a prototype for the first TI PC in 1982 (his dad – ultimately one of the early Compaq guys – was the TI project manager for the PC) we programmed a complex Yahtzee game in BASIC (the TI graphics were incredible – I learned a lot about abstraction manipulating them.) In my first real job (in 1983) at a company called Petcom I wrote two sophisticated commercial programs in Basic (PC-Log – Oil Well Log Analysis; PC-Economics – Economic Forecasting for Oil and Gas projects). Lest you wonder how sophisticated this could get, I also contributed to an Oil and Gas Accounting System (PC-Accounting) that ultimately used Btrieve as the database engine and probably could have been a competitive stand-alone accounting system in the 1990’s if the company had evolved that way.
So – when I read Brin’s article, I longed for the simplicity and beauty of BASIC as a teaching tool. Yeah – I know – it teaches you “all the wrong stuff”, but as I’m working through basic looping with Eric, I’m not sure objects and methods are the right way to learn this stuff. Maybe I’ll hop on eBay and buy Eric an old Apple II.