I learned how to program in 7th grade which is a young age even today. I made good money in high school programming for my local high school in 9th grade and after. Eventually I programmed for 7 schools in Vermont that paid my way through college at MIT.
I was asked by my high school to teach a class in computer science since the teachers didn’t have the knowledge. Pretty heady for a young kid. I believe anybody could program. There is no reason in my opinion that every kid can learn to program as easily as any math class.
Considering the ubiquity of computers, their impact on our lives and the need for virtually everyone to have basic skills in things like spreadsheets and now with the growing importance of IOT, robotics and mobile apps to our lives it seems like a basic understanding of computers and how to program would be a natural and obvious requirement in high schools by now, 30+ years later.
At the time the language that seemed easiest to understand was BASIC. By the time I was in 9th grade I knew 5 computer languages including several assembler languages. These were way more complicated but BASIC was simple and in a few lines you can show anyone how to do simple things. Today there are several “simple” interpretive languages that are simple like BASIC based on JAVA virtual machine that would be easy to understand.
BASIC was built to be a universally easy to understand language to program. Today, some of the most important things to be able to do are to interact with “services.” There are several ways to interact with services that are easy with these interpretive languages. There are also intuitive graphical environments to help people program like node-red or MULESOFTs graphical editor.
With the growing importance of bigdata and machine learning it is important for people in any field whether marketing, genetics, manufacturing management that knowing how to represent “logic” and to manipulate data is critical skill in todays jobs. There are tools such as IFTTT trying to simplify the logic that people might want to build to make their lives better. All these tools represent different programming mediums. Kids should be taught a smattering of these real world things.
A NEW PROGRAMMING LANGUAGE
I think it would be helpful as well to consider an entirely new programming language that would be designed to be the Volkswagen of programming languages. This might be the lingua franca that all students could be taught. It needs to be simple but complete enough to enable people to do the basic things in todays environment of data, computers and devices. A language that is simple, gets the job done and is not bound by syntax so much it becomes a burden to remember or understand even for the least gifted students.