A computer coding craze has taken over the country. Everywhere you turn, public officials from President Obama on down in the US and around the world seem to be talking about the need to train folks in computer coding.
Governors
and Mayors are asking their school systems to teach students how to
code instead of learning other subjects. Many people who had little
previous interest in computers or software – except as blissfully
ignorant users – have signed up for, often expensive, courses on
programming.
It’s not just in California or Seattle or Austin
(pictured), but back in traditionally less high-tech places on the East
Coast as well. Recently there were stories about coding classes in the
Borough of the Bronx in New York City and as far south as Miami.
There
may be good reasons to take these courses. A bit like the courses that
schools used to teach about how the car combustion engine worked,
learning to program may help people better understand how computers
sometimes operate.
As with any creative activity, at the start,
you can get a sense of accomplishment when witnessing your software
creation come to life — once most of the bugs are eliminated 🙂 You can
even reprise this feeling under special circumstances later on in your
career. But much of the work of coders can, in the long-run, become mind
numbing.
The opportunity to design and create a great new app is
like being invited to paint the Sistine Chapel. But the more frequent
opportunities are like being invited to paint someone’s apartment.
Don’t
get me wrong. As a long time software developer myself, I can say there
are many satisfactions for developers who have both the knack and
passion for software. But people who don’t have those attributes and
just do it like any other job will be frustrated too easily.
And, honestly, even the positive side of life as a developer is not what is primarily driving this coding craze.
Much
of the interest by public officials (like the governor of Arkansas in
the picture) as well as the people enrolled in coding classes is based
on their belief that these courses make possible employment
opportunities that will endure for decades in a world in which
traditional jobs have been automated or shipped overseas. Will it?
Surely, some people are going into coding just for an immediate bump in short-term income. Studies
on the relatively new phenomenon of coding bootcamps seem to support
this notion – that is for the 65% of students who graduated and are
working in a programming job. Even in those cases, the best results were
for students who graduated from the more expensive and selective
programs.
Yet, on balance, count me as a skeptic. I think this
craze is, well, crazy. In the long run, I don’t think coding courses for
the millions will lead to the affluent future and lifelong careers that
many proponents envision.
First, as I’ve alluded to, these are
not jobs that everyone who is learning to code will find satisfying. We
may be too early into this craze to know how many people go into the
field and last for more than a short while, but I’d expect the dropout
rate to be high.
Second, there is the low level nature of what is being taught – how to write instructions in a currently fashionable language. While most of the coding courses focus on currently popular languages, like Ruby and Javascript, many of their students do not understand how popularity in languages can come and go quickly.
Some
languages last longer than others do, of course. Through sheer inertia
and unwillingness to invest, there are still some existing programs
written in old computer languages, like FORTRAN and COBOL. But there
aren’t that many job openings for people coding those old languages.
Wikipedia lists a variety of languages that have been created over the last three decades, approximately one a year:
1980 C++
1983 Ada
1984 Common Lisp
1984 MATLAB
1985 Eiffel
1986 Erlang
1987 Perl
1988 Tcl
1988 Mathematica
1990 Haskell
1991 Python
1991 Visual Basic
1993 Ruby
1993 Lua
1994 CLOS (part of Common Lisp)
1995 Ada 95
1995 Java
1995 Delphi (Object Pascal)
1995 JavaScript
1995 PHP
1996 WebDNA
1997 Rebol
1999 D
2000 ActionScript
2001 C#
2001 Visual Basic .NET
2003 Groovy
2003 Scala
2005 F#
2009 Go
2011 Dart
2014 Swift
2015 Rust
2016 ???
So if all they learn today is the syntax of one language and lack a
deeper education, they may find that one skill to fall out of favor.
Indeed,
many of those students aren’t even being taught about the different
kinds of programming languages – even classes of languages vary in
popularity over time.
Instead, they are usually learning imperative languages, especially with a focus on low level procedures.
It
is also not clear that the popular languages are the best ones to even
teach basic coding, never mind understand software more generally.
Even
the idea that any language is good enough to educate students about how
computers work is misleading. Different classes of languages lead to
different ways of thinking how we can represent the world and instruct
computers.
And finally, the trend in software, in fits and starts,
has been to reduce the need for low-level programming. Originally, it
was a move away from “machine instructions” to higher level languages.
Then there were various tools for rapid application development. Today,
there is the Low-Code or even No-Code movement, especially for Apps.
You’ve
heard of the App Economy, another part of the promised job future?
Putting aside the debate as to whether the app phenomenon has already
peaked, with these low-code tools, fewer coders will be needed to churn
out the same number of apps as in the past.
And then over the horizon, computer scientists have been busy “Pushing the Limits of Self-Programming Artificial Intelligence” as one article states in its title.
Finally,
with this background, pure coding itself, even in past years, was only a
small part of what made software successful. And a successful long term
career in software requires an understanding of what goes beyond
coding.
But this is enough in one post to get many people irked, so I’ll save that for a future post.
© 2016 Norman Jacknis, All Rights Reserved
[http://njacknis.tumblr.com/post/141088761737/the-coding-craze]