Of Zen and Computing

What is it like to study Computer Science?

Wednesday, November 7, 2007

I am thinking about a career in computers. What is it like to go to school for Computer Science? What sort of things will I be studying, and what should I be good at?

Ah, another one of those special people who likes to tinker with anything electronic. Someone who always needs to know how stuff works. One of those people who likes to solve problems. One of those people who would rather write code than an essay any day of the week. Allow me to provide you with a glimpse into the academic life of a CS student.

A CS Major’s Course of Study

As a computer science major, you will look inside the machine and learn just what makes it tick. Where others see magic and wizardry, you will see whizzing zeros and ones. When your friends glaze over the technical dialogue in some melodramatic crime drama, you will scoff over the ridiculousness of it all and suggest that the network hire you as a consultant.

The specific courses will of course vary between institutions, but the general track remains pretty much the same. You will start out studying the basics of computer science with math, physics, and some introductory programming classes. Math and physics are the theoretical building blocks of computer science, and these courses will get you thinking like a computer scientist. The introductory programming classes will get your hands dirty, showing you what it is like to “make the computer do stuff”, so to speak. Many schools are fond of using C++ or Java to give you a taste of what it is like to write code.

Once you move past the introductory courses, you will be thrown into more intensive, technical CS classes. I obviously cannot speak for the CS programs of every educational institution, so from here on in I will be describing my own experiences from earning a bachelor’s degree in Computer Science.

As a CS student, you will learn the intimate details of computer hardware by studying topics such as logic design and computer architecture. You will understand how circuits carry out basic arithmetic operations, and how all the major components of a computer system communicate with each other.

Java will seem like a walk in the park as you begin to progress from a student who writes code into an actual programmer. You will learn to program the most basic functions of computation in assembly language. You will realize that being knowledgeable of specific programming languages is secondary to understanding the theories of programming. Eventually, you will probably be required to work in teams to design software that solves a particular problem.

Ever wonder what goes on underneath the hood of software like Windows or Mac OS? You won’t anymore, because you will learn how operating systems work. Operating systems… well… operate a computer. You will learn how OS’s manage memory, prioritize computing jobs, coordinate input & output, and utilize CPUs to process instructions from other software.

Do you know how the Internet works? Really? You will. Networking classes will introduce you to communications protocols, and explore how network traffic is managed. You will wonder when you ever asked to know this much about routers, switches, and IP addresses.

In addition to those core areas of study, you may also have the chance to learn about topics such as compilers, database management systems, electrical engineering, and ethics.

Who should study Computer Science?

Logical thinkers, and those with a natural inclination for math often make good candidates for Computer Science. I once had a professor joke that CS majors are actually bad math majors, but… Anyway, careers in computer science are highly thought-intensive. Logical thinkers will do well in such a career where you find yourself constantly thinking along with the machine.

Natural problem solvers are good candidates for a CS degree. Consider many of the things we do with computers: analyze stock trends, transfer money, manage data, communicate across large distances. These are all problems that we are attempting to solve through the use of technology. Good computer scientists, and especially good programmers, often see themselves as problem solvers who identify a need and use technology to craft a solution.

While we must not forget that computers are a means to an end, it does not hurt to also take a genuine interest in the means. Many of those who study computers are the sort of people who have a natural curiosity about how things work. When they see the amazing things a computer can do, they want find out how it is able to do those things in the first place. What’s more, they are driven to make it work better. It’s the classic stereotype of the kid who can take things apart and put them back together better than before.

Categories: Uncategorized

Digg icon StumbleUpon icon del.icio.us icon Facebook icon

Other articles related to this page

Subscription Options
Search Our Archive of How-To Articles and Blog Posts