Computer Science - What Is It?

<p>I'm aware that there is another thread on this major, but I didn't want my question buried in another thread.</p>

<p>So I already applied as a CS major to UC Santa Barbara and UC Irvine. However, it was admittedly an uninformed decision. Can someone explain to me what exactly CS is and what to expect out of it?</p>

<p>I've heard varying things about this major by now. Apparently, it's not something your average joe schmoe computer enthusiast (like me) would be crazy about. I hear that its not very practical in the real world and some people claim theres difficulty finding jobs. I've also heard that it is an extremely rigorous course and very math intensive (my weakness). On the other hand, I've seen articles claiming that there will be great job outlook for CS majors in the future and apparently the pay is very decent. It's possible one may actually find it interesting as well.</p>

<p>While I'm at it, I'm currently researching this major and others. I'd appreciate any advice anyone could give. Just a little about me: I am a computer enthusiast, but I always considered math to be my weakest subject (although I can probably hold my own). Was always around the top of the class when it came to history, and my writing is very good; my teachers have recommended going into speech writing or law or something similar, but I'm worried about practicality in the real world (for example, odds of landing a job, pay, etc). Thanks in advance.</p>

<p>Hello WCF. The Computer Science Major combines Mathematics with programming languages. I have to admit it is not for the faint of heart. There are alot of other technology based majors within a variety of universities. If you feel as though computer science interests you, but Math is not your strong suit, you may want to look into Information Technology, or Information Systems majors. They tend to focus on creating and implementing databases. Or you can focus on a major which focuses on hardware of a computer rather than programming and programming languages</p>

<p>When you study Computer Science, you'll take programming classes like Java and C++. You'll have many math classes due to the algorithms you will have to code, and you may also learn some Computer Graphics. I personally am majoring in this field, I find coding and making the computer do what you want VERY fun =)
If you like graphics more, try Web Design, Graphic Design, or Computer Graphics. These all include coding, just less =)</p>

<p>I was in the same situation you are: I applied to CS because I built my own computers, played PC games (and tinkered with their mod tools), knew how to reformat my drive, etc. Like you, I applied without having a clue what CS was. I also considered myself to be only slightly above average in mathematics, so I can share in your apprehension there. I'm now finishing my BSc in CS and (hopefully) heading to graduate school next fall. I'll give you some of the insights and experiences I've had (you asked for it - long post!)... hopefully they might help you or other CS potentials. I’ll start by addressing the broader topics then narrowing down on the minor details.</p>

<p>What is CS?
Unlike physics, chemistry, art, or music, CS and other technology majors are relatively new. As such, there tends to be a fair amount of flexibility in what you learn. For instance, some departments emphasize computer programming and software design (this may also be an entirely different major called software engineering); others emphasize theory behind algorithms, data structures, and computing. In general, most programs tend to follow the latter with programming as a tool to visualize and reinforce theory.</p>

<p>Computer Science is actually rather hard to define. In fact, I’m not too fond of most definitions of CS; as with many other fields, CS is way too broad to fit neatly into a few sentences or words. Some people even object to the “science” in “computer science,” because they believe it studies a machine rather than some set of natural laws or truths. Personally, I think people should be objecting to the use of “computer” in the title. Instead of a bland and hollow definition, I’ll offer you my opinion on what a good CS program should do: help you to truly think logically. CS is about recognizing patterns, understanding structure, thinking recursively, and converting thoughts to procedures.</p>

<p>In terms of employability, this means computer science is an excellent degree for any profession that requires you to use your brain! You are not limited to jobs relating to technology at all. You mentioned law: CS would be extremely attractive to law schools as it sets you apart from the liberal arts undergrads, prepares you better for logical argument, and provides greater flexibility in specialization (intellectual property). I think one of my deans mentioned he thought a double-major in CS/Philosophy would be the perfect undergraduate combination for an aspiring lawyer. The point is that CS does not necessarily lead to a programming job like so many believe.</p>

<p>Difficulty & Job Prospects
I think most would agree that CS has a reputation of being a serious field, but the difficulty factor depends upon the institution you attend and your motivation more than anything else. There are real benefits to this reputation: for one, you’re far more likely to receive financial aid in science and mathematics than the arts; in addition, you will be in higher demand when finding a job. </p>

<p>One of my concerns when entering CS was the outsourcing issue with India. I’ve come to realize this is less of a threat than I anticipated: the issue is grossly spun such that it seems graduates are unwanted. In reality, lots of outsourcing is done a result of this fear leaving a dearth of talent in the industry; the remainder affects the IT sector that deals with what most college graduates would consider menial tasks: customer service, repetitive / simple programming, etc. Do some research on the topic to allay any fears you might have. (Better</a> Job Outlook for CS Grads is a recent article)</p>

