I do believe that we could create specializations that are not too specific yet useful, the main goal is to get rid of subjects that the student likely never encounter, I mean, we can start teaching history in Computer Science because maybe you'll program the next Age of Empires, yet we agree that the likelihood of that is so small, we can round it down to 0, my issue is that we don't check this for all the current subjects so that we don't waste people's time teaching them stuff they will never use.
> To put into perspective the absolute insanity, if it were up to hiring managers, we'd have a university trajectory "Bachelor Java backend developer", "Bachelor .NET backend developer", "Master of Microservices", etc.
You don't need "Bachelor .NET backend developer", you just need "Backend Developer", someone who has a good knowledge of one stack can easily migrate to another in the same field.
> which are obsolete within 2 years and catching up is left entirely to the individual
- MVC was invented in the 70s, still useful, it's been over 50 years and counting
- SQL also appeared around the 70s
- OOP appeared in the 50s, that's over 70 years and counting
If you know MVC, you can do MVVM.
If you can handle MySQL it's doubtful that you will have trouble with MongoDB.
I'm not implying that there were no changes and you don't need to keep yourself up to date, I'm saying that there are technologies and concepts that have longevity.
3D engineering and backend engineering are very different, but backend engineering is generally easier than 3D engineering. Meanwhile, mobile engineering and backend engineering are far closer related. If one argues mobile engineering and backend engineering are different enough to warrant separate majors, you might as well argue "console/pc game development" and "mobile game development" do the same. You end up with so many ways to split hairs you're really just appeasing hiring managers being lazy.
To put into perspective the absolute insanity, if it were up to hiring managers, we'd have a university trajectory "Bachelor Java backend developer", "Bachelor .NET backend developer", "Master of Microservices", etc. which are obsolete within 2 years and catching up is left entirely to the individual. The field changes way too rapidly while also denying the similarities between different aspects and the ability to learn most things as long as someone can function as a specialist (and most places have a specialist already). Current courses may be too generalist, but at the very least they acknowledge almost every field in CS is effectively still data creation, modification and storage, while strategizing around physical limitations.