
On the Fence? Major in CS - mnemonik
http://lesswrong.com/lw/f2/on_the_fence_major_in_cs/
======
aneesh
> _"if you know you want a technical major but you're not sure which, choose
> Computer Science."_

I disagree. If you know you want a technical major but you're not sure which,
choose Math. It is the common factor that all other technical fields share,
and it will give you the most options. Major in math, then go to grad school
in CS, Physics, Economics, or even Law. But majoring in either CS or Economics
makes it difficult to go to grad school in the other one.

And most of the "benefits" of majoring in CS that he mentions don't actually
require you to major in CS. You merely have to have an interest in
programming, which is easier to pick up on the side. On the other hand, try
teaching yourself abstract algebra.

Further, the analytical thinking skills that university-level math gives you
serve you well in many fields, including computer science. But all that said,
if you know what you want to do, definitely do that!

~~~
marcusbooster
I agree with you in that Math is more universal and probably a better place to
go if you're on the fence.

But it depends on the Computer Science program. I think of CS as more of a
theoretical approach to computing, but it seems a lot of schools are placing
emphasis on the more practical aspects of development (like actually working?
who'd of thought). I've heard complaints that universities have just been
turned into Java mills.

------
rdouble
Many people on this thread are suggesting a math degree instead of a CS degree
if you're 'on the fence'. I was on the fence and got a math degree, and I
disagree.

Perhaps math programs are far different at other schools but here are some of
the classes I was required to take, along with a few electives: real analysis,
abstract algebra, "foundations" (more abstract algebra), knot theory,
topology, algebraic geometry, number theory and so on and so forth.

You'll note that almost none of these are applicable to anything unless you're
doing very abstract research. It's impossible to get a job doing anything
useful related to these topics with an undergraduate's understanding. It's
probably impossible to get a job in these fields with a phd's understanding -
math phds have the highest unemployment rate out of any phd, but that's
another discussion. If I hadn't been a campus Perl programmer in my spare time
I would have been unemployable like the other math majors who didn't take
teaching credential courses. The only math I've really used much as a
programmer is linear algebra, and perhaps "discrete" math which I didn't learn
about in school because that class was offered by the CS department...

In contrast, every job interview I've had they've asked the same algorithm and
big-O questions. Those first interviews would have been less embarrassing if I
had taken those classes in the first place.

If you're on the fence, don't want to do CS, and want to major in something
technical which is not only applicable to every scientific field as well as
economics and finance and Google and Paypal, but is also in short supply,
major in STATISTICS. Learn C, Python and Matlab in your spare time and take
the intro algorithms class from the CS department. Good luck.

~~~
jimbokun
I often kick myself for not taking Statistics more seriously as an undergrad.

Maybe a Stats/CS dual major is the ultimate?

------
bbuffone
"if you know you want a technical major but you're not sure which, choose
Computer Science."

I completely disagree. I am not even convinced that a computer science degree
is the best degree to have for a software job, but a computer science degree
is useless unless you go into computer science.

The other degrees can yield multiple career opportunities math being the most
widely applicable to different careers. Disclaimer: I have a degree in
mathematics.

~~~
Xichekolas
I'd say just the opposite, and not just because I have a degree in CS.

My reasoning is: in the next 50-100 years, there will be a ton of
breakthroughs in other fields brought about by sheer number crunching. Biology
is seeing this with bioinformatics, physics is seeing it by being able to
process the humongous amounts of data thrown off by modern equipment like the
LHC, etc. Having a CS degree allows you to work in any of those fields,
applying your knowledge of computation to help others achieve decidedly non-
useless breakthroughs.

To give an example, the biology department at my alma mater is recruiting CS
grad students as fast as it can to help implement some distributed system to
simulate protein interaction (or something like that, I know so little about
biology that it's embarrassing).

I'm not saying CS should be the default choice of every technical person, but
it's not utterly useless to other fields. In fact, I'd say CS is _more_ useful
in this case than it is to cubicle software jobs, because in the average
Enterprise Doohickey, you aren't doing anything complicated enough to care if
your algorithm is O(n^2) vs O(n).

~~~
bbuffone
Your still doing CS - not biology and that was my point. The article seemed to
be saying if you are not sure about what to do choose CS. I think that is the
wrong choice.

I love software and can't imagine doing anything else but if I had a CS and
didn't like it I would need to go back to school and get another degree to do
something else. That isn't true with say a math degree.

~~~
Xichekolas
I guess I fail to see how math prepares you better to do biology than CS does.
Neither major contains the domain specific knowledge that a biology degree
would impart, so it seems like neither would prepare you better than the
other. I'd also imagine that both involve more math than biology, so they are
both sufficient in that department.

And as I pointed out in my last paragraph, I'm not saying I agree with the
article either... I was just pointing out that CS knowledge _is_ useful
outside of CS.

------
biohacker42
_CS majors learn to really program_

I have to disagree. People with a real passion for programming will use a CS
program to become even better at programming.

Other people, lured by the promises of big $, can get through a CS program
with a bit of effort and at the end still be worse then average coders.

That's certainly what I experienced when I got my CS degree. About half the
people loved to program and the other half hated it and weren't good at it,
but still got their degrees. A CS degree does not make you into a good coder,
it can help you be one, but it doesn't make you.

------
DannoHung
Maybe I misunderstood the article, but it seems like he was talking mostly at
students with advanced degrees (possibly at the Doctoral level):

Presumably two assumptions are made:

1) Getting a CS degree at some level is not the only degree that they will get

2) They are frickin' smart.

