I vote this.
Not to hijack the topic, but I've considered doing CS and have taken an introductory course to test the waters. I'm basically addicted. I love the problem solving, yes, even that bit of frustration where you want to break stuff, and love the hands on approach. Is this a good gauge as to whether or not I can succeed in CS?
Woo boy... this is a very tricky question to answer and you will see why. First off, define CS... Like any other aspect of technology, everyone and their mom has a definition for CS... Some say it focuses soley on the programming/software side of things, while other say that hardware is just as important in the field of CS... If you are strictly talking about software development/programming, then, in my opinion (and again, everyone will have their own), you need two fundamental characteristics to succeed as a software developer:
1) You need to have the brain for it. Just as some people are better at solving chemical equations, a software developer needs to be able to think outside of the box and be able to do it well. For every answer to a problem, one must foresee 50 more answers... It's not something that can be learned, it's something that one is born with... It's the way a particular person's brain works... Without this characteristic, one will never make it in the software field... period...
2) The person must enjoy the field so much, that he/she becomes an animal. I use the term "animal" to mean that the person eats, sleeps, and dreams what he/she enjoys... A person must have the desire to dive into a project, tackling the challenges head on. You can be trained by an institution all you want, but to truly rise as a great developer, you must devote your life to the "craft". The more you research, study, and read about CS, and the more info you actually absorb, the greater your craft will become.
Programming is an art. There is no one clear-cut way of doing anything.. just as every drawing of a sunset will differ, so will every piece of code that solves a quadratic equation. Of course, piracy is inevitable in either field, but that is neither here, nor there. What I am trying to get at is the more you devote your free time to what you do, and the more you love what you do, the better you will become... If you simply take courses at a university, do the homework, and take the tests, you will never amount to anything in the field...
I apologize for the lengthy post, but I hope that you realize now exactly how deep this field of study really is.