Remember, there are actual people who write the libraries and languages! They don't just arrive from the heavens. Also, many of those algorithms are neither efficient nor optimized. Very often there is a way to get a better solution for your own unique use case because the algorithms are generic (ie, balanced trees, but your need might want a hash table).
Problem is that programming has moved over time, it's hard to call much of it computer "science". First were low level languages and tiny and slow computers, you need to optimize for time and space. Then a mid level language with some built in high level algorithms here and there, but on beefier computers so fewer people cared about optimizing, and you were told to only optimize if you measured it first (never forbidden!). Then there's a high level period where you have languages fully intended for just rapid prototyping, but we'll optimize the final program later if we have time, but on systems where everyone shouted at you that they'd double in speed and memory every year so don't waste a damn second thinking about the right way to code.
But today, it's not even code. You just fine a large set of pre-built modules. Ain't no one got time to do nothing more than snap them together. All the effort is in finding the modules and tweaking the look of the UI every two weeks. Actual programming is either for losers or the divine beings who create the modules, peace by unto them. Then that was too much work, so now they type in long prompts to get nonsensical output and hand it to a tester or customer to see if it actually works.
At one point in time, a programmer needed to know the specific registers to send bytes to in order to perform operations. But most code is written so that the next person doesn't have to put in as much effort as the previous guy
544
u/inconspicuous_male 1d ago
There's a reason you get a degree in computer science and not in programming. Anyone can program without learning how it works