Learning how to code, even if you don't become a professional programmer, will help you appreciate the software you use. It may also help you think differently about life, become better at problem solving (debugging IRL!), or at minimum, get frustrated at all the software you use on a day-to-day basis, because you know you would have designed it better. ;-)
Here's how I see it: Programming is a relatively young discipline. It's not really that hard, we just make it artificially difficult with bad tools, and artificially exclusive with various first world and Anglo-centric measures. We desperately need fresh perspectives. Most of what is built is rebuilt, constantly, with new bugs. As a profession, we tend to lack insight. We need more eyes, particularly fresh eyes, not 'experienced', elitist code-Rabbis.
And it goes further. People without an education or experience in software development or engineering aren't able to come up with good ideas about what to build because they aren't able to grasp the possibilities of what technology enables.
That feeling you're talking about in regards to building stuff is not something that you're born with, but rather something that grows on you by building stuff.
So no, I don't agree with you. We shouldn't force anybody to do anything of course, but the responsibility of a good educational system is to open up horizons, which means encouraging children to explore as much as possible.
For a while this probably means that our code repos might be filled with nasty stuff, but I'm convinced we'll be better off for it in the long run.
I am decidedly not a programmer. I don't know what an object is. I haven't learned the first bit of CS. My code would probably make you want to gouge your eyes out. And yet, it's saved/earned companies millions of dollars.
It certainly seems possible to teach in a way that kindles a life long love of programming, rather than leaving things to blind caprice - most groups just don't even seem to realise this might be a good idea.
Let me explain...
I take my example from this traditional practice of Rabbis: never accept a convert until they have been turned away twice before. Make them make 3 attempts to show their determination. Why? Because Judaism is hard. If they're not committed, they'll either give up or do just enough to satisify the minimum requirements, wasting everyone's time.
Same thing with programming. Building real applications that deliver sustainable value over time is hard. It pretty much takes all that you've got and can take years to reach excellence.
Every time I see another way to learn how to be a programmer (now that there's money in the game, they seem to be popping up everywhere), I have two immediate reactions: 1. How cool is that. I wish I had that years ago. 2. No! We had enough bad programmers who are doing it for all the wrong reasons.
I believe the most important difference between an excellent programmer and everyone else is not intelligence, education, emotional state, or work ethic (although all of these help). The most important thing is a burning desire to build.
Someone with this burning desire won't not need to be encouraged. You won't be able to stop them. Someone without it would be better off doing something else.
We don't need more programmers. (Only IT execs who akin programmers to envelope stuffers think that.) We need more excellent programmers.
The best way to get more excellent programmers? Discourage everyone so that only the most determined can make it.
Our industry, our craft, and most of all, are code repositories would be much better off.