I dislike the kind of programmer who always wants to show off his/her everyone-else-is-an-idiot type of smart, but never takes any responsibility even for the smallest bugs he/she has introduced.
Lack of taking responsibility is a big temptation for everyone, especially if your work environment doesn't allow for mistakes. I've seen this kind of behavior permeate a large programming team, even people I respect. If you have good management (i.e. they are seeking "lessons learned" rather than scalps on one hand, but hold people to some accountability on the other), I think you can deal with the occasional egotistical/immature programmer. Of course if the management is that programmer, then you have a problem...