[Sigia-l] Programming IAs was: Little things an IA MUST know/do

George Olsen george.olsen at pobox.com
Thu Apr 24 14:59:27 EDT 2003


With due respect to Chris Crawford -- who I think is brilliant and who I
spent several years talking to in the mid-1990s -- he's a programmer who's
close to the machine and that colors his thinking. He's had a hard time
realizing that his interactive storytelling tools make perfect sense to
him, but aren't real intuitive to the writers he's been trying to interest
in using the tool.

As far as programming, it's sort of like music -- there have been plenty
of great players who couldn't read music, let alone had any formal
training in music theory. Knowing music theory won't necessarily make you
a good musician. But having talent _and_ knowing music theory usually
makes you a much better musician and much better able to exploit your
intuitive leaps.

The critical skill is being able to _think_ in programming terms. This can
be accomplished with languages that programmers wouldn't consider "real"
programming. I've learned (and forgotten) Lingo, AppleScript, JavaScript,
PHP, etc.

As a result of that, can I read, let alone write, Java or C? No. But do I
know the principles behind well structured code. Yes. Do I understand how
databases work? Yes. Do I understand what types of things are doable, what
isn't doable and what's doable with difficulty? Yes.

That's what important, and something I think is a realistic goal for our
professions. Read "Database Design for Mere Mortals" and you'll get a good
grasp on databases. Most books on scripting languages now give an overview
on programming fundamentals. And there are a couple good "manager level"
books that explain concepts such as object-oriented programming. It's
still useful to actually do some hands-on coding, but you can learn the
basic concepts without doing so.

It's nice -- but not really critical that we can design code, or evaluate
the merits of one language or another. That's what systems analysts and
systems architects are for.

It's good to understand something about other people's jobs (just as they
understand something of ours) but that doesn't mean we need to be able to
_do_ everyone else's job. Our value is in what we do well that other's
don't.

George





More information about the Sigia-l mailing list