Explicit programmers are needed because the general public has failed to learn programming. Hiding the complexity behind nice interfaces makes it actually more difficult to understand programming.
This comes all from programmers using programs to abstract programming away.
What if the 2030s change the approach and use AI to teach everybody how to program?
Baking is not chemical engineering. Chemical engineering doesn’t even have much to do with chemistry. It’s mostly about temperatures and flow rates, pressure, etc.
Saying “the baseline of programming knowledge could be more than zero” is meaningless. The baseline of chemical engineering knowledge could also be more than zero. It’s also a fundamental part of our society. But, the average person doesn’t need to know how to program, just like the average person doesn’t need to know how to design a refinery.
People do learn some basic computer skills. They should learn more. They should know about files. They should know how to back up their data. And, more importantly, they should learn how to restore data from a backup after something goes wrong. They should know how to properly update their devices, how to tell if their devices are infected, and the basics of managing a home network. They sometimes learn how to do basic functions in excel spreadsheets. That’s about as far as they do, or should need to go in programming / IT. Beyond that, why should the average person need to know how to do recursion, or how loops work?
Worse than that, I don’t even really know how they relate to each other, I just know “key of C” means C, F, G. I actually even went so far as to write each major key progression down with my cheater chord pics.
So, I can tell you what I know from a bassist’s PoV.
What I posted was the 12 bar blues chord progression in Roman Numeral notation. What it tells you is that if you start in the key of C, the other bars are 4 and 5 notes up from C. In addition, since the notation is in uppercase, the chords / arpeggios you can play in that bar are major not minor. So, if a bassist is playing a walking bass line for 12 bar blues, they’ll probably start those bars with C, F and G. But, since they’re C major, F major and G major, the bassist can play major arpeggios in that key in those bars and it will sound good.
For other kinds of blues progressions, if you know Radiohead’s “Creep”, you can see that as being an 8 bar blues with the following progression:
1
2
3
4
I
III
IV
iv
I
vi
ii
V7
So if the root is C, the 2nd bar is E major, third bar is F major, 4th bar is F minor, and so on. Because the 3rd and 4th bars are both rooted at F the bassist can just play an F there and it sounds good (which is what I think Radiohead’s bassist does), but if the bassist chooses to play more notes in an apeggio, they have to play notes from the F-minor scale in that 4th bar or it doesn’t match.
As for why those various chord progressions happen to work, that I don’t know. I don’t know if anybody does. But, I do know there’s some math / physics behind it. A perfect fifth is one of the most pleasant sounding intervals, and those notes are at a frequency ratio of 2:3. The only better sounding thing is an octave at 1:2. And, the inverse of a perfect fifth is a perfect fourth. So, songs being made from 4ths, 5ths and octaves makes sense.
What if the 2030s change the approach and use AI to teach everybody how to program?
What does AI (already known to be an unreliable bullshitting machine) provide to students that existing tutorials, videos and teachers do not already?
Also the companies investing in AI are not trying to teach their workers to be better, they’re trying to make more profit by replacing workers or artificially increasing their outputs. Teaching people to program is not what they care about
Hiding the complexity behind nice interfaces makes it actually more difficult to understand programming.
This is a very important point, that most of my colleagues with OOP background seem to miss. They build a bunch of abstractions and then say it’s easy, because we have one liner in calling code, pretending that the rest of the code doesn’t exist. Oh yes, it certainly exists! And needs to be maintained, too.
I find this to be a real problem with visual shaders. I know how certain mathematical formulas affect an input, but instead of just pressing the Enter key and writing it down, I now have to move blocks around, and oh no, they were nicely logically aligned, now one block is covering another block, oh noo, what a mess and the auto sort thing messes up the logical sorting completly… well too bad.
And I find that most solutions on the internet utilizing the visual editor tend to forget that previous outputs can be reused. Getting normals from already generated noise without resampling somehow becomes arcane knowledge.
Explicit programmers are needed because the general public has failed to learn programming. Hiding the complexity behind nice interfaces makes it actually more difficult to understand programming.
This comes all from programmers using programs to abstract programming away.
What if the 2030s change the approach and use AI to teach everybody how to program?
That’s like saying that the general public has failed to learn surgery, or the general public has failed to learn chemical engineering.
There are certain things that it just doesn’t make sense for the general public to ever be expected to learn.
People bake and learn basic chemistry. The baseline of general programming knowledge could be more than zero. It’s a fundamental part of our society.
Baking is not chemical engineering. Chemical engineering doesn’t even have much to do with chemistry. It’s mostly about temperatures and flow rates, pressure, etc.
Saying “the baseline of programming knowledge could be more than zero” is meaningless. The baseline of chemical engineering knowledge could also be more than zero. It’s also a fundamental part of our society. But, the average person doesn’t need to know how to program, just like the average person doesn’t need to know how to design a refinery.
People do learn some basic computer skills. They should learn more. They should know about files. They should know how to back up their data. And, more importantly, they should learn how to restore data from a backup after something goes wrong. They should know how to properly update their devices, how to tell if their devices are infected, and the basics of managing a home network. They sometimes learn how to do basic functions in excel spreadsheets. That’s about as far as they do, or should need to go in programming / IT. Beyond that, why should the average person need to know how to do recursion, or how loops work?
If you look at “I didn’t have eggs” you’ll quickly figure out that very few people are learning chemistry from baking/cooking.
I memorized by rote the chord progressions in my favorite style of music. This does not mean I understand music theory at all.
I I I I IV IV I I V IV I IV
You nailed it ok.
Worse than that, I don’t even really know how they relate to each other, I just know “key of C” means C, F, G. I actually even went so far as to write each major key progression down with my cheater chord pics.
So, I can tell you what I know from a bassist’s PoV.
What I posted was the 12 bar blues chord progression in Roman Numeral notation. What it tells you is that if you start in the key of C, the other bars are 4 and 5 notes up from C. In addition, since the notation is in uppercase, the chords / arpeggios you can play in that bar are major not minor. So, if a bassist is playing a walking bass line for 12 bar blues, they’ll probably start those bars with C, F and G. But, since they’re C major, F major and G major, the bassist can play major arpeggios in that key in those bars and it will sound good.
For other kinds of blues progressions, if you know Radiohead’s “Creep”, you can see that as being an 8 bar blues with the following progression:
So if the root is C, the 2nd bar is E major, third bar is F major, 4th bar is F minor, and so on. Because the 3rd and 4th bars are both rooted at F the bassist can just play an F there and it sounds good (which is what I think Radiohead’s bassist does), but if the bassist chooses to play more notes in an apeggio, they have to play notes from the F-minor scale in that 4th bar or it doesn’t match.
As for why those various chord progressions happen to work, that I don’t know. I don’t know if anybody does. But, I do know there’s some math / physics behind it. A perfect fifth is one of the most pleasant sounding intervals, and those notes are at a frequency ratio of 2:3. The only better sounding thing is an octave at 1:2. And, the inverse of a perfect fifth is a perfect fourth. So, songs being made from 4ths, 5ths and octaves makes sense.
What does AI (already known to be an unreliable bullshitting machine) provide to students that existing tutorials, videos and teachers do not already?
Also the companies investing in AI are not trying to teach their workers to be better, they’re trying to make more profit by replacing workers or artificially increasing their outputs. Teaching people to program is not what they care about
This is a very important point, that most of my colleagues with OOP background seem to miss. They build a bunch of abstractions and then say it’s easy, because we have one liner in calling code, pretending that the rest of the code doesn’t exist. Oh yes, it certainly exists! And needs to be maintained, too.
I find this to be a real problem with visual shaders. I know how certain mathematical formulas affect an input, but instead of just pressing the Enter key and writing it down, I now have to move blocks around, and oh no, they were nicely logically aligned, now one block is covering another block, oh noo, what a mess and the auto sort thing messes up the logical sorting completly… well too bad.
And I find that most solutions on the internet utilizing the visual editor tend to forget that previous outputs can be reused. Getting normals from already generated noise without resampling somehow becomes arcane knowledge.
Edit: words.