I'm currently undergoing an undergraduate computer science degree on first semester.
And a few personal questions....
Do you have to be a extremely passionate (or freak) in programming in order to be a good programmer? The reason why I chose this degree is because it involves heavily on logic, creativity and problem solving, and it's quite an introverted job. And after I found out what basic programming feels like, I find it rather interesting, but it's not my true passion. That doesn't mean that I didn't like it and stopped me from learning about programming though. I actually like to learn anything (except designing graphics, I really hate it), as long as it's mentally stimulating.
My parents' advice was to choose the degree that suits my passion, which, in my case, it's about arts and philosophy. But we both know that a career in either arts or philosophy doesn't do much in a living, unless you're extremely talented. So I chose this degree.