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:
Wednesday, September 13, 2006 06:29 PM

programming on modern computers

OS X: applications -> utilities -> terminal

start writing in (pick one: bash, csh, perl)..

Wednesday, September 13, 2006 06:32 PM

The next generation of programming

There are indeed, thousands -- at least tens of thousands, possibly more like hundreds of thousands -- doing the EXACT THING that you're complaining about. Kids are ripping apart web pages, web applications, figuring out database algorithms and writing simple scripts to make their own bulletin boards, content management systems, band websites, cool little dohickeys on their myspace pages. Though the mechanism is different, the basics are the same. Flow control, variable manipulation, iteration, functions, boolean algebra... you can't even go all that far without running into basic graph and tree structures.

For people who are into the idea of going further, there have never been more projects available in more languages with more help. I had to save up for computer books, and it'd take me weeks to buy an introduction to programming book that only had a rough chance of being at my level or covering what I was interested in. The internet has completely flipped that idea on its head. Now, if you're interested in learning the basics of computer programming, or what makes a computer tick on a variety of levels, all you need is Google and some time.

It just seems ridiculous to me to bemoan the loss of one, rather limited way of programming, when the doors are open to hundreds of new ways of getting interested in programming.

Wednesday, September 13, 2006 06:35 PM

PERL is the King

David, Anon has it right. Get your kid hooked on Perl, you can run it in a command window, or at any level of fun and sophisticated web interface you like. You'll never look back, and all of the BASIC code is easily translateable, but then, wahoo!

Ten years ago I introduced my simulation Prof to it, because I have never had time for C and it's variants; he was astounded at the versatility and simplicity it offered (and I aced the course). Once your kid has some familiarity, combine it with html and php by the time he's in high school he'll be ready to tangle with whatever new thing his counterparts in Bangalore come up with (sorry)...

Wednesday, September 13, 2006 06:35 PM

Command Line Unix.... Not quite BASIC. But endless possiblities.

As another poster mentioned. If you have a mac you have a excellent set of tools for kids to learn with. Not quite Basic. But close enough.

sed

awk (a whole language in itself)

grep

bash

xargs

less

vi (!)

emacs (!)

etc.

Just show the kid how to do:

man awk

and let them go. They'll learn skills that they will have for life. They will eventually find gcc, perl, ruby and java and then they'll have something to move on to.

I remember way back in 86 trolling through old BSD Unix manuals as a freshman in college learning about all the wonderful unix commands. Sure I had a PC (DOS) on my desk and still had the old atari 800 back home with it's basic cartridge. But unix... there was some beauty, there was some structure.. Piping, redirects and shells... I'm still learning new stuff from /usr/bin

Huge amounts of examples throughout the whole system. Examples that actually make the computer work. Not just nice book code. But real, get the job done stuff.

If you don't have a mac just download any linux distro and install on an old machine. Any kid who has geek in his genes will dive into that with little prompting.

Not to pimp another author (I love Brin's books too):

http://www.cryptonomicon.com/beginning.html

Wednesday, September 13, 2006 06:37 PM

Python

Dr. Brin:

If you have not actually tried Python (and it sounds like you haven't) I strongly urge you to try it out. The Python console is the closest thing you'll get these days to the way the Apple II or the Commodore 64 worked. And as pointed out elsewhere, Python even comes pre-installed in Mac OS X. Take the half-hour it takes to work through the introductory tutorial. You won't regret it.

Wednesday, September 13, 2006 06:40 PM

You've got to be kidding me.

Aside from the many sources for BASIC that previous writers have mentioned, I'd like to know exactly what it is that Brin is looking for in BASIC that can't be done in, say, Python. Sure, the language has object oriented features, and a large standard library, but you don't have to use them. You can use 'print' and 'input' and do old style terminal programming just like the good ole days. In fact, I recently helped one of my students do exactly the sort of thing that Brin alludes to in this piece: The physics teacher had given this kid some old algorithm in basic, and I helped him re-write it in Python. The only thing that was really different was the BASIC notation for arrays vs the Python list notation. So what's the big deal?

Wednesday, September 13, 2006 06:41 PM

The Answer is Staring You in the Face

Yeah, I started with Basic back in the day, too. But that's not what we should be teaching our kids today. Start with HTML. This language comes pre-installed on every Mac and every PC and every Linux box and every other kind of computer you can buy today. You are looking at it right now! Go to the menu bar and select View -> Source or View -> Page Source. That's HTML, the language of the web. There are lots of great HTML manuals out there, including "Learn to Program HTML in 21 Minutes." (I'd include a link, but the comment editor says that "a" tags are not allowed, proving my point that HTML is something everyone should know. I trust you can use Google to find the page.) After they've learned HTML, then teach them JavaScript. Guess what? It's also pre-installed on your computer! These are real languages that let people do great things. If you then want to move on to more powerful (and therefore more esoteric) languages, you can then move on to a modern line-oriented language like Python or Ruby. Both are free to download and available for any computer you are likely to have (and many that you are not). Both have lots of free manuals online. And both are much easier to learn and use than crappy old Basic. I've recently taught Ruby to dozens of non-programming adults: it is very intuitive. Years ago, I also taught kids Basic, but I wouldn't do that today. Instead teach them something more universal, more practical, and easier to learn: HTML, JavaScript and Python or Ruby. The hardest part about things today is simply that there are so many great languages to choose from. Back in the day, your IBM-PC or Apple II only understood one language: Basic; or, more accurate, a platform-specific dialect of Basic that wouldn't work on any other kind of computer. I'm glad those days are gone.

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