It is my opinion that I don't think there are any specific traits that exclude you from being a programmer, I honestly think just about anyone with a little (ok, maybe a lot of) desire can do it, it's just a matter of how much time you want to spend. That being said, I think there are several common misconceptions about skills that are a big plus. First off, you don't need to be some sort of math whiz to be a programmer; it's certainly important to understand the basics, and to feel comfortable with algebra, but that's about it. Of course, there are exceptions to this; for example, if you are interested in graphics or game programming, having stronger math skills will definitely go a long way. Another common misconception is that you need to be some sort of Spock logic monster; I've also found this generally to not be true as well, although once again, it certainly doesn't hurt to have a sense of 'order'. So, what traits are desirable? Being motivated by challenge is definitely a BIG plus, since you're basically entering into a game where you are challenged on every corner. It's also very important to be relentless in pursuing your goal, but at the same time being able to remain flexible enough to not be blinded by perceived limits. Finally, I think a helping of obsessive-compulsive disorder tops things off well, giving you that extra motivation to take things well beyond where any sane person would .