We Don’t Need More Coders

Great article We Don’t Need More Coders by Paul Hoehne:

There’s been a recent push to get more people to ‘code.’ Probably inspired by the facts that 1) computers are now part of everything 2) people believe there is a shortage of programmers. Most of us carry at least one computer around with them all day. Many of us couldn’t do our jobs without the help of a number of software tools that multiply our effectiveness by quickly aggregating and presenting information. But I don’t see the main challenge of the next 25-50 years as being able to feed that beast with more software.

I would say we need more engineers. What’s an engineer? An engineer applies scientific principles, data, and research to solve problems. An engineer doesn’t solve problems with platitudes or what they believe to be true. They verify their assumptions and they test their solutions. They research options and try to determine which option, if applied to this problem, would give us the best outcome for the least cost in terms of time, money, environmental impact or other metric. This mindset can be applied to a number of fields outside of electrical, computer, mechanical, nuclear, civil, or chemical engineering. Yet too many people simply cite platitudes, truisms, or what they feel should be true about a problem as the solution.

Coding is a byproduct of the engineering process and only valid as part of that process. An engineer *decides* to use a computer to solve a problem, but has determined the problem and a possible solution (more or less). That solution may use a computer as a component because the computer makes the solution more efficient, cheaper, or more flexible. I wouldn’t use a computer as a door-stop, when a small rubber wedge would nicely do the job. A computer is a tool, and an important tool, but without the engineering mindset it’s just a faster way to go nowhere. And I say with with a great affinity for computers and computation – it’s the thing I love as both vocation and avocation. I even do it on vacation.

The key educational inputs to the engineering mindset are basic math, reading ability, basic logic, and a willingness to question and test your own assumptions. Computers allow us to more quickly access information about a problem we are trying to solve. The engineering mindset helps us put together a novel solution or helps us evaluate the solutions currently available. But without some basic math, a little logic, and that all important willingness to question our own beliefs and assumptions, the computer does little to improve our situation. Perhaps the greatest failing of our educational system over the last 50 years has been the extremely poor state of math literacy and a literacy in the basic principles of science. And as much as a teacher can impart a willingness to challenge your own beliefs, it’s on each of us to enforce that discipline through the consistent practice of honesty with ourselves.

Engineering doesn’t put art aside. Even musicians, construction workers, anthropologists, and English majors need to put on an engineer’s hat from time to time. At some point they will encounter a problem requiring thought and analysis to arrive at a solution. Maybe they even need to test the solution, or solutions, to see which are workable on a smaller scale version of the problem through the process of gathering data and analyzing results. Isolating issues, evaluating outcomes, testing and validation are all part of the engineering mindset. The challenge solved could be how to create the right ‘sound’ for a band or how to illuminate ice sculptures without inadvertently melting them.

Engineering has often been part of creating great art. But looking at the challenges of the next 25 or 50 years, it’s the biological computer between our ears that’s more important than having another application for that hunk of glass, plastic, silicon and aluminum in our pockets.

Nice. Very nice.