<p>Mathematics
The main reason people are afraid of mathematics is that the teachers tend to be abysmal, dreadfully boring, absent-minded, aloof, and in every way detrimental to your understanding what is otherwise wondrous and even enjoyable. Bad mathematics courses are bloated with unnecessary formalism and pointless rote memorization. I used to absolutely dread mathematics in high school; it took one good teacher to turn this around for me. </p>

<p>Unfortunately, you can’t rely on having a good mathematics professor, especially in college. Your early courses will likely be taught by a recent graduate who is more concerned with stroking their ego by using arcane notations and memorized steps than enlightening you to the simplicity and purpose of what you’re learning. The best approach to learning mathematics (and physics, for that matter) is to understand the context of what you’re learning. For example, linear algebra was one of my favorite courses because vectors and matrices are everywhere in computer graphics. Discrete mathematics is useful in artificial intelligence when you’re using search algorithms (pathfinding in games). For me, connecting mathematics with applications like this makes it far more interesting and easier to remember.</p>

<p>Here’s a must-read for just about everyone on the atrocity of mathematics education:
<a href="http://www.maa.org/devlin/LockhartsLament.pdf%5B/url%5D"&gt;http://www.maa.org/devlin/LockhartsLament.pdf&lt;/a&gt;&lt;/p>

<p>Programming & Languages
Your first few classes will likely be programming courses. If your exposure to programming is limited, don't feel behind the curve. Several other science majors (notably biology, engineering, and physics) take introductory CS courses to supplement their degrees, so this is not something you have to know before you enter. At the same time, do not expect a CS degree to turn you into a professional programmer. This is one of the more “practical” skills under the CS umbrella, so if you have no intention of pursuing research or academia take as many programming electives as possible. </p>

<p>Each department usually pushes one language for programming assignments in the core classes. From others I’ve spoken with, the most common languages are C++ and Java (I was taught Java). Around sophomore year, I started looking at job postings and realized that employers were looking for knowledge of languages that I hadn’t been taught. Initially, I was rather upset that my department seemingly neglected to prepare me for this. Don’t let this worry you; I’ve learned that picking up new languages is easy once you know the fundamentals of programming. Some electives let you explore other languages (C and UNIX is common), so keep an eye out for these courses if you’re interested in software development. My recommendation is to learn other languages on your free time. This sounds painful, but you don’t have to master each language (which, some would argue, is impossible), just mess around and try to recognize differences.</p>

<p>Internships & Motivation
I was an unremarkable student my first two years and even considered switching majors to music engineering or computer animation. Upon reflection, the reason for this was that I was expecting to be spoon-fed everything I needed to know in class and using my free time for anything else. The familiar saying “you reap what you sow” is cliché, but true. If you spend your entire four years riding the system, you won’t truly benefit from your time. Find something that interests you within CS and research it on your own. You’ll positively know when you’re passionate about something – find what that interest is and you’ll want to learn, not expect to be taught.</p>

<p>Finally, internships are a great way of boosting confidence and affirming your passion. I had no desire to go on to graduate school until after my internship. Seek out and fight for these opportunities.</p>

<p>Great posts guys, very helpful.</p>

<p>js911 thanks for your insight. Excellent post. It seems like your very passionate about the subject.</p>

<p>Some of what you said alleviated my apprehension. I did feel behind compared to other computer guys I know, who have already gone out on their own learning programming languages and graphics. I don't consider myself an expert on computers; just your average enthusiast who can fix and occassional problem or two. </p>

<p>Its very reassuring that I'm not the only mathematically challenged-person who looked into CS, haha. What you've said about math really makes sense. I've always been interested in history, English, environmental science, sometimes physics; things I can grasp, use, and relate back to the real world. In my current math and chemistry classes, I really don't see these things as anything more than meaningless numbers and letters.</p>

<p>I'd like to know more about your college experience, js911? How did the CS major affect your time there? I do consider myself a hard worker, but I've really been looking forward to college as a time to get out into the world and experience it. Not just the academic side, but socially as well. I would hate to be holed up with a computer all day. Of course, academics are the top priority, but I don't want it to ruin the experience. Did you have issues doing the things you wanted around this major?</p>

<p>The time you spend will depend mostly on the intensity of the program/school and your intelligence. At my particular school, I think CS is relaxed compared to engineering, chemistry, physics, marine science, and a few other majors. My experience is that there is less "busy work" in this major than many other sciences. I've had no issues at all doing things outside of academics.</p>