As the father of a near 3 year old the educational questions weigh heavily on my mind. While this is a great thought experiment ("How could we make it better?") it's scary when given a concrete example that is near and dear to your heart.
I believe:
[1] Each general subject has a core competency that you have to achieve at a minimum.
It's broken into skills and subjects.
Skills includes: programming, reading, writing, functional mathematics (+-*/ and solving word problems), learning (figuring out how the pupil best learns for themselves, or if you want "meta-learning"). I may be missing some skills here.
Subjects include: english, history, biology, chemistry, physics, mathematics (both higher level functional math and theory / proofs). I may be missing some subjects here.
[2] on top of #1 you have focused subjects of interest which you should support the pupil learning to whatever depth they are interested in learning. Most people I know upon finding something they are truly interested in become a borderline expert. Are they world class? Maybe or maybe not, but they are certainly journeymen. These range everywhere from finance to car repair to engineering to language learning to musical instruments to basically anything people take an interest in.
If your student can reach functional usage in all parts of #1 earlier that gives them more time to learn different things from #2. Note that the skills and background knowledge learned in #1 are reusable to various subjects in #2.
Circling back to the article: It's a stupid idea to even attempt to prevent a student from mastering anything in #1 above faster. It might help if the peer group instead of being defined by age could be defined by what your interests in #2 are. Then you get cross pollination of students by more advanced students in those same interesting subjects.
Why is programming a basic skill? To me, programming is more of a trade than a basic skill. People get by just fine without knowing a thing about programming. When students can't read, write, and do simple mathematics, then they have trouble later in life.
I believe logic and basic computing (this is a folder, that is a keyboard, etc.) are necessary. In fact, these form the foundation for programming later, but how could programming be considered a skill comparable to reading or writing?
For the same reason being able to write English[1] well is: If you can use English effectively, you can better influence the people you have to deal with. If you can write code effectively, you can often find ways to better influence the computers you have to deal with.
[1] (Replace 'English' with any natural language of your choice, if you want.)
Programming is not as ubiquitous as you or I would like to think. In fact, I would say that most people use less than 10% of a computer's capacity at work or home (not to say they don't max out memory or tax the CPU, but that they don't 'unlock' the computer to its potential).
Also, if you can tune engines effectively, you can better influence the cars you drive, and most people use one every day. Shouldn't auto shop be up there with programming?
I don't say that to knock auto shop. I want to reinforce the idea that 'programming' is not as important a skill as reading, writing, and math. Programming is a trade skill that builds on the concepts of reading, writing, and math. It's an advanced skill, not a basic one.
Education isn't about making people average. It's about trying to elevate them a bit above. I wouldn't be averse to adding auto shop in (except for the practical matter that modern cars aren't as friendly to shade-tree mechanics as cars of decades ago) but I still think computer programming is more important.
It's more important because, frankly, being able to use a computer really well means you can do things the companies in charge don't want you doing. Disabling DRM, making backups of the software you own, blocking virus-laden ads, and so on, all the things I won't put up with being unable to do but the average person just kind of suffers with, like a cow in a thunderstorm unable to find shelter.
Education isn't about making people average. It's about trying to elevate them a bit above.
I wish this were so, but if you look at most education systems, they seem to be designed with a goal of ubiquitous mediocrity. There's a lot of focus on bringing everybody up to minimal standards of not totally sucking, but anybody who isn't in the bottom 1/3 of the class is usually neglected.
At least, that's the way I remember it, and the way politicians usually talk about it. Remember "No Child Left Behind," where the goals were all based on improving education for the worst-performing students?
(It wasn't all bad. I got so bored that I learned a lot of computer stuff, which turned out to be a spectacularly good use of my time.)
I believe:
[1] Each general subject has a core competency that you have to achieve at a minimum.
It's broken into skills and subjects.
Skills includes: programming, reading, writing, functional mathematics (+-*/ and solving word problems), learning (figuring out how the pupil best learns for themselves, or if you want "meta-learning"). I may be missing some skills here.
Subjects include: english, history, biology, chemistry, physics, mathematics (both higher level functional math and theory / proofs). I may be missing some subjects here.
[2] on top of #1 you have focused subjects of interest which you should support the pupil learning to whatever depth they are interested in learning. Most people I know upon finding something they are truly interested in become a borderline expert. Are they world class? Maybe or maybe not, but they are certainly journeymen. These range everywhere from finance to car repair to engineering to language learning to musical instruments to basically anything people take an interest in.
If your student can reach functional usage in all parts of #1 earlier that gives them more time to learn different things from #2. Note that the skills and background knowledge learned in #1 are reusable to various subjects in #2.
Circling back to the article: It's a stupid idea to even attempt to prevent a student from mastering anything in #1 above faster. It might help if the peer group instead of being defined by age could be defined by what your interests in #2 are. Then you get cross pollination of students by more advanced students in those same interesting subjects.