Those are not compelling arguments.
If the best we've got for convincing people to learn to code is that it's like math notation (the most hated part of math for the uninitiated), or pretty like a violin (useless for a new grad), then coding is in serious trouble.
IMO a better argument is it helps you "think like a computer". But if you wanted to learn that there are many video games I'd recommend mastering instead of learning to code. For most people "learn to code" is like telling programmers to "learn asm".
(I've been coding ~30 years)
> For most people "learn to code" is like telling programmers to "learn asm".
This is such a good way to put it.
I could learn asm maybe in a college course. But no other incentive.
No one wanted to read asm. Now no one wants to read thru code.
> If the best we've got for convincing people to learn to code is that it's like math notation (the most hated part of math [...]
That's funny. I've told a mathy friend that I've sometimes wondered if I could have grown up without the whole, "... except I suck at math", and I think that's why.
I don't struggle with the problem solving. I've watched people reinvent chunks of "difficult" math in code without realizing or caring that they've done it.
I've started to think that math might actually be awful on purpose.
i think video games are to abstract to connect them to learning to think like a computer.
the most useful thing i learned about computers is to create logic gates by hand. nothing gave me a deeper insight into how a computer works than that. programming is the next step up. you can skip all the layers in between because you can extrapolate them. no need to learn assembler, but it may be worth reading about it, just to get an idea.
understanding the layers from logic gates, to assembly, to programming, to games and now AI is kind of like reading about the OSI model to understand networking. it's one layer of abstraction on top of another.
learning programming is worthwhile because it is the highest layer of abstraction that is shared by everything above it. despite there being hundreds of programming languages, the concepts are all the same. once you understand programming through learning one language you can apply that understanding to almost all other languages. on the other hand there are tens of thousands of games in hundreds of types. not to mention all the other applications. the tree of variation explodes at that level.
What games do you have in mind?
Programmers should learn ASM, or at least have a surface level knowledge of it, the same way electrical engineers should know how a vacuum tube works.
The most compelling reason to learn to code is exactly the same reason to read lots of books (fiction or otherwise). It exercises your brain. A brain that can easily sort, parse, and understand basic logic and control flow is more resistant to propaganda and influence. Which is the same benefit a lot of reading does, but for different avenues of thinking (more worldviews exposed to -> more critical thought of each of those views -> more critical thinking in general).