>> "Software engineers live in their own world. With few exceptions, >> they only focus on computers and themselves. A problem is seen >> as solved as soon as the algorithm is correct and the compiler > >does not come back with any syntax errors." > > That might be how it's done in undergraduate programming classes. But > in the real-world software teams I've been on, this isn't true at all. > Engineers balance many different factors as they work: correctness, > understandability of code, making code adaptable to later changes > (often by other people), speed of development, likelihood of > introducing new bugs, runtime resource usage, decoupling of subsystems, > testability, conformance to specs and coding standards, etc. In other > words, a LOT of what engineers think about are, in fact, human factors > issues! (For other engineers, not for users; but that's the nature of > the role.) Good code craftsmanship means writing for humans, not just > writing for the computer.
I have to strongly disagree: It has nothing to do with human factors.
Even if it would, the person who does everything you have described above
well can be called "an ideal software-engineer". I admit there can be few
people with such charachteristics but it is rather an exception.
> Does the stereotype suggest that all software engineers are arrogant > and myopic?
No. Of course not. Not _all_ engineers. But _the most of them_.
Do you see the difference?