What I wanted was to develop applications, write games and apply my knowledge of programming to create things which would have astounded my younger self, and sometime still astound me today. Turns out, there is a very big difference between this and Computer Science.
Computer Science is Theory
I didn't know going in that Computer Science is entirely theoretical. My early classes did not reflect this; in fact, looking back on it now I think there is a bit of an identity crisis going on within the world of CS. The first class I took taught basic programming skills with Python. The second and third classes I took were Object Oriented Programming and Computer Logic. The OOP course was taught entirely in Java, explained how to use Java, but then told us they weren't teaching us Java. What they wanted was to teach OOP, what they had to do was give us Java as an example.
Computer Logic was entirely theory, and was the first class that got me thinking about this topic. Every time I ever said I liked to program, I was told Computer Science is the degree to get. Computer Science is the programming degree. I can understand now why everyone has that misconception.
I went on to take a few more classes with a lot of programming, but after the 300 level of courses, that just phased out. No longer was I doing what I loved. The entire second half of my time in college was spent studying the theory within Computer Science. Now, I can't speak for all universities, and I know there are a great deal out there who offer applied CS and theoretical CS as separate tracks, but the issue still runs through the majority of schools.
Computer Science is Important
Blindly programming without knowledge of how things work is terrible. To be able to produce quality code, you have to know how things work and how to work things beyond the basics. You need to really understand recursion and you have to know how trees work and how to make use of algorithms. Without the theoretical side of things, a developer is only half as great as they could be. I am not denying this fact. However, everyone is different. Some people thrive more on the theory, some thrive more on the application. Teaching to the theoretical can snuff out the application just as much as teaching the application can overlook the theoretical.
In fact, finding the balance between the two based on the intended work of the individual can prove to be the best way to go about things. For me, I went outside the curriculum and practiced application on my own. I would take what we were taught and apply it to whatever I could in order to learn the side of things I felt we were missing out on. That would be fine and dandy if I wasn't simultaneously being told to give up on that.
Computer Science is Not Selective
The biggest outlet I found for my desire to program was in web development. I fell in love. I started with what most people start with, basic HTML. That was a long, long time ago. From there I stumbled into a giant PHP codebase and taught myself from that. Eventually, I was driven to learn new technologies and systems, all the way up until now. My latest love has been NodeJS, which I feel does exactly what I need it to do to scratch my development itch.
I can't tell you how many times I've been told things like "web development is a useless field" or "if you are planning to do web development, you should just give up now". These are direct quotes from professors whose classes were required to be taken in order to get my degree. Every time these kinds of statements would be made, my friends around me would turn and smile because of how vocal I am about my passion for web development. Once, I was even told sternly that I won't be the next big developer. An industry mentor who I was paired with told me, word for word to give up those dreams. I wouldn't have it.
Sure, the chances of striking gold with something I make are low, but that won't stop me. That isn't why we do this. We do this because we love to do it. Making money is great, sure, but this is more than a job to me, it is who I am. This is what I spend my time doing, and telling me not to is just damn wrong. Computer Science doesn't belong to one field or another. Don't lie to yourself and say that one field is better or worse than another. We all need everyone else in the field in order to continue driving ourselves further into the technology.
Computer Science is Misunderstood
The general public would hear "Computer Science" and have no idea what it means. The informed public would hear "Computer Science" and say programming. The CS crowd would hear "Computer Science" and have no idea what it means.
As a student who is finishing up his final work in the degree, I don't think I could give a direct answer to "What is Computer Science?" I would probably fumble around with my words and mention programming and theory at some point, but nowhere did I get a clear definition of the degree. I can't say for sure, but I don't even think the faculty knows what they want it to be, either. Some wanted us to program, most wanted us to research, and nowhere were we told how any of this works out beyond the realm of academia. I relied on internships to teach me how it all works in the field, and that is what this is really all about, isn't it?
I don't think we all collectively know what we are doing with the idea of Computer Science. Do we just not have a better word for either side of the debate? Is it even a science? Is it an engineering degree? You could say it is akin to a Physics degree or you could relate it to an Electrical Engineering degree. Which is it? Are we implementing or researching? Researching via implementation? Can we make that decision for ourselves?
Computer Science is My Life
At the end of the day, I have learned a lot. I began college with what I thought was a good understanding of programming. I ended college with a better understanding of programming, but there is an endless realm of knowledge and experience for us to explore. You can be an expert in one thing and know nothing about something else. The problem is, we have a hard time understanding that and a harder time teaching to that philosophy.
I didn't want a Computer Science degree, but how can you want something that doesn't have a definition?
I wanted a Computer Science degree that doesn't currently exist.