There's a lot of talk around this site and elsewhere about comparing the productivity of excellent programmers to "average" programmers. Likewise, there's talk of how to become a great programmer instead of an "average" one. Everyone can agree there are definitely some amazing coders out there, and lots more (very) subpar programmers. These are easy to define (designed and wrote a text editor in Assembly on a Nintendo DS over a weekend vs checks in copy-and-paste code that doesn't compile on a daily basis). But what qualities does an average coder have? This I think is important beyond just an academic discussion, such as making hiring decisions and sizing up where you are on the crappy-amazing scale.
So what qualities does an "average" programmer have or should have?