To take your analogy, my view is that in practice it is considered that we should hire physicists or mathematicians to design and engineer bridges. "Engineering" is almost sneered at as being somehow inferior or a trivially learned skill.
To take your analogy, my view is that in practice it is considered that we should hire physicists or mathematicians to design and engineer bridges. "Engineering" is almost sneered at as being somehow inferior or a trivially learned skill.
To transport the analogy back into software engineering: Someone who has only done theoretical computer science is probably not going to write the best code right off the bat. But you also shouldn't put someone who has no grasp of the underlying theory to work on scalable, fault-tolerant distributed systems, constraint solvers, or any number of other problems that had a lot of theoretical consideration put into them before someone came up with the current best algorithms.
Just like mechanical engineers need to know some physics, software engineers should know enough theory to have an idea of where to look for a solution to their problem.
This is such horseshit. Computer Science gives you the intuition needed to guide you to making more correct decisions you make in building your software rather than wrong. When you have these practitioners hitting the scene all of a sudden who just simply learn xyz latest framework/tool/fad and then are faced with a new and interesting complex challenge (for example, computers all of a sudden now have multiple cores! surprise!), they do not have the background to adapt and spend much time cutting their teeth, creating many bugs in their wake.
If you think that having the theory makes you write worse software, I feel bad for you because your computer science education must have been shit and you probably wasted your money. In that sense I understand the bitterness that a lot of people have.
Here's my view, as a person who has formal education in engineering, physics, and mathematics: there are an awful lot of CS grads looking for nails to apply their textbook theory hammers to without understanding that simply knowing theory is not enough. I think you need to reconsider why the bitterness exists.
You: I disagree.
Do you see how someone could make the mistake of thinking you meant "theory is useless"?
FWIW, I agree with you both.
The bitter and vitriolic comment I responded to is a reflection of this.
I would say that the "99% of the time" implies that the quantity of issues comes from engineering problems of all kinds, and I would agree with you that many educational systems tend to forget to teach people simple craft while focusing on theory.
On the other hand, I would say the 1% is more damaging in nature. That's why I said 'a lot of', because these things will really hurt in the long term, rather than the ton of small bugs that are caused by bad engineering.