By Harry Keller
Editor, Science Education
We’ve seen much hue and cry about our schools being unable to meet the demand for “computer scientists.” What industry really misses is software engineers. The term “computer scientist” is misleading because the skill set of those who write computer programs is one of engineering. Science expands the boundaries of knowledge about the natural universe. That’s why just about every computer scientist worthy of the name is in academia.
Software engineers design computer software, and software coders are the technicians of computer software who implement those designs. Software architects work at a level above the engineers and consider much broader aspects of software creation. It turns out that really good software engineers can do architecture, design, and coding.
Should our high schools be preparing our young people for these careers specifically? Are our math classes geared to producing mathematicians? Are our English classes designed to produce novelists, playwrights, and journalists? Do our history classes create the next generation of historians? These rhetorical questions all have the same answer: no.
What is the most important skill that a software engineer can possess? It’s a strong analytical mind capable of advanced abstraction. No amount of practice with toy programming languages or simple subsets of industrial-strength programming languages will provide students with those thinking skills. However, good math, science, and even history classes just may do the trick if the talent is already there. Other courses can buttress this learning if they stop being memory courses.
Furthermore, there’s a talent involved in writing good software efficiently. There’s also years of practice in a professional environment. Just as with any engineering discipline, you must understand myriad trade-offs to be made in creation of new things. Understanding those trade-offs well requires experience, judgment, and intelligence. Not every student is well suited to becoming a decent, let alone a good, computer programmer just as not every student is well suited to becoming a star football quarterback.
We’d do well to improve our emphasis on thinking in our K-12 schools without worrying about specific careers that may not exist in ten years or may have very different detailed characteristics. Thousands of young people have been trained to work with word processors that no longer exist. Many once knew the intricacies of PDP-8 assembly programming that no longer have any value.
Thinking never goes out of date. It may be even more important than it was 50 years ago or even 5,000 years ago. It was very important at those times too, incidentally. You sure wouldn’t know it to look at how we teach and measure our youth with cookie cutter high-stakes tests.
Also, thinking applies to just about any field of endeavor. Employers seek out thinkers. They don’t have to have as much training or oversight, and they are more likely to contribute innovative ideas to the enterprise.
Stop worrying about training tomorrow’s computer programmers and start worrying about training tomorrow’s citizens who will either raise us up or let us down. There’s little necessity for computer programming in K-12 education. A computer club can provide much better training than most high school teachers. The students learn from each other, and they learn with self-defined goals in mind. The club adviser fills the role of teacher that will eventually morph into mentor. This sort of learning is a model for at least a portion of our future education systems.
Filed under: Critical Thinking |