
Originally Posted by
Dr Unne
CS is more integrated with mathematics than many people realize. After a certain point it's all number theory. Theory of computation, the Church-Turing thesis etc. "The computable functions are exactly the functions which can be calculated by a mechanical calculation device." That has some rather profound consequences. Also you can study encryption, which is 100% math. And there are P vs. NP problems. "Given a number X, is X prime?" As X gets bigger, the question either becomes exponentially harder to solve (in which case for a sufficiently large X, we're pretty much screwed), or else we just haven't found the right algorithm to solve it yet. No one knows which is the answer. There are problems that it's mathematically provable that no computer could solve, even with a billion years to attempt it. The logic of computers is directly applicable to everything. Studying computers often turns into studying the nature of knowledge itself. I'm not sure where to draw the line between computer science and philosophy, for example.
So far as the programming aspect of it, I find it enjoyable. Programming demands perfectionism, and that fits right in with my personality. It also demands an attention span that borders upon mental disease. Prolonged concentration for 8 or 10 hours at a time. Not everyone is going to find that kind of thing enjoyable. But it also lets you be creative, and it lets you create something useful. Programming is not an art, to me, but more like a craft; like a blacksmith, who fashions some tool by hand out of raw materials, and can take pride in the craftsmanship. (But without all the sweating.)
There is no such thing as a "hardest" major. Some things are easy for some people, some are easier for others. I find biology to be a very difficult subject. My roommates were in med school, and they memorized names and positions of body parts and chemical formulas and molecule structures 4 hours a night. I could never, ever have succeeded in that, because I can't stand constant memorization of random facts.