Hey there. I'm 19 years old and I'm currently a student at a local community college. I came into college thinking I wanted to be an engineer, but after a few engineering-specific courses (Statics) I decided that engineering is not for me. Now I am looking into computer science and I am really excited about getting involved with it, but before I get in too deep I've got a few questions that you kind folks might be able to answer:

1. Unfortunately there is no computer science program at my current college, so I can't really start my computer science classes until I transfer to a four-year university, which I was planning on doing next Fall (2011) anyway. But now I am considering sticking around here for another year or two to get my Associate's in Applied Science in Information Systems Technology with a specialization in Computer Programming, thinking that getting a little familiarity and experience with various computer programming languages (Visual Basic.NET, Java, C++) will make things easier for me in the future in pursuing my degrees in computer science and later in my career. So my first question(s): How essential is computer programming to computer science? Would it be worth my time to take a year or two to pursue this Associate's Degree?

2. When I think of companies that hire graduates of computer science, I think of IBM, Google, Microsoft, and NASA. Obviously I would be ecstatic if I got an opportunity to work for any of these companies, but I come from a relatively small town and working for one of these companies seems like a bit of a long shot for me. Do only large companies such as these hire computer science graduates? What other kinds of companies hire computer scientists?

3. If you feel like it, explain in your own words what computer science is. I've been doing some reading and I think I know what it is, but different perspectives and explanations are always nice.


1) Look at the degree requirements for the four-year university, and take all the courses you can that are general requirements (English, History, Psychology, etc.) and get them out of the way. This will allow you to focus on your major when you transfer (and will cost less money).

2) Everyone hires CS graduates :)

3) I believe that there are now two different types of CS degrees which I classify as "Tool Builders" and "Tool Users". "Tool Users" degrees focus on different programming languages, web development, etc. "Tool Builders" focus on CS theory, algorithms, data structures, etc.

IBM, Google, etc. like "Tool Builders". Everyone else likes "Tool Users". Builders can be Users, but it's a rare User who can substitute for a Builder.

Ok I'm going to answer your questions base on my experience getting my CS degree.

1. My University offered two different Computer Science degree: a BA (Bachelor in Arts) and BS (Bachelor in Science). The main difference between those two is that the BS degree is under the School of Engineering and the BA is under the School of Arts and Science. I went for my BS in CS so I took a lot of the same non-specific major classes as any other engineers. The BS in CS is really heavy on Math, so much so I got a minor in Math.
As for how essential programming is for CS, it will help you do assignments and projects but CS focus on the theories of computer science, i.e. algorithm, operating systems, data structures to name a few. I started my degree with little knowledge of programming and did fine with the degree.

2. As for companies hiring CS graduates, think of it like this. Not every company will need a civil engineer. Not every company will need a chemical engineer. However, every company have computers and will need CS graduates.

3. My opinion about computer science is that its a lot about learning the theories behind computers more so than the programming aspect. A lot of my classes i took in college weren't a programming language class but rather a conceptual or theory class on a certain topic about computers. To be honest, when I first entered CS I thought it was all about code and programming but was corrected very soon.

I hope I shed some light on it. If you have any questions please feel free to ask.