They're not really arrogant, they just come off as such. Programmers usually are pretty clever cookies and as a rule are more often right than wrong, even if the subject is not programming, that alone is enough to mark them as arrogant. We also tend to be an opinionated bunch. Some of them compound the problem by no longer considering other people to be occasionally right and them being wrong and do cross the line in…
At work, I'm surrounded by smart people. They often outsmart me but a common trap they fall into is not doing enough meta thinking. They seem stuck on level 1 of things.