From what I’ve heard, it’s more like.. when people get a computer science degree, they get a piece of paper. They may or may not be able to program. They may get a job in the field. They may or may not need to learn software development.

It may or may not be the blocker. They might not even be able to mentally solve problems with step by step commands. Whatever part it is, the people submitting applications can code a solution to something that prints every 3rd number from 1 to 100. Super-simple stuff. Others’ code couldnt even compile in other discussions.

You really can’t, in general. I have tutored intelligent, dedicated people who simply couldn’t get it. I think the fundamental limitation is not intellectual, but in any case it’s very real and prevalent.

That we spend a ridiculous amount of time setting up builds, releases and general tooling.

That’s my pet peeve right now. What’s worse, every time I tried to fix it using my experience as a programmer and knowing how to abstract and DRY, I met a very hard push back from people insisting that everything should be left as is and there’s nothing wrong in writing tons of configs for every project.

This is probably the main reason I love coding with C. I can write a simple mkfile (plan9’s mk(1) is FAR superior to GNU Make, honestly) that’s about 20 lines and it compiles the whole project. While you can do this with other languages (rustc, as the rustaceans keep on mentioning to me), the dependencies usually are not so clean and it’s… generally more difficult.

Dependencies are the reason I despise building C/C++ with Makefiles. If you want it to work reliably, you need to extract references to header files, find where the libraries you link to are located, and store all these paths as dependencies for future runs. And then you’re in CMake land and it’s no longer pretty.

The Go build tool has this resolved. Go + mk would be love-worthy. They have the same people behind them, too.

That the worst thing about hacks that somehow work isn’t the possibility that they might suddenly stop working, but the fact that you’ll have to mentally evaluate whether the hack is the reason every single time there appears to be a problem.