This snippet of Andy Kessler’s latest column in the Wall Street Journal caught my eye:
The U.S. is falling behind. In 2014 England made computing a part of its national primary curriculum. Estonia had already started coding in its schools as early as first grade. The Netherlands, Belgium and Finland also have national programs.
Maybe the U.S. can start the ball rolling by requiring colleges and high schools to allow computer languages to count as foreign languages. A handful of high schools already teach the Java computer language using a free tool called BlueJ. Nonprofit Code.org exposes students to a visual programming language called Blockly. To compete in this dog-eat-dog world, America should offer Python and Ruby on Rails instead of French and Spanish.
Let’s start with natural languages. The average American high school student takes two years of a language other than English (generally Spanish). Of Americans who say they speak a foreign language well 7% say they learned it in school. 7%. The reality is that you can’t learn to speak any language fluently in 2 years and you’ll quickly lose anything you learned. In other words that Mandarin your primary school child is learning is probably a waste of time.
Now onwards to programming languages. IMO it takes about three years of full-time software development experience to become really fluent in any programming language. The second takes less time than the first, the third less tim than the second, etc. In other words the only high school kids that will become fluent in any programming language are those who take it up as a pastime. They’ll work obsessively at it and, honestly, that’s what it takes to achieve fluency.
The first version of Ruby came out about 11 years ago. The framework Rails a little after that. Usage of both is declining now.
The first version of Python came out about 25 years ago. It’s catching on now because of its use in artificial intelligence. It’s a fad. Will knowledge of Python be useful in five years? Ten years? Who knows?
IMO teaching kids either Ruby or Python is about as useful as teaching them Morse code. Unlike natural languages programming languages go in and out of fashion rapidly. There’s a simple reason for that. Programming languages tend to be closely associated with software development companies and software companies (like Microsoft) are in the planned obsolescence business.
What would really be useful is teaching kids problem solving using algorithms. That will never go out of fashion.
While I’m in an autobiographical frame of mind, I studied French in grade school from third through eighth grade as did my siblings. I’m the only one of us that emerged from the experience able to speak or read French. I studied Latin and Russian in high school and Russian and Chinese in college. I picked up a smattering of other foreign languages along the way.
I know several programming languages fluently including some like Fortran (required in college) that are mostly of historic interest now. IMO very few programmers these days know any programming language fluently.