<p>Pay seems good, too… about on par with what engineers make; really, towards the middle- to high-end of engineering salaries, if you consider all engineering disciplines.</p>
<p>It’s my understanding that the major is a little more flexible than typical engineering major, but your mileage may vary. This can only be positive, since it will give you a chance to tailor the experience to your needs (take easier electives for better grades and more social life, or take harder courses for personal interest or more sheepskin). </p>
<p>On the negative side, it is a hard major and not a very diverse one (in terms of enrollment… women, minorities, etc.). Stereotypes may be true of many students (though they won’t be true of all, or perhaps even most, CS students). CS programs typically require a lot of work and a lot of working on a computer, so if working at a computer isn’t your thing, you might not like a lot of the work you are required to do (programming).</p>
<p>Additionally, CS programs typically require that you become fairly comfortable with constructing and understanding simple proofs. This is different from most other STEM disciplines (except, of course, math, and maybe some of the more “pure” natural sciences), where such an understanding is usually not required.</p>
<p>Do you need to have prior experience to do well in your college classes?
Should I take a Computer Science class my Senior year of high school so I don’t die?</p>
<p>Go grab any basic book on C or C++ programming, download yourself a free compiler or an IDE like Code Blocks or Bloodshed, and complete the book. If you absolutely hate it, CS isn’t for you.</p>
<p>The great bulk of what you’ll be doing as a CS major is software engineering (computer programming done right), think of it as applied computer science, because <em>real</em> computer science or “pure” computer science is a branch of math concerned with computation, algorithms, complexity, relations, etc. Read up on discrete mathematics, boolean algebra, predicate calculus, proofs, set relations, etc. See if these topics seem at least kind of interesting to you. A lot of the same techniques and mental muscles you’ll use for those topics will be used in applied computer science, AKA software engineering. To say nothing of elementary algebra.</p>
<p>How is your critical thinking skills? It is all about your mind and how you can look at the problem and find a solution for it in the most efficient matter.</p>
<p>If you’re using Windows, the Visual Studio Express Edition C++ and C# IDEs are pretty good and free.</p>
<p>I wouldn’t worry about working through an entire programming book of exercises… although doing so could only help you. Rather, I’d look at it as practice.</p>