
Why Is Computer Science Enrollment So Low? - simonsarris
https://medium.com/@simon.sarris/why-is-computer-science-enrollment-so-low-dea064c2f7f0
======
QML
I'm not sure if enrollment is the correct word. At my college, enrollment in
the introductory CS course is at an all time high, over 1200 students who sign
up. A result of this is that the CS department is now financially constrained
and a high GPA cap has been set in place. But going back to the discussion,
why is the number of CS graduates -- I think that's what the author intended
to state -- constant? I'd like to offer a student's perspective.

First, CS is hard. Perhaps not from our point of view, us who practically grew
up with a computer. But for the majority of people, it is. I notice that the
students who tend to do well either have prior experience (if AP CS qualifies
as that) or come from a background that emphasizes logic and abstraction (e.g.
math, physics, philosophy). However, this rule of thumb fails for one group --
students who are willing to work hard, attend lecture, go to office hours, and
are not afraid to ask for help from other students or GSIs. If we tried to
persuade students to enroll by depicting CS as simple as making a peanut
butter sandwich, I'd think we would be setting them up for disappointment --
somethings are just hard and boring, and you just have to get through it.

Second thing, a lot of college students are not willing to fail or take risks
with their GPA. Maybe this has to do college admissions; often times I hear
"at least you were smart enough to get into _______". The effect is that
students are pressured to maintain an image of academic perfection. And the
easiest way to do that is to only take courses you are comfortable with. When
I tell my friends to at least take one CS course before graduating, the common
response is "it's hard and I don't want to get a D" \-- though that is rarely
the case based on the public grade distributions.

The point is, CS is hard but doable. But hey, I got some of them to enroll in
Data Science.

~~~
thebigspacefuck
For me, it seemed like everyone around me in my CS classes just got it. There
were definitely times I felt stupid because of it and it was demotivating to
see so many people having an easy time while I struggled. When your
assignments are taking you 8 hours and other people are getting them done in 3
hours, you start to think, "maybe I'm just not cut out for this". Eventually I
started to get it and it became much easier for me, but it took a while. Who
knows? Maybe I'm still not cut out for this.

~~~
Zelizz
There will always be people who are just "better". They'll learn faster,
remember more, and generally make you feel inadequate by comparison.

There are also people who seem like that, but aren't. These people have prior
experience and memories that accelerate the speed at which they learn, and
leave fewer remaining new concepts to memorize. Over time you'll catch up to
this second group, if you apply yourself.

------
CM30
Maybe because a lot of people don't think they need a computer science degree?
I mean, look at the tech scene. The general 'message' running throughout is of
people who dropped out of school to focus on their startup or picked
themselves up by the bootstraps to learn to code to escape a more mundane
career.

There's a general assumption (rightly or wrongly) that programming and general
tech skills are self taught, and that may lead to people thinking the idea of
a degree for the 'theory' side is useless.

Is this picture right? Eh, maybe, maybe not. But I'd say it's definitely how
the tech world is perceived, leading to a lots of kids thinking other degrees
are more useful (in case they decide to switch to a different career later in
life).

This may also explain why computer science enrollment is much higher in
countries like India too. There's still a heavy focus on education in the
culture there, and people from the region might see a computer science degree
as being as necessary for a tech worker as a law degree is for a lawyer.

------
meow1032
Most of the information here is at least 4 years old. Using numbers from 2015,
the number of people graduating is above 2004 levels and by all accounts
rising rapidly. You can build the graph yourself here:
[https://ncsesdata.nsf.gov/webcaspar/TableBuilder](https://ncsesdata.nsf.gov/webcaspar/TableBuilder)

I don't think it's surprising that in 2013 there weren't that many CS grads.
If assuming 4 year degrees(which is probably more like 5-6) then people who
got awarded those degrees would have graduated High School in 2007-9. No one I
knew even knew what computer science was in those days. The "computer science"
course in high school consisted solely of typing and learning how to use Word.

~~~
goobynight
When I started undergrad in 2011, CS was just another science major and you
took whatever you felt like.

By the end of college, every 200 level class had a waitlist and the whole
process was micromanaged in order to make sure everyone in the major could at
least take one class each term.

Glad I avoided most of that!

------
wolfgke
For "Question #1: Why, in spite of high wages and cultural/economic importance
of tech, has the number of CS majors has been basically flat for 15 years?":

The interesting metric for employees is not wages, but "wages minus cost of
living". As long as the costs of living are that high in the Bay Area, the
wages with respect to this metric are not that large.

For "Question 2: [...] What motivates males to pursue CS?"

An important factor for me was hacking into the machine more deeply than any
human has gone.;-) (just kidding, but it should bring over the mentality).
With all the legal hurdles against Reverse Engineering, DCMA, show trials
against Phil Zimmermann and Aaron Swartz, hacking has become too dangerous.
Also with all the standardization (Web standards, POSIX, WinAPI, ...) instead
of "being able to do things on your own" it has become much more boring.
Finally I am annoyed by "a new bandwagon every year" (is this a sensible
translation of the German "jedes Jahr eine neue Sau durchs Dorf treiben") in
particular in the web community instead of thinking long and deeply about the
best way to solve a problem.

------
PhantomGremlin
Not too many comments yet. I'll try. My opinion might be controversial, but
IMO 100% accurate.

So let's look at some of the top companies who might hire CS people. Not
everything I mention is CS, but the overall company philosophy doubtlessly
pervades everything:

\----------

Google:

90% (give or take) of their revenue is from advertising, most of which simply
annoys people. The more information they can vacuum up about everyone in the
world, the happier they are. Most jobs are mundane if not soul-sucking, but if
you can't invert a binary tree on a whiteboard you can fuck off.

Interesting projects are constantly being released into beta, but invariably
abandoned on a whim a few years later.

Plus they're lobbying for more H-1B to help keep wages down.[1]

\----------

Facebook:

work for a sociopath ("They 'trust me', dumb fucks"), who also wants to vacuum
up as much information as possible about everyone in the world.

His lobbying group wants more H-1B visas, because, as his buddy says,
Americans "don't work hard enough".[2]

\----------

Apple:

work for a famously paranoid company. Don't dare tell anyone where you work or
what you do.

Neglect many multi-billion dollar product lines for years, because the
corporate organizational structure won't allow product development continuity.
Be completely oblivious to how douchey this behavior is: "Can't innovate
anymore, my ass".

But they do have the "courage" to make minor "improvements" such as dropping a
headphone jack and dropping a MagSafe connection.

\----------

I could go on and on. It's not just CS, it's all STEM jobs. People who do them
don't get much respect from companies or from Americans in general.

What something to do? Go figure out how many in Congress are STEM vs lawyers!
I don't need to do that I already know just how skewed the numbers are.

America as a country just doesn't care about STEM much any more. And there's
feedback in the system to keep it that way. Why hire US graduates when Indians
and Chinese and Russians and countless others are fungible and are available
at much lower cost.

Why should American kids be cannon fodder in the global race to the bottom?

[1] [https://qz.com/969280/with-h-1b-under-threat-alphabet-is-
the...](https://qz.com/969280/with-h-1b-under-threat-alphabet-is-the-only-big-
tech-company-to-ramp-up-immigration-lobbying/)

[2] [http://www.breitbart.com/big-
government/2015/05/15/venture-c...](http://www.breitbart.com/big-
government/2015/05/15/venture-capitalist-h1-b-avocate-americans-dont-work-
hard-enough/)

------
vivekd
Now that I'm learning computer science on my own I realize I enjoy it and have
a knack for it. But when I was in school I was intimidated by it. Computer
science was presented to me like something that required tons of complex math
to do even the simplest thing. It also had a reputation as the smart people
thing to do which scares off a lot of people, especially when they are young,
not so confident and easy to scare off.

Even the article presents this sort of idea when it suggests that maybe the
average student doesn't really have the aptitude for CS. Really? Do you really
need to be smarter than average to code or even to code well? I think not.

Now most people here are smarter than average and most know how to code. It
does seem like tech attracts smart people, but you don't have to be smart to
know how to code. I think we can all admit that learning code doesn't require
tons of intelligence. IT just takes a bit of patience and determination. Kinda
like learning a language, or learning to dance you don't need a really high IQ
to do it, just gotta apply yourself and be patient.

Maybe it does take alot of intelligence to program well. But really most
projects don't really require you to write magnificent, perfect and complex
code. A lot of it is not that hard.

I think tech just seems to attract smart people because of the stereotype that
only smart people can do it. It's a bit of a feedback loop.

Computer Science was never presented for what it is, which is basically a
skill you can learn just like carpentry or metal working or the many other
skills which require you to apply a set of gained knowledge.

I also wish people would highlight the symbolic logic, and learning processes
and steps aspect of programming, because that would get philosophy major types
and also hands on trades types more interested in it.

At the same time, I think if I had gone into CS through traditional schooling,
I probably would have been terrible at it and probably would have hated it.
Learning it on my own by doing means I learn only what I need and get to apply
it to projects I want to do and see a purpose in. That is very different from
the classroom style learning. Also computer science is very procedural and
steps oriented, it's the kind of thing you learn best by doing and not through
lectures.

A classroom setting seems like the worst and most difficult way to learn
programming, kinda like trying to learn how to dance by sitting in a room
listening to someone lecture you about dance steps. The fact that anyone
learns it this way is just a testament to how hard some of these students
work.

So maybe the issue is that computer science is mislabeled as a science and put
along-side career paths like maths, sciences, engineering, when really it
would fit much better as a skilled trade and put alongside other trades like
plumbing, or heavy equipment repair. Because really it's the same sort of
thinking and skills that are being utilized. Computer science is nothing like
science or math, it's more like a skilled trade. You learn to plug in code in
a specific way in the right steps to create a result. That's like what a
plumber does not what a scientist or a mathematician does.

~~~
s_m_t
I think you are failing to differentiate between computer science and
programming. In my mind computer science is to programming as fluid dynamics
is to plumbing. I know next to nothing about computer science, I don't think
I've ever opened a computer science textbook or read a paper on computer
science but I can program fairly well (at least I think so), in fact, almost
all of the neat tricks I know seem to have something to do with statistics...
not computer science. In the same way, I know absolutely nothing about fluid
dynamics except that it is probably the study of how fluids behave but I can
fix my shower and operate a hose and set up an drip line for irrigating crops.

From this point of view you might ask the reverse of the articles question.
Why are so many people enrolled in computer science when it seems to be such a
specialized subject that might not even be useful to the average programmer?

~~~
vivekd
>I think you are failing to differentiate between computer science and
programming. In my mind computer science is to programming as fluid dynamics
is to plumbing.

Maybe but Im just following the articles lead in conflating the two - from the
article:

>There’s ostensibly more demand for programmers than ever, yet CS degrees
haven’t even recovered from their 2004 high.

The article seems to make the assumption (and I think the right one) that lots
of people get computer science degrees to become programmers.

