I have noticed that CS majors tend to be separated into two groups, those who got linear algebra and those who got THROUGH it. Programmers are very logical in their thinking but most are not what I would call traditionally mathematical in their approach to problems.