What is Computer Science Really?
In theory what is it?
General understanding of hardware design/components of a computer. Specific (current) knowledge of programming languages, operating systems, internet technology/protocol, software engineering principles, databases, data structures and algorithms, current software design principles.
Being curious enought to not only study the "why and the how" behind how programs work in computers, cars, refrigerators, etc but take that information and write your own programs.
What is it used for?
Primarily Writing, working with, and supporting Software.
What does the major actually entail - work-wise?
An underlying principle of computer architecture and programming languages.
Projects - Hands on. Hours of creating and endless amount of programs. Days of debugging and testing.
Extensive terminology. Comprehensive understanding. Many thought problems.
What kind of jobs do you get with it?
Software Engineering (Operating systems, computer games, search engines, web applications, writing cool code that everyone will pat you on the back for (Quake) to boring code that most people will never know is actually code)
Computer Scientist (theoretical logic problems—many of which are limited subset of math problems)
Database Administrator (Generally the highest paid—but basically because of the value of the data
that you will be controlling/insuring in the database)
What are the fellow students like (personalitywise) in it?
Patient, Nerdy, Problem Solving/ Analytical / Detail oriented Passive-Aggressive. Self-Overvalued. Highly "individual"—i.e. not terribly good working with others.
That computer science majors make tons of money. The lesson to be learned here is that compensation is equivalent to work. Ideally, you are worth your salary - it's not so much that you are making megabucks but you are due worthy compensation for a painfully acquired skillset.
Unfortunately, the market dynamics force any skillset to be valued by the number of other people who also know it, and by how rigorously you know and pursue the compensation you deserve. As far as things goes, the programming skillset is not the most difficult kind of knowledge, and the market values the true gems of the skillset (documentation, proper style, process specification, etc) far less than the programmer does—out of proportion with the effort required to acquire the skillset. I hate to say it, but in many ways, it is better to learn to program from some cheap books—unless you feel you need the computer science degree to certify you in some way.
A final misconception I can think of is the "job lifetime". Many people thing that computer science
majors are worth a lot and always employable. This is not the case. More so than other majors, the
computer science major is trained on the "latest" technology and programming languages, and when those
change—as they commonly do every 5 years, the computer science major's specific programming knowledge
is outmoded, and he/she is generally fired for the new hot-shot college CS grad who knows the new
languages and technology well, and does not
know how much he/she is worth. i.e. They can be paid less
for more. CS is a really dangerous major to take out large loans on. You can almost guarantee a few years
employment though—maybe not job security, but a good few years in general.