Archive for August, 2006

Technophobia

I have recently realized why there are so many computer illiterate people running around. It’s not that people are simply stupid – that’s a grossly judgemental answer that many of my fellow geeks unfortunately arrive at. That’s not it at all, because computer illiteracy reaches into technical fields. I know several computer science professors that simply can’t use technology newer than 5 years old.

So, what causes this, if not simply “they’re dumb”? Fear. Technology is mysterious; most people, when confronted with something unfamiliar, are uncomfortable. It feels like some delicate piece of magic; if they touch it too hard, it might shatter.

The consequence of this fear is that, once gripped by it, people start assuming they *can’t* learn anything about computers; it’s too arcane. So, when presented with technical terms or ideas, they stumble over them. If the technophobe stopped to think about the idea they are grappling with, they’d probably figure it out pretty quickly. But their mind won’t do that, computers are “too complicated” for anyone like them to figure out.

An example: USB flash drives. Even most technophobes know what floppy disks are, but when you tell them this is similar, except it connects to that rectangular plug on the side of their computer, they give a blank stare. They can’t comprehend it because it’s new.

A better example: If presented with two products that very clearly do the same thing, but are made by different companies, the technophobe will invariably ask “what’s the difference between these two?” If you showed them a Dirt Devil and a Hoover, they would have no such problem, but computers are *mysterious*, afforded a special class of untouchability.

So, to all you technophobes out there: Stop being afraid of the computer. I promise it won’t bite. Engage your mind and really *listen* when computer jargon floats by. Make intuitive leaps; even if they’re wrong, they’ll eventually point you in the right direction.

Leave a Comment

Programming: The theory

One of my biggest problems with the IT community, both in amateur programmers and prospective employers, is the following question: “So, what programming languages do you know?” This implies that learning a language is an extremely difficult task, and collecting languages like trophies is somehow a worthy pursuit.

A programming language is a tool. A skilled craftsman isn’t good at her trade because she knows how to use a given set of tools; anyone can learn that. Rather, true skill comes from knowing how to *apply* the tools. The fundamental concepts behind programming are the skills on which we should be focusing.

This applies to academia as well. The language you use to teach students, especially the first language they encounter, *is* important. I’m not about to advocate “teaching languages” like Pascal, though. I think it’s important to choose a real-world language, with all the pitfalls and caveats of a real-world language, as a student’s first language. At the same time, it should be a language with the features available to demonstrate all the fundamental concepts in programming. A language that doesn’t support recursion would be a Bad Choice, for example.

So, when someone (a peer or a hopeful programmer-to-be) asks me “what languages do you know?”, I won’t respond “Well, I know C, C++, Java, perl, php, xhtml/xml/css (if you count those), lisp, prolog, LotusScript, Javascript, LSL…” etc. Instead, I’ll say “I’ve used a number of languages, but the key thing is that I know how to learn any language.” When an employer asks, I suppose I’ll have to say “Well, I know @languages…”. Then, though, I might add “…but I consider the fundamental concepts behind programming languages to be more important, because mastering those means I can learn to get around in any language given a week or two of study.”

In summary: Learning a programming language is trivial, once you know the fundamental concepts of programming.

Leave a Comment

Follow

Get every new post delivered to your Inbox.

Join 136 other followers