The advantages that the author proposes are as such:

1) You will probably learn how to use a computer to solve problems for you at
a level beyond using Matlab or Excel

2) You will have a practical and marketable degree with which you can enter
the work force if you decide that academia is not where you want to stay.

3) The abstractions that you learn from studying Computer Science are
applicable to many common systems beyond those found in computers.

That is my interpretation.

------
asciilifeform
I strongly disagree.

Statistically speaking, most CS majors are doomed to salt mines (or a change
of profession entirely.)

See:

[http://www.reddit.com/r/programming/comments/83dzc/dear_redd...](http://www.reddit.com/r/programming/comments/83dzc/dear_reddit_i_am_a_15_year_old_boy_that_is/c08673l)

~~~
nostrademons
Statistically speaking, that is true of nearly all fields. Only 5% of people
can be in the top 5%.

Some data points (hey, the singular of data is "anecdote"):

My sister's boyfriend has a Ph.D in biomedical engineering. He makes less than
half what she does, post-doccing. His day job consists of writing papers that
the tenured professors get credit for.

My roommate has a degree from Cornell, also in biomedical engineering. She
runs community outreach (i.e. posting on FaceBook) for a youth soccer
nonprofit.

One of my best friends from college is working on his Ph.D in physics. He is
planning to become a baker afterwards, because there are very few jobs for
physics Ph.Ds.

Another of my college friends has a masters in mathematics after dropping out
of the Ph.D program. He teaches math to high school girls at an elite private
school.

My dad has an MIT Ph.D in nuclear chemistry. He became a househusband when I
was born after finding the corporate world a soul-crushing mess of office
politics.

One of my netfriends has a degree in biology. She kills rats for $30k/year and
considers herself lucky.

Another netfriend has a degree in biochem. She works as community manager for
a Web 2.0 fashion site after a stint as a UPS store manager.

It's necessarily true that professions will seem more glamorous as a kid than
they are in real life, because you only hear about the glamorous ones. They
wouldn't be noteworthy if they were just like what your parents did. But most
people still manage to be happy in their job, even if its nowhere near as
exciting as they imagined when they were young.

Heck, I work in what most people would consider a fairly glamorous programming
job (Google Search, as a UI engineer writing new features for the search
results page). Y'know what the majority of my workweek consists of? Tweaking
CSS so an element is no longer off by 1 pixel in WebKit. Writing tools to
automate 5-step long build processes. Getting things to work with other teams'
features that basically invalidated all my design assumptions. Figuring out
why my new feature is suddenly broken in IE8. Getting yelled at
(metaphorically) for breaking the build.

This really isn't all that different from what any other web developer does
for a living. Everybody's doomed to the salt mines: it's whether you enjoy
mining salt that matters.

~~~
jimbokun
Now contrast all of these people to some other groups with just a high school
diploma. They might not even have the options open to them of becoming a house
husband, or never met the people in college who became the connection for a
job at a Web 2.0 fashion site.

Getting graduate degrees learning stuff that you cannot apply to gainful
employment may seem a waste, but it is difficult to predict how educational
opportunities will benefit you.

~~~
nostrademons
"never met the people in college who became the connection for a job at a Web
2.0 fashion site"

I think that one was actually a cold call...she applied to like every job in
San Diego before finding one that would take her. Persistence pays off.

------
tlb
I disagree. If you're capable of being a good programmer, you'll get there
faster by doing it than majoring in CS.

If I were giving my 18yo self advice, I'd suggest majoring in physics but
taking the minimum required courses. With a light core schedule, fill up the
rest with economics, writing composition and history. Maybe design.

On the other hand, PhD programs in CS are worthwhile.

------
philwelch
"When a math ABD starts telling me about how she really likes her work but is
sick of the slow pace and the fact that only six people in the world
understand her work, I get to take a nice minute alone with my thoughts: I've
heard it over and over again, in the same words and the same weary, beaten-
down tone."

It's interesting to keep this in mind when reading Kaczynski's "Industrial
Society And Its Future". He spills a lot of ink on how humans in industrial
societies waste a lot of time and energy on "surrogate activities" rather than
focusing on their own survival (which is no longer a challenge). It sounds a
lot like the frustration of an academic who sees no use for his increasingly
arcane work.

------
javanix
Exactly.

Most of CS also revolves around making things easier (correctly, of course)
for yourself.

If there's a method that will get things done with less work, you are usually
encouraged to take it, provided it gives the right output - nobody cares too
much unless its completely slow or bloated.

That was the biggest reason for me over going into engineering - CS actually
_rewards_ you for thinking outside the box, and it thinking like that really
helps most of the time.

~~~
cnlwsu
\- CS actually rewards you for thinking outside the box

... where on earth do you work? Dont get me wrong, I love CS; however, I
dislike when people romanticize it. Read thedailywtf.com over and keep in mind
that there is no shortage of stories ever to get posted on that site. and as
for:

\- "What invariants must this process satisfy? What's the cleanest way to
organize this structure? How should these subsystems work together?"

    
    
      I know a lot of people who graduated with me that I would not trust to ever answer any of those questions.. I have seen their programs and do not believe they know a good way to cleanly organize themselves out of a cardboard box.

------
travisjeffery
CS is a subset of Mathematics, if you argue that the CS way of thinking is
valuable you're really arguing that the Math way of thinking is valuable and
Math would be much more applicable to a more wide range of Professions.

On the fence? Major in Math.

