Robert Laughlin, winner of the Nobel Prize in physics, has recently written a new book called A Different Universe. It's not a book about computers or software. But he does have a brief section about software in it where he expresses an interesting point of view. Here's what Dr. Laughlin writes about the wisdom of writing your own software today:
One of the more interesting trends of the computer age is that physical science students are increasingly unwilling or unable to write computer code. I was very upset when I first observed this and took stern measures in my department to counteract it, much to the students' chagrin, for I myself am very good at coding and consider it something any self-respecting technologist should know how to do. Eventually, however, I realized that the students were right and I was wrong, and stopped the crusade. Computer programming is one of those things in life, like fixing one's own car, that is fascinating, fun, useful--and unacceptably time-consuming. The truth is that it is no longer cost-effective for most well-educated people to program their own computers, or even to learn how to do so. The wise use of a time is to spend a few bucks to buy a program that does what one wants, or in extreme cases, search the internet for free software.
Spoken like a true academic. I suppose that when you achieve as much as Dr. Laughlin has, you're entitled to statements like, "I myself am very good at coding." And I also notice that he recommends that you "buy a program," not that you "employ a programmer". It sort of suggests that good software springs fully formed from the earth somewhere.
Anyway, this raises a point that has fascinated me for my entire career. Should everyone try to write code at some level? Or should non-programmers just stay out of the way and let a pro do the job?
There are some interesting parallel examples. You can be thrown in jail for practicing medicine without a license. Professionals from engineers to lawyers have to accomplish regulated goals and then have protected status after that. When I was in a corporate DP department, there were always people saying that "professional programmers" should have the same type of official recognition.
Here's my position: No. (And I think this is vastly overdone for the other professions too. But I don't want to get into that question. ... Let's stick to programming.)
I have always believed that my chosen career has been strengthened by the fact that the only "qualification" you really need for programming is the ability to write good programs. It creates sort of a "natural selection" that results in good coders staying in the business and bad coders getting out. At the same time, I've felt that everyone from file clerks to the company president benefit from programming as much as their native intelligence will allow. (High for most file clerks I've known, questionable for company presidents.) At a minimum, it gives them a better starting point if they eventually have to turn the job over to a professional programmer.
What do you think?