I find a lot of this has more to do with the organization and management than the coder itself.
Taking a pre-production build to a customer and getting angry when it doesn't work? That's an organizational problem, and the developer is justified in getting angry at someone for doing that.
Taking a pre-production build to a customer and getting angry when it doesn't work? That's an organizational problem, and the developer is justified in getting angry at someone for doing that.