Programming used to be hard because of the hyper-optimization needed to get things to run.
Now programming is hard because of the giant scale of existing open source codebases.
It's not just the libraries, it's the toolchains, the build systems, the versioning tools, and that's just the things I've touched myself.
Someone once compared classical mathematics with modern mathematics, with the analogy of open pit mining vs deep shaft mining. I think programming has followed a similar trend. Modern programming involves strategically using existing tools, combining them without making major modifications to any of them. Of course, this is just for the individual programmer working on a discrete task. There is still room to participate in or lead large projects.
Now programming is hard because of the giant scale of existing open source codebases.
It's not just the libraries, it's the toolchains, the build systems, the versioning tools, and that's just the things I've touched myself.
Someone once compared classical mathematics with modern mathematics, with the analogy of open pit mining vs deep shaft mining. I think programming has followed a similar trend. Modern programming involves strategically using existing tools, combining them without making major modifications to any of them. Of course, this is just for the individual programmer working on a discrete task. There is still room to participate in or lead large projects.