An unapology
oss4gov.org
oss4gov.org
And, while you should absolutely be able to modify your house, the reality is a lot of other buildings are off-limits to you or purpose-built for a specific recipient or cause. Indeed, a huge amount of software is designed to be sold to specific contractors and not to the public at large. Nor will the public realistically have the chance to modify most of the software they interact with, either because they're just circuits, dumb terminals or another reason.
Thirdly, software is permanent, modulo bit rot. That is to say most people can be satisfied entirely by existing written solutions. Simple task automation, scripts and macros can be self-taught if the person sees an opportunity. Actually creating legitimately new things requires a deep proficiency in a problem domain that a pedestrian knowledge of programming will not satisfy.
Also, if you're going to promote ideals for governments, I strongly suggest you promote free software, not open source.
Yet it's important that we learn all these pieces because we expect a fundamental level of understanding about the world we live in, including how that world and what we know about it is changing. Without an informed electorate and a labor force primed with the skillset necessary for the current job market, not one that's passed, we suffer collectively. Thirty years ago, it wouldn't have made sense to make something like computer literacy or computer science a compulsory subject, but considering just how much it touches every aspect of the world and our lives today, it seems remiss to not empower students with the knowledge and skills to interact with and change that world for themselves.
Agreed. Why bother? In fact, forcing children to learn these topics often harms them so irreparably that they not only don't retain the knowledge, but can't bring themselves to be interested later in life.
Make it optional. Make the topics available for children who want to know. Make it self-selected, just like every other aspect in life.
Without that shared foundation, we see endlessly polarized political talking heads debating nonissues for attention instead of reasoned debate and informed participation in society.
Yet averages are precisely the problem. You throw your achievers together with the average, giving them nowhere to go and no outlets to explore. Programming is one of the few outlets, as it isn't compulsory, yet here we're talking about ripping that one away too.
I figured out what the original comment reminded me of:
https://www.maa.org/external_archive/devlin/LockhartsLament....
"We are helping our students become more competitive in an increasingly sound-filled world."
FWIW, I graduated high-school in 1991, which is probably before some posters here were born. And everything you just said was true in 1991 as well. I have a hunch it was true quite some time before that as well.
That's the charitable view. Another view is that the point of compulsory education is to create generation after generation of children who have had any sense of independence, creativity, initiative or inclination towards free thinking, beaten out of them - generations of children who don't question authority and make good, unquestioning worker drones.
I'm not saying one view is right or the other is wrong, but let's not be too quick to accept the presumed virtues of compulsory education without looking at the dark side.
Without that shared foundation, we see endlessly polarized political talking heads debating nonissues for attention instead of reasoned debate and informed participation in society.
Sadly, we appear to have those things already, even though we have (in the US) a fairly extensive public education system, and compulsory education through age 16 / 17 or so (I suppose that varies by state?) and - nominally - higher literacy rates than in decades past. Although on that last point, I think there's a bit of an open question. Measuring literacy is apparently something that wasn't a priority, say, 200 years ago, and detailed, verifiable statistics are hard to come by. But I've seen some commentary to the effect that the US had better literacy rates in centuries past, than we have now.
I'd actually like to know more about that, but it's a pretty politically charged issue and it isn't necessarily easy to find good info.
And thereby, ironically, they are, in a way, getting a certain type of computing education in computing! For instance, doing pencil and paper arithmetic by rote is nothing more than executing algorithms. The algorithms work on an input representation, and contain various cases to be considered, terminating conditions, and outputs produced in the appropriate areas of the paper.
But it isn't the same as reading. Reading is a primary form of communication and it's fundamentally critical to joining society.
Except they won't even do that, because the proposed "computer science" courses will be little more than rote exercises in learning an ALGOL-like notation. It most certainly will not impart any fundamental level of understanding, but quite to the contrary a very specific and wrong one. Learning a notation without knowing what problems to solve is useless, and will not leave anyone informed.
We're already struggling with the fact that even a lot of professional programmers don't really have the fundamentals down, but are stuck accepting various abstractions as absolutes. Making "computer science" (code monkeying) a compulsory school subject will worsen this.
Everyone should be an auto mechanic and be able to assemble new vehicles out of an engine and other parts.
Everyone should be an electronics engineer and be able to construct their own novel devices out of raw circuits.
Everyone should be a chemical engineer and be able to formulate their own novel chemicals.
Everyone should be a biologist and be able to construct their own novel DNA and RNA sequences, splice multiple organisms together to create new life.
Everyone should be a physicist and be able to explain the practical and theoretical principles underlying all the above principles.
Everyone should be an advanced mathematician and be able to derive from first principles the laws governing everything in the universe.
... or you can just do your own thing, grok how to use the things other people have dedicated their lives to understanding and building, and focus on mastering your own profession.
-Robert A. Heinlein
;)
Edit: I sort of meant this tongue in cheek, but I do look forward to the day when cheap energy and life extension give bright people the opportunity to do all of the things in the parent post. Until then, yes, it's probably better to do one thing masterfully than many things poorly. I wish I had more time for learning for learning's sake, but I've only been playing this game for a few decades and I don't want to nerf my character.
As in, spending years to learn how to code instead of moving on to butchering that sonnet and comforting that hog.
The single most successful clade in the history of this earth.
edit: please bring on the downvotes without replies, or did being compared to celibate white males hit too close to home?
Perhaps they're serious.
Programming is certainly going to be an increasingly valuable skill. But it is not the same as reading and writing -- those skills are about communicating with other humans. Programming is about giving instructions with machines. Only one is critical in order to contribute to society.
Programming is a valuable skill, but it does not make one an ubermensch, and many people will continue to live their lives without being one of the few who can design software. They will definitely operate software, and it's the job of the engineer to let them do that without any special skills.
We always talk about more programming education -- which is fantastic, because more kids need an opportunity to get started in a valuable skill with which they can do great things for society. But it isn't reading. Not everyone wants to do it, and it's not as if 25 years from now a law degree is going to require coding. It isn't. Maybe, just maybe, it will require operating a new intelligent software system that can do legal analysis. But if operating that software requires programming, we've screwed up.
Google's search index, by the way, is accessed via a de facto command line (having nothing to do with iOS). That command line has some very rudimentary computing built in: like if you type 2 + 2 and hit Enter, a calculator UI comes up.
Most people do use a computer every day however, so there is an argument to be made that people should learn it at some point to unlock the potential of their machines. But the problem you run into here is that coding is not the same today as it was 10 years ago, and much different than it was 20 years ago. I'm still reading and writing and typing pretty much the same way that I was after learning it for the first time (with minor improvements in speed and legibility). In 10 years though, I'm pretty sure I'll be coding in something else entirely different and in a totally different style. And I also have many devices that I don't bother to code on or interact with in an advanced way, such as my smartphone.
We should teach kids code at an early age, agreed, but we also shouldn't expect them to stick with it for the rest of their lives like they would reading and writing.
I'd say most do not stick with writing.
> I'm reminded of a TED talk I went to that proclaimed all code is art and everyone should code.
I'd agree the side effects are art, but the code? Maybe in that loose artsy sense of the word art. Is every email also literature because it is writing?
In fact, to program a modern computer, using software/apps by others is a practical necessity; basic computer literacy is a prerequisite to programming, not an opposed alternative to it.
But that's the primary rationale behind this "everyone must program": that those who don't know code will be at the mercy of some bogey man bad guys who do know how to code, from the perspective of security and privacy.
Second, we've been getting a lot of links on HN lately where someone blurts out some thoughts on a complex subject and is done in less than a page, with no depth at all. I really don't care for them. They may be short, but the insight density is far lower than that of a real article, so they end up being a worse way to spend my time.
Third, I disagree that programming literacy needs to be taught to everyone. The OP does not bother to provide any specific reason, but let's consider two.
One reason may be for the sake of future employment opportunities. The argument is ridiculous on the face of it, but it's one you see politicians make. It should be obvious that we are not going to need everyone to be a professional programmer. It should also be obvious that the trend is of programming skills becoming _less_ necessary for jobs involving computers, and not more. This trend has been largely driven by UI improvements in the past, but AI is poised to give it a second boost.
Another reason could be for the sake of developing a more rational mindset, or some other skills or attitudes that are beneficial for citizens in general. This is an argument I would take more seriously, but I still have to counter that there are more urgently and universally needed things. Basic numeracy is the obvious one, and in particular statistics. Logic is another.
Programming may be a way to exercise these skills, but it is not necessarily the best way to acquire them. I would argue that people find success in programming because of their existing knack for logical reasoning, rather than gaining it because they decided to go into programming. And if you've ever tried to interview professional programmers for a job, you'd know how many of them can make a living in this field without having developed the problem solving skills you'd like to see.
In fact, focusing on programming per se as a skill to acquire may well (read: would definitely, in the American school system) lead to reducing focus on the basic reasoning skills that are more universally useful, in favor of learning how to cobble an app or a website together.
Finally, it is very dubious that the population at large would be able to learn how to program at a reasonable level. You may say that people used to say the same about literacy, which is now universal; but if you look at it more carefully, you'll notice that a non-negligible amount of people never reaches the level of reading and writing skills you would expect from an adult, and even more people see those skills decay once they leave school.
Maybe the author could provide some use cases describing how the digital literati of the future will be reading and writing software for themselves, in analogy to the written word?
I'd love to hear about how those with basic "literacy" will be reading/writing anything more complicated than FizzBuzz, much less reading/improving/writing high-quality software in the public domain.