Bad programmers are often comfortable within the constraints of their narrow skill sets…
Their code is large, messy, and bug laden.
They have very superficial knowledge of their problem domain and their tools.
Their code has a lot of copy/paste, and they have very little interest in techniques that reduce it.
They fail to account for edge cases, while inefficiently dealing with the general case.
They never have time to comment their code or break it into smaller pieces.
Empirical evidence plays no role in their decisions.
Binstock, A. (2012, July 9). What Makes Bad Programmers Different? InformationWeek, 36-37.