Additional profile information on Alfred Thompson at Google+
Philip DesAutels who works with major universities in the Boston area has long had his finger on the pulse of the local, national and international Information Technology workforce needs. At his blog he writes about what he sees as the needs for the workforce in the near future. He sees the need for a lot of serious computer science professionals but he also sees that the base level of computer skills in the wider work force is moving up. And yet I hear from some high school teachers that today's students often seem to know less about using computers for productive work than students of a few years ago. That worries me.
Somewhat related to Philip's post was an article in Eweek that reports that salaries and job satisfaction among IT people working with Microsoft technologies is on the raise. Only a small percentage of these IT workers are seeing their jobs being impacted by outsourcing. Clearly, despite what the naysayers are saying, IT jobs are not going away. They continue to be a good way to earn a good living and have a job with a lot of job satisfaction. These are messages we need to communicate to parents, guidance counselors and of course our students. If we fail to get that message across we may one day, all too soon, find ourselves with a serious shortage of the sort of technical people that a modern society really needs.
This article by the author David Brin set off a long round of discussion in Slashdot. A one line summary of the article would be "BASIC used to be on every computer a child touched -- but today there's no easy way for kids to get hooked on programming." And in some important ways he is right. In other important ways he's not. But let's start with where he is right.
BASIC did used to be on every computer that a child, or most children anyway, touched. There was BASIC in my old TRS-80, Apple IIs had BASIC, and so did the Commodore Pet. The Olivetti P-6060 (anyone else remember those?) had BASIC on it. DOS computers had Qbasic or GW-BASIC. I could go on and on showing my age and putting young people to sleep but you get the picture. A child could sit down at a computer, type some commands into the computer and watch the computer do sometime. It was easy, it was exciting and it was the same everywhere. Lots of kids got hooked on computers playing with BASIC. Of course not everyone was thrilled with this. Dijkstra is famous for claiming "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration"
Today BASIC is not on many computers at all. At least it is not a standard and the various versions of BASIC that are available are not the same BASIC that many of us grew up with. There are several versions of BASIC that are available for free and children can get them and they can install them but there are not there to discovery easily and by accident. Even worse they are not the simple interpreted BASIC of old. BASIC like most other languages have been optimized for professional developers. While a great many students learn how to program using Visual Basic (available free as Visual Basic Express) it is not quite as easy as the old versions of BASIC were.
While we are talking about Visual Basic Express, there has been some talk about adding it to the operating system as a standard part of the installation. Dan Fernandez does a great job of discussion why the decision was made to not do that. Nothing in the computer field is the same as it was 20 years ago. Back in the old days nothing took up a lot of room but today everything seems to take up a lot of room. Even with large disks the tolerance for filling up that space with things most people will not use is pretty low. The command line compiler for the .NET languages is part of a normal OS installation BTW. That is not well known.
So where is David Brin wrong? I think there are a couple of ways for students to get hooked on programming. Simple, friendly development environments that allow students to explore programming. I'm thinking of tools like Alice, Squeak, and Scratch among others. I especially like Alice and can see a lot of kids getting hooked on programming by using Alice. The only down side of these tools is that they are fairly limited to their own environments. There is also Phrogram which is a very BASIC-like language with a simple IDE that beginners can experiment with. It's not the same as the old versions of BASIC but I'm not convinced that is really a bad thing.
The biggest problem with the old versions of BASIC is that they didn't have a natural upgrade path. Few of these other development environments have a natural upgrade path either and that is a concern. Phrogram is something of an exception there of course. This is a challenging time for hobbyist programmers and young people who want to experiment with programming. This is one reason that I really wish we could get more middle school exploratory courses in programming. I think that good teachers can make a real difference. I believe that the problems Dijkstra saw with BASIC are more the fault of bad teaching (mostly self teaching) rather than the language itself.
The Visual Basic Express team just posted a number of tutorials with accompanying screencasts that show how to do things step by step. These videos show how to create your first Visual Basic program using Visual Studio Express. IF you've ever wanted to have someone show you how to get started with Visual Basic Express you will want to check this out.
[Note: I have heard from teachers that they are using them in class. That's wonderful. I hope others find them useful as well.]