Yep! And some universities, like The University of Waterloo, allow you to get either a Bachelors of CompSci or a BMath. And almost everyone at Waterloo agrees that the BMath one is harder and better. They also offer a software engineering course that is also difficult, but with a lot more focus on getting computers and software development closer to the ideal we have in structural engineering. I.e., let's treat these things like the live saving machines they are, and not as something we can move fast and break.
That's the rub; no one actually wants to hire "software engineers", for all that that's the job title.
They want programmers, who will write code they can sell as quickly and cheaply as possible. Trying to raise a software engineering discipline to the standard of the real engineers would leave you with an employee too expensive to do what his professional ethics wouldn't allow him to.
This doesn’t track with my experience in industry whatsoever. In fact, those sorts of “low ethics” programmers are arguably the biggest hiring risk, and large amounts of effort and dollars are put into avoiding hiring them.
> Trying to raise a software engineering discipline to the standard of the real engineers would leave you with an employee too expensive to do what his professional ethics wouldn't allow him to.
Nah. The vast majority of software projects are of the lower echelon variety e.g., the slapdash shopping cart web apps. Considering JavaScript is still the language of choice in that realm, engineering rigors can’t exactly be of any real consideration.
No, it’s not the expense keeping real engineering away, it’s the culture.
Also most of what "software engineers" are asked to work on are not engineering problems. There are of course exceptions, but the vast majority of positions labelled "software engineer" aren't doing anything that would really be called engineering. You are just wiring frameworks together to achieve some goal and reading the documentation to figure out how to make it work.