I would disagree on this one as well, but it depends on the industry, and on the mindset: if you hire people that have only ever worked in go-go-ship-crap-but-ship environments you can't expect them to suddenly start thinking about unit tests, technical debt and good code hygiene, they need to be mentored to switch to that mindset (which is where the advice of mixing young/old talent comes in).
To give you an example I have been working for over 10 years at the same company and have to support today infrastructure code I wrote 6-7 years ago, and the previous company I worked at I worked for 5 years in a similar environment.
You can bet anything I write is VERY well unit tested and VERY easily understandable, and am extremely careful about technical debt and will push back quite strongly if asked to incur it "just for this ad-hoc fix/feature/deliverable", but that comes from a career spent with a certain mindset, when I was fresh out of university the words "unit tests" and "technical debt" were not part of my lexicon, I had a lot of algorithmic knowledge, but in a university environment you aren't drilled nearly as much as you should be on good code hygiene and practices.
If it was me in universities I would have a course in your 1st year where you have to develop some sort of application, and in your 5th year a follow-up course where you have to extend your original application and a classmate's in some significant way, that would drive the technical debt and writing code/docs/comment so you/others can understand later points very well.
And I would make it very clear over and over again that it's not the case that the less lines of code you write the faster it's executed, and that often the most compact solution ends up being the slower and less maintainable one.