What to Expect
Still stuck with the picture of the computer nerd? CS students today take
pride in breaking that mold.
Austin Fitzpatrick has always leaned toward computer science. As a kid
he wanted to make video games.
"When I was younger I just really enjoyed playing them and I wanted to
understand how they worked," says Fitzpatrick. "And I've been messing around
with computers since I was a little kid."
Fitzpatrick is a recent graduate of the four-year computer science program
at the University of California, Irvine. He's now a game developer for some
of NASA's websites, including The Space Place.
Fitzpatrick's interest in video games led him to start playing around with
programming languages.
"I wanted to take it another step further and another step further, so
when I had an option for a computer science course in high school I took it
and I really enjoyed it," says Fitzpatrick.
Jeremiah Tantongco also took programming classes in high school. He's now
a fourth-year computer science student.
"Aside from enjoying computers and computer games especially in high school,
I found it very satisfying in my high school programming classes to build
something in code and have it render results on my computer screen," says
Tantongco. "I think [it is] the same feeling anyone gets when they build anything."
Fitzpatrick found that some computer science classes at university involved
more work than others. "It really varied class by class," he says. "I really
felt that some quarters were not so bad at all and other ones I had to spend
a whole lot of time writing code."
Fitzpatrick advises students to figure out which courses on offer involve
a lot of programming. Some courses involve more theory, while others involve
a lot of projects that require programming -- and writing code often takes
longer than you first expect.
"They might look ahead to what the workload is for different classes and
try not to take a whole bunch of heavy programming classes all at the same
time, because those [involve] the kinds of projects that tend to run late,"
says Fitzpatrick.
Fitzpatrick says the math classes he had to take were "homework intensive,"
while the programming classes involved completing projects. Some of those
projects can be group projects, which can be unpredictable. You might find
yourself in a group that works well together and in which everyone contributes
equally. Or you might not be so lucky.
Fitzpatrick says it's hard to say how much homework was involved, on average.
"In terms of hours per week, I'm not sure because the nature of the work
is usually big projects," he says. "[The workload] is usually disproportionately
skewed to the end of the project, as you realize that the scope is a little
bit bigger than you expected."
Computer scientists are always solving problems. Training for this begins
in university. If you happen to find the best approach to a problem, you can
save yourself a lot of time.
"A lot of times [computer science students] are presented with a puzzle
to solve and there's a brute-force way to do it which is going to take 1,500
lines of code, and then there's a simpler way to do it and it just depends
on if you see it," says Fitzpatrick.
Regardless of how many hours you spend on your schoolwork, there will be
plenty to challenge you. Computer science is a rewarding but intellectually
demanding field of study.
"The work is pretty hard, whether or not there's a ton of it," says Fitzpatrick.
"When you sit down for one of those projects you have to take it seriously.
They're not something you can sit down and do the night before."
Tantongco says computer science students should have lots of perseverance,
especially for programming. He uses the analogy of those common baby toys
that resemble tables with holes of various shapes.
"A lot of the time, it feels like forcing the triangular block to the square
shaped hole," he says. "It just doesn't work and you have to rethink how you
are going about the problem. And a lot of the times, you reach your wits'
end, and end up searching the Internet for answers. Patience and having a
good knowledge of the Google search engine will get you a long way in this
field."
How to Prepare
Fitzpatrick has a quick response when asked to name the most important
subject to study in preparation for a degree in computer science.
"Math -- it's pretty math-y," says Fitzpatrick. "You can get away writing
an individual program with a limited math background, but for the theory classes
that you're going to have to get through, [you need math].
"The theory classes are heavily math based, so don't ignore your high school
pre-calculus teacher, or whatever," Fitzpatrick adds. "It does come back around.
"And if there's a computer science program at the high school, then obviously
you want to get involved [with that]."
"To my knowledge, most schools nowadays usually have some sort of information
technology courses for students interested in IT material," says Tantongco.
"In my experience, this usually focuses on building websites. While building
websites is not necessarily what computer science is generally about (some
of it is!), this can be a great introduction to the fundamentals of programming."
This field is not for those who want an easy ride. The math, science, programming
and theory classes, coupled with hours of homework, will quickly weed out
those who are not truly dedicated to computer science.
Fitzpatrick suggests getting familiar with more than just one programming
language. This will help you down the road.
"Group work is also generally advisable," Tantongco adds. "In industry,
most programming work is done in teams as the scale of projects gets bigger.
Computer science courses generally have group work to emulate real life and
prepare students for that."
High school courses that develop your communication skills are also valuable.
"One of my teachers said something and everyone kind of laughed and didn't
really take him seriously, but it's totally true," says Fitzpatrick. "He said
that you're going to spend probably 75 percent of your time writing prose
and 25 percent of your time writing code. He meant that you have to write
e-mails and you have to write instructions and you have to write documentation,
and there's just so much of it."