Letters posted here are associated with the following article:

301
Letters
Thursday, September 14, 2006 12:00 AM

Why Johnny can't code

BASIC used to be on every computer a child touched -- but today there's no easy way for kids to get hooked on programming.

The letters thread is now closed.

View:
Thursday, September 14, 2006 03:38 AM

Learned on the C64 and, yes, grew up to be a programmer

Man, this article hit home. I could not believe it when I saw the title; right away I knew exactly what it was going to be about as I have had these thoughts for so long. In the seventh grade at a private school, one of the parents wanted to teach a computer class. So he asked who was interested. I went to check it out and he said we would need to get a Commodore 64. I went home and told my dad, "We need a Commodore 64 for this computer class at school". It really didn't occur to me whether or not we should get one - the teacher said that is what we needed and that was good enough for me. Fortunately, my dad didn't even balk at this and he got me one. We programmed all sorts of things, from little algorithms all the way up to a database to track movies. We even played around with the 2D sprites (little graphics that you can move around the screen) and the built-in sounds that you could use to make music. Just letting us play around with that helped us learn logic. And I think doing that at that age is important. They say your brain is still forming, and I believe that doing these exercises while your brain is still developing prepares you better. Anyway, that lasted a couple years and I went to a public high school and didn't do too much with computers besides using my C64 here and there.

We had the C64 for a while (my dad was even using the C64 for writing things up for his work, and power fluctuations would sometimes make him lose what he was working on). Finally, relatives convinced him that it was just a "toy" and he needed to get a real computer. An IBM compatible PC. So we did. I remember turning it on and seeing the black screen with the C:\ prompt. I tried typing basic commands; of course nothing worked. My uncle finally got it through to me that the only thing I could do was change directories or run existing programs. I was anticipating that this much newer computer would be able to do so much more. So I wanted to see graphics. It was EGA (16 color) and actually another uncle thought that was overkill and we should have just gotten CGA (4 color). There was no builtin support for sprites and so I was not finding anything that animated like my C64. Fine, let's hear some sound. Oh, you can't do that without getting a sound card. By then I was getting pretty disillusioned with this PC concept. Since then I have never found the PC to be as inviting as my C64 that you could just turn on and program.

I went to college and learned FORTRAN and C++. Now I program in Visual Basic and Python and create web pages with ASP, link them to Oracle with packages/procedures in PL/SQL and create dynamic web pages that query the data and display the results using SVG that is updated without needing page refreshes using AJAX. But no matter what language I use, they all boil down to having : IF this THEN do that, DO this UNTIL that, etc. Sure you can make things object oriented and more elegant, but the fundamentals are still the same.

I don't know if I would have been as computer oriented without my experience with the Commodore 64 and I feel sorry that other kids don't get this type of exposure. I will always be grateful that that one parent decided to get some kids together and show us the world of BASIC on the Commodore 64.

Thursday, September 14, 2006 05:03 AM

Missing the point

Thanks, Detroit's Black Helicopter, you've illustrated the point well. In your VB example, what is wscript? What's does the construct wscript.echo do? I'm a generation older than the writer (close to 50) but I was taught Pascal in college. The problem with starting with a OO language like VB is the lack of transparency. Yeah, I know, what's the difference between a function call and a method call? Well, if you have to ask that, why are you programming in an OO language?

I've been disturbed by what passes for programming these days. Take a look at any web page source - what is this? Its not programming - clearly no one person typed all of this...crap in! Its all cut and paste. I believe that the web is destroying programming more than anything.

So on one side, things look so complicated that its hard to understand what's going on under the covers but on the other you have companies trying to sell their products as no programming needed (sheesh, try making Access do anything useful!).

I find it distressing that big business (ie M$) is trying to sell programming as a process akin to manufacturing (and one that can be done better by a cheap off shore company) rather than the often creative process that it is.

Thursday, September 14, 2006 05:08 AM

Learning BASIC is counterproductive

The author implies that BASIC is an integral layer that lives between assembly and higher-level languages; in fact it's an evolutionary dead-end. A student learning BASIC would have to learn concepts such as line numbering and GOTO statements which are not only deprecated today, but are "considered harmful" and produce brittle, unwieldy code.

Thursday, September 14, 2006 05:20 AM

Cry me a river.

Basic isn't available anymore? Cry me a river. Rather than saddling the poor kid with C++ or dragging him back to the stone age with an Apple II, hook him up with a $15 a month hosting account and a PHP book. No, it won't be the same way that you learned but people (including kids) who have an interest programming will take whatever route is available to them.

Thursday, September 14, 2006 05:26 AM

why must it be Basic?

While I agree with the essence of your article - that understanding the 'bits that wiggle' is important (as my first manager post-graduation described it) I don't understand why it has to be basic.

Is it only because 'old' books have basic examples (implying there are no/few examples in other languages)? Or the simplicity of typing on a terminal, typing 'run' and seeing the results? Or because basic is pseudo assembler like, with its 'goto' control flow?

It's interesting you mention Python, albeit discarding it summarily. Personal experience has shown it to be very well suited as a teaching / introduction / exploration language.

[An aside: My wife is a teacher, and through her I got chatting to the computer science teachers. They were having problems introducing students to programming: someone had decided that C# in visual studio was the way to go. Perhaps unsurprisingly this wasn't working well. I suggested they try python instead - the language was, after all, designed for teaching. The feedback was this proved very successful; running the interpreter provides the immediacy you mention above with the same level of learning curve. The language was both accessible and powerful enough to support all levels of ability (the brighter students moved into 3D courtesy of Visual Python).]

So I'm interested in knowing, why Basic specifically?

Most Active Letters Threads

445

The Washington establishment suffers a serious defeat

Approval of the Paul/Grayson bill to audit the Fed is both rare and important in several ways
415

The administration guts its own argument for 9/11 trials

If some detainees get military commissions or indefinite detention, how can 9/11 trials be justified?
294

Rule-of-law extremism engulfs primitive Eastern Europe

Why would the new President of Lithuania demand investigations of CIA black sites in her country?
226

A letter to readers

On my current condition: Definitely treatable, definitely uncertain
179

More GOP lies about healthcare reform

Republicans who know better falsely claim that the panel recommending fewer mammograms is a Dem plan for rationing

View all »

Letters Help

Currently in Salon