

Ask HN: What are the reasons not to go into computer science? - gschiller

I&#x27;m a high school senior considering majoring in computer science. We obviously hear about the positives, but what are the negatives?
======
nostrademons
I assume you're actually thinking of going into software engineering as a
profession, and not just getting a CS degree and doing something else. The
latter can actually be pretty useful in a variety of scientific, technical,
and management fields, except you have to pair it with something. Anyway,
here's my list (for reference, I'm 32, have roughly 9 years of professional
experience all of it in software, and currently work on search for Google. I
have a CS degree but went to a liberal arts college and switched around
between physics, philosophy, and sociology before settling on it):

1\. Programming is a very cognitively demanding and highly rational skill. To
do it well, you to some extent need to "shut down" your emotional circuitry
and your intuitions about how things _should_ work, pay very careful attention
to how things _do_ work, and then retrain your instincts to take this into
account. All on a very rigorous, formal, mathematical level. Unfortunately, if
you do this without simultaneously maintaining an active social life, you risk
finding yourself unable to relate to "normal" people. It's not just that
programming attracts geeks, it's that programming enough can _turn you into_ a
geek. This is avoidable (some of the top minds in our field have a life
outside work and are quite approachable as human beings), but it requires that
you set strict limits on the time you spend hacking - which can often be hard
to keep to when you hear about a 19-year-old kid who invented a peer-to-peer
protocol or a 23-year-old who invented a programming language.

2\. There's an expiration date on your knowledge. It's not as drastic as some
people make it out to be - it is still possible to get hired as an engineer
past 40. But pretty much everything you learned when you first started out
will be obsolete. I've only been doing this since 2000 and I've had to
reinvent myself at least three times - I started as a desktop UI dev working
with Java Swing; then I learned JS and web technologies pretty deeply; then I
got into unstructured data mining, clustering, and ranking algorithms; now I'm
back doing UI, but for mobile web devices (which have completely different
performance characteristics as desktop) in a lead role. In fields like law or
accounting you gradually learn more of a huge body of relatively static
knowledge, and so your intellectual capital increases monotonically over your
career. In computing, large bodies of knowledge become completely obsolete
overnight, and so you can easily have huge discontinuities in your career
where you have to adapt or fade into irrelevance.

3\. Programming is not amenable to just putting in your time and packing it
away when you go home at 5. It's a creative profession, and creativity is
subject to the whims of your brain and requires engagement and grappling with
the subject. Many programmers find it really hard to work on a set schedule -
Paul Graham has a good essay called "Maker's schedule vs. Manager's schedule"
on this.

4\. The egos. A large segment of the software world seems to be composed of
people who keep trying to one-up each others in their knowledge of esoteric
trivia, and then once they've found something they know that nobody else does,
suddenly everyone else is an idiot. This is exhausting and not all that
pleasant. It is much more prevalent in some communities than others - there
are places you can go that are quite supportive, where _everybody_ is
interested in learning new things and new knowledge is gently pointed out and
explained - but if you read many of the places where programmers gather, there
are many a pissing contest that are just complete wastes of time.

~~~
shubhamjain
The egos. A large segment of the software world seems to be composed of people
who keep trying to one-up each others in their knowledge of esoteric trivia,
and then once they've found something they know that nobody else does,
suddenly everyone else is an idiot. /////

I have tried a lot but the being arrgant when you meet somene with similar
skills is so tough to avoid. Plus the sheer chauvinism against non-techie
people, makes me feel guilty too. What do you suggest to avoid the ego factor?

~~~
nostrademons
It comes from insecurity. A lot (not all, this is a gross generalization) of
tech people are really insecure, because a profession where you don't have to
deal with people tends to attract a lot of people who don't _like_ to deal
with people, and one of the most common reasons for not liking people is being
insecure about our own worth.

The best way to avoid this is to not tie your self-worth to your technological
prowess. Discover what you like to do (beyond programming), and go do it, and
be willing to put yourself out there and enjoy things even if you don't get
any outside approval for it. Oftentimes this makes people really anxious;
therapists or talking things over with a solid circle of friends can be
helpful for discharging the anxiety, but really you pretty much have to lean
into it and accept that being good with computers is not going to make you
better than anyone else or solve any other problems you might have.

~~~
AznHisoka
Do you feel that people in Google are more or less egotistical than other
engineers you've encountered? Or is it a culture where people are willing to
teach others without making them feel stupid that they don't know X?

~~~
nostrademons
There's really no way to answer that question without making a gross
generalization. There are _some_ programmers at Google with outsize egos
(although to be fair, they often have outsize accomplishments as well). For
the most part, though, the culture rejects the chest-thumping brogrammer type.
Your performance reviews are done by your peers, and so if you continually
make your peers feel stupid, it will be hard to get promoted. Also, virtually
everything is done in teams, and you're judged by what your team accomplishes,
and so it's to your advantage to raise the level of the people around you.

------
brudgers
A girl I dated in high-school wound up with a degree in agriculture - she
wasn't from a rural area, and none of her grandparents had even lived on a
farm - at my age that's going back to the early part of the 20th century.

She had started out as a math major.

The biggest negative for a young person is pursuing something they have no
passion for. The dilemma of college for most young people is that they have
little idea what a field entails until they arrive on campus and start taking
courses - and even those who do have applicable knowledge of the reality still
don't know about many of their other options.

So why do you want to major in CS?

~~~
gschiller
I want to be an entrepreneur and CS seems the clearest path to that.

~~~
dsymonds
That seems like a terrible approach. Why not major in business or economics?

~~~
nostrademons
CS is a better major for an entrepreneur than either business or economics.
Marc Andreesen recommends engineering or other hard sciences:

[http://sloentrepreneur.wordpress.com/2008/02/10/the-
pmarca-g...](http://sloentrepreneur.wordpress.com/2008/02/10/the-pmarca-guide-
to-career-planning-part-1-2-and-3/)

(My former cofounder was a psych undergrad + MBA, my girlfriend is a business
undergrad + MBA, and I've got many more startup offers from people wanting to
found companies with me than either of them.)

~~~
keiferski
If and ONLY if you want to start a tech startup. CS is relatively useless if
you want to start a restaurant, fashion label, or virtually any business not
related to technology.

~~~
nostrademons
That's true, but I doubt that the OP would be posting on "Hacker News" if he
wanted to start a restaurant, fashion label, or virtually any business not
related to technology.

------
digitalzombie
It's a sausage fest in college (especially upper divisions) and your social
skills can take a nose dive.

The lack of social skills, assuming that you don't have one and didn't gain
much of it during college, will carry over to your negotiation skills when you
look for jobs.

Depending on which area of software engineer you are going in, your tech
skills have a half life of supposely 2.5 years. Meaning there will always be
something to learn, dev black berry for a long time now? Ha! Iphone and
Android is the shizzle now. Cold fusion? Well, now, it's PHP & Ruby.

There is a decent chance you will work under an idiot that lied his/her way to
where he/she is now and will back stab you (very high chance if you work in
the public sector ie gov,fed,state). Ah! Politics, it's a bitch and it can be
in any profession really, but I feel it's more pronounce in this profession.
Especially, well the dev team is a few developers and you're like how the fuck
is this guy paying more than me and I'm doing most of the work? Eventually, if
you catch on, you'll quit and learn how to embellish and get better at
interviews.

Ah this lead to ego! It fucking hurts that someone is getting paid more than
you but you know more than them. Yeah sure you can say you're just whiny. But
really, you can constantly feel like you're being underpaid and under
appreciated.

------
bruce511
I always tell folk that programming is a great job, if you love it. If it's
just a job, it must be a terrible job. All day, behind a desk, fixing bugs, or
getting ui pixel perfect, or doing the write-build-test-debug cycle over and
over again.

So if you're considering it because you already love programming then (for me)
there were no down sides. (I even met my wife there.) if you are considering
it because "all the money is in computers" then rather pick something else.

Yes, many, ( most?) will make a reasonable amount of money, and there's always
the carrot of the big payday for the very very few, but when it takes 2 days
to find and fix an obscure bug, which turns out to be a , instead of a . then
suddenly something like duck farming sounds like a more fulfilling way to make
a living.

If you love it, go for it.

------
dkrich
For better or for worse, we live in a society where higher education does not
teach you a trade. That is, when you leave college and start your first job it
really won't matter too much whether you studied CS, Philosophy, or the Harlem
Renaissance because you'll spend the first six months of your working life
learning how to do the job anyway.

To state the obvious, I would say don't major in Computer Science if you
aren't genuinely interested in it. There are many different kinds of
businesses to start and simply knowing how to program doesn't really make you
any more likely to found a successful one. Even if it did, you don't need to
study it in college. While I believe that learning the fundamentals in college
is the best way, a person of above-average intelligence with a desire to learn
could become a serviceable programmer in a matter of months with nothing more
than a computer and a few books.

When you start college you do crazy things like envision a path to success
that relies on specific factors that you will soon realize really didn't make
any difference. In short, your major will have a predictive rate of about 0%
of an impact on your success after college and that's especially true if you
are going to start a business.

------
helen842000
Sitting. Seriously! It's a pretty unhealthy lifestyle unless you make
significant effort to request a standing desk, work in hands-on manual role
(server integration, physical networking) or are actively fixing issues at
different locations or mixing with different teams.

Shoulder, neck, back issues. RSI, eye strain are all common complaints. You
have to be prepared to integrate decent amounts of exercise into your free
time to stay healthy.

I know engineers that are so used to having everything accessible at their
finger tips that it becomes a major effort to get off their ass and go and put
a disk into a server.

Always remember, when you go to interview for a job - look at the team. Are
they healthy & active or will you be joining a culture that expects you to be
sedentary all day.

------
djengineerllc
You lose your life in the consumption of programming knowledge and development

------
gosu
It's true that, if you learn to enjoy CS-related work, it's thrilling and
rewarding. You'll find dazzling solutions to interesting problems, and have a
blast doing it. But as respectable a craft as CS work is, does your output
really improve anyone's life? Probably not, and it likely even contributes to
some mild social ill. And once the dopamine wears off, have the lonely hours
spent solving fun puzzles in front of a screen been a good use of your time on
Earth?

I'd still recommend a CS major, but I urge perspective.

------
michaelpinto
To thy own self me true: Only do it if computers are your passion. The
negatives in life are doing something for a living that you don't really love
— and i see that every day.

------
mcpherrinm
What do you want to do? Program?

Many people learn to program on their own, or in their spare time.

How many people learn algebraic topology on their spare time? Or delve deep
into combinatorial optimization?

Consider doing something else, and figure out the programming stuff on your
own.

------
eru
> We obviously hear about the positives, but what are the negatives?

There's lots of fluff in your average CS degree. You might want to take a
mathematics degree instead, which is `harder' (as in `not as soft' and
fluffy).

