Even with formal schooling you forget all the stuff you don't use weekly within a semester of last using it.
I think one condensed class on algorithms and data structures could have replaced the three I took if the low level CS classes had emphasized thinking about time complexity and planning before you code. If you're used to thinking about "I only have X resources, what's a not crap way to get Y done" then learning specific data structures and algorithms as you need them is second nature.
I don't think that's true if you learnt it properly the first time. I can still solve a quadratic equation, and I learnt that more than ten years ago and definitely haven't used it since.
I think there's a general rejection of knowledge, and software development has a continue cycle of reinventing the wheel because a large number of developers have no formal training. This something we are now celebrating instead of looking down on.
On the front page today there's separately a 'America needs to reject degree qualifications' and 'How do we get a certified certificate for developers'.....
At least you remember that they exist, and have a rough idea about how they work, which is more than someone who never took the courses. They probably could have condensed the courses and stuck with a few basic proofs instead of the more rigorous proofs I had to do.
The main reason they didn't is because those topics are mostly settled and unchanging, which means they don't have to rewrite a new course every few years. There are easily 5-6 courses I'd rather have taken but some of the most useful topics were too cutting edge to make it down to a Bachelors program in most Universities. The curse of a cutting edge field I guess.
Fairly true, but uni grads seem to do better at both and just general programming. There are definitely lots of people from both camps that are interviewing for programming jobs that can't actually write code.
I think one condensed class on algorithms and data structures could have replaced the three I took if the low level CS classes had emphasized thinking about time complexity and planning before you code. If you're used to thinking about "I only have X resources, what's a not crap way to get Y done" then learning specific data structures and algorithms as you need them is second nature.