Programming on the other hand is creating new abstractions (i.e modelling). It never becomes trivial, because it's not just a new encoding of existing abstractions.
I think programming is no different than maths. Yes, everyone will have to know a little bit of it, but very few will be capable of modelling complex problems or implementing large software systems.
That's exactly my point. Coming up with a great story is very difficult. Writing it down is trivial in comparison.
>Everyone I know who isn't necessarily a software engineer but has basic programming skills has benefited from that knowledge.
I completely agree. It's very useful and should be taught in school just like maths is taught in school. Maybe it should be taught as part of maths.
My point is that the cognitive difficulty of formal modelling is on a completely different level than that of transcribing words. We should adjust our expectations accordingly.
I'd like to read this if anyone can find it. :)
Think of all the instances of maths used globally. Do the millions of people who more or less get the idea of an average - this is used across politics, and common discourse. Does that count as maths? I would say yes, just as a for loop is programming. No we are not expecting a compiler but just "arranging the world so it can be easily iterated over" is a fine common objective.
Yes, that's exactly what I meant when I said "a little bit of it".
The reason programming is not an extension of our natural language is because we haven't included those concepts in our natural language yet.
The world would be way better off if everyone had better logic and analytical thinking ability
Put it another way. The reason we interview people the way that we do, is because it isn't realistic (unfortunately) to expect that a CS grad can fizz-buzz, or delete from a linked list, or whatever. Anyone who has spent a little time interviewing can confirm this. Why should we expect that secondary education would do a better job?
In contrast, it's now completely ordinary for a teenager to not only get to the core ideas but solve complex calculations with them in timed tests!
I think DaVinci was way before Newton.
High school students aren't asked to invent calculus just to understand it.
I didn't invent djikstras graph traversal algorithm but I can read and understand it.
I think there's a difference between original invention and understanding 'n usage.
In a more extreme version, consider that ancient Greek and Roman mathematicians struggled with long division problems that many of us can do in our heads now!
Why? Arabic numerals are far more effective than Roman numerals for the task and after having learned them, we have a permanently increased ability to do certain kinds of calculation.
I look at quicksort and that was revolutionary at the time.
Do we have ways to better conceptualize the world around us? Or are our brains evolving outside of some normal evolutionary process?
Fascinating to me.
Arabic numerals, literacy, maps, bayesian reasoning, etc are unnatural, but better ways to conceptualize the world around us and these tools and others have steadily become more prevalent throughout the population.
Maybe quicksort hasn't permated through much of society, but binary search has! People born 100 years ago became comfortable flipping through phone books and quickly finding a name, whereas that would have taken a conceptual leap for most born 200 years ago.
I think it's a failure of the school system from a very early age because math is heavily dependent on foundations of previous classes.
And I think it's more than just sharing the information we have to also make rational thinking fields as fun and cool as the emotional expression fields of study like English or Music and not the domain of 'nerds'.
I think our whole culture would be way better off if people had better critical thinking logic and math skills.
This is a point I hadn't thought enough about before. Great insight.
It makes me think that maybe we just suck at education in general, and it only shows up in the subjects where continuation is dependent on previous courses.
If you completely fail to understand american history, you can lie to yourself about being good at it, and continue to believe that when you get to european history. If you completely fail to understand the lessons from Fahrenheit 451, you can believe you're good at English (the subject, not the language) while you move on to Shakespeare.
The only (pre-college) subjects I can think of that really require you to actually understand the prereq's material are math and language. And they share that people say "I'm just not a math person" or "I'm just no good at languages."
I'd never thought about it with that lens before, but now I'm feeling kinda pessimistic. Like, if this hypothesis is true, it's not about bringing math education up to the bar of other subjects, it's about overhauling the entire system.
Widespread ability to read and write natural language seems to've, eventually, made written constitutions not so-much "viable" but "necessary".
It's easy to forget how innovative the U.S. Constitution was for being written, content aside.
https://en.wikipedia.org/wiki/List_of_national_constitutions
Definitely excited about the social implications of widespread ability to read and write executable language in the long run, note when France crossed 50% literacy though:
https://en.wikipedia.org/wiki/Literacy#/media/File:Illiterac...
It's not just "can my employees write a for loop" but it's "do we store data sensibly, when upper management wants a report is there a data history stretching back to the raw (ie no manual involvement). Do we all publish APIs and work through those defined interfaces - and many more.
Only 4% of people knew how to read during the middle ages.
Mostly clergy and civil servants.
The grandparent poster is right imo. If programming becomes just another thing everyone knows, and takes a software class every year like they take an English class, the world will be way better off.