Plus anything that heightens your visual-spatial cognitive ability--the true great programmers can reason about programming problems in abstract geometric ways, and can arrive at novel solutions while also having a difficult time explaining precisely how they did so.