626 comments

[ 0.38 ms ] story [ 314 ms ] thread
Image.
After talking to dozens of women and men, girls and boys trying to convince them to go into computer science, the reason they told me is the (wrong) image they have of programing: sitting alone for 8h a day in front of a computer.

Looks like the those who voted me down had more success in getting more people into CS.

It's not merely sitting down.

It's seeing the code monkeys of life being manipulated by people who are adept at manipulating humans and getting higher status and pay for it.

Think of a lot of technical positions in the military. They get bossed around by non-technical people.

It's much better being the one who beats the drum than the multitude that row the boat.
(comment deleted)
Seems they had a pretty good idea of the field. 90% of the time is spent staring at a computer screen.
Because: Error establishing a database connection.

(Seems to be back now.)

Because database connections are hard.
au contraire. Plenty of art history majors can figure it out after a 3 month bootcamp.
Using them, or writing the high performance multi threaded cross platform driver for them?
Whats so hard about `mysql_connect(...)` /s
I still suspect it's this reason from the post:

> You don’t need a CS degree to be a developer

With another catch. Basically, a lot of people don't intend to go into the tech industry right away. No, they end up in it because it's one of the faster growing industries with decent financial prospects.

So they learn something else, work in a different field for a bit (or a low paid retail job) then end up going into tech where the jobs and money are.

Not everyone is 'passionate' about the subject.

> You don’t need a CS degree to be a developer

And I think at least some of us observe this and think "I'll study a related tech field and then take a job that also uses CS - that will let me grow a wider skill set than if I just studied CS." Because it isn't too difficult to get exposed to CS basics while pursuing EE or math, etc, and a wider skill set can be a valuable thing to have - you generally have more freedom in the development of your career, more opportunities to shift around and prevent burnout/boredom, etc.

It would be interesting to build a matrix showing how degrees in each STEM field are tied to jobs in each STEM field. Because I suspect CS funnels much less into the other STEM fields than vice versa, providing a view where a CS degree is tied to a narrower line of work, and hence more at risk to future market changes.

> It would be interesting to build a matrix showing how degrees in each STEM field are tied to jobs in each STEM field. Because I suspect CS funnels much less into the other STEM fields than vice versa, providing a view where a CS degree is tied to a narrower line of work, and hence more at risk to future market changes.

To be fair, the job prospects in many other STEM fields aren't great. You most likely won't get a job with a BS in physics doing physics related work, considering how many physics PhDs there are that didn't remain in academia for one reason or another.

Because college is funner when you don't have to take the CS weeder course.
> I think that people who go to college decide on what to major in significantly based on two factors: earning potential and whether a field is seen as high-status.

Also laziness, virtue signaling, dilettance, and genuine interest.

Surprised I had to scroll this far down to find this. You're absolutely right. Plenty of people just choose a major based on whimsical interest their freshman year, then stick with it because it's too late/expensive/difficult to change to something else. A lot of my friends at school ended up in this situation.
Slight note about Dan Wang picking 2005: That was the peak of CS degrees awarded because it's 4/5 years after the height of the dot-com bubble. So the upward bump in the mid-2000's is somewhat explainable as an anomaly.

I think his point 1 is underrated. CS degrees are flat because aptitude is flat.

You can compare CS degrees to other degrees over time at nsf.gov:

https://www.nsf.gov/statistics/2016/nsb20161/#/report/chapte...

We have more grads than ever, but they are dumber than ever (we have the data to prove this), getting less difficult degrees.

I have a bad feeling that we are running up against some diminishing returns on education and hiding it with numbers like the total number of grads. The number of grads for difficult degrees and the quality of grads seems to be another story.

> In 1970s 1-in-2 college grads aced Wordsum test. Today 1-in-6 do. Using that as a proxy for IQ of the median college grad, in the 70’s it was ~112, now its ~100.

More stats: https://medium.com/@simon.sarris/why-is-computer-science-enr...

(comment deleted)
> The number of grads for difficult degrees and the quality of grads seems to be another story.

This is why I never believed the "There is no STEM shortage" stories. They were mostly based on the assumption that all STEM grads were qualified to work in STEM. That's not true in any field where you can complete a degree with a C or D average.

I find it unfortunate that some of the larger software companies filter out applicants based on the school they graduated from, but I understand it. The companies have to have some sort of filtering mechanism, because many colleges clearly do not.

There is no STEM shortage because salaries haven't risen for those already working in the field.
They certainly have risen in tech, the T part of STEM.
NYC and SF are small islands compared to the rest of the country. Salaries are flat for everyone else.
> NYC and SF are small islands compared to the rest of the country.

Not in terms of tech jobs.

Yes, even in terms of tech jobs. Software just isn't as big a deal outside of these places.
I think the point is a huge number of tech jobs are within these locations. The SF bay area has something stupid like the top 3 cities when it comes to tech jobs. Throw out all the locations with the most jobs and surprise, salaries suck.
Well, I wouldn't say salaries "suck" outside of well-known tech centers like SF/Bay Area and NYC. They aren't great, though. Even in the Bay Area, at least, the salaries of engineers still pale in comparison to the salaries of managers and executives.
> Even in the Bay Area, at least, the salaries of engineers still pale in comparison to the salaries of managers and executives.

Depends on where you work. If you work at an actual technology company that "gets it", they'll have parallel management and individual contributor tracks where you can make as much as a director-level person as an IC, or more.

Emphasis on "can make" is due in this case. It's still a different dynamic with respect to status and a different pay scale in general (that is to say, exceptions of course exist).
But you will never likely be financially stable due to your housing situation.
(comment deleted)
Maybe not suck as compared to a lot of jobs, but the problem with software development seems to be that salary growth rises rapidly up to a plateau and then basically stops. The opportunities for salary growth past a certain point require risk-taking such as starting a company, consulting in some very specific niche, or what have you. It's still better than the lack of wage growth in other fields, I'm sure, it's just not something that was explained to me AT ALL when I started down this long road many years ago.
Absolutely. Even the so-called "parallel track" technical equivalents to management generally have a lower pay scale and smaller bonus pool. In terms of career development and growth it's almost always better to be on the non-technical career path once you're at Lead Engineer or higher. Even director-level people on the technical side of the tree are generally viewed as (relatively) more expendable and lower-status than their equivalents on the non-technical track.
> NYC and SF are small islands compared to the rest of the country.

"Salary" is the wrong metric to consider. The "interesting" metric is "salary minus cost of living". And this is stagnating even in NYC and SF, since the costs of living are rising.

>The companies have to have some sort of filtering mechanism

There's no one to hold companies accountable for having a unjustifiably high or low filter. And frankly I don't think anyone outside of CS has gotten those filters right any more than CS has. An incorrect filter turns into "Well, there's no one qualified to work for us" or "Well, all of these candidates failed to do the job" which leads to incorrect assumptions about the labor pool, which is what's going to bias your hiring decisions.

There are companies out there hiring for A+ students that would be just as well off with a C or D average student because what the company is doing day-to-day is too far from what university was like.

Well this is why a free market is great, if you think all these companies are doing things wrong, start your own and outcompete them.
Feel free to write me a check for the millions of seed money I'll need.
Bootstrap!
Poiknoik quite literally used the "bootstrap" argument in a non-ironic way to describe an actually real systemic problem .
Do you actually need millions for a software consultancy? You're hiring people who wouldn't be employed elsewhere. You could pay them less and cut prices to your clients and everyone would come out better.

I mean you've spotted what you claim is a clear inefficiency. Your guys could be taking the jobs that Infosys and gang are taking.

>Do you actually need millions for a software consultancy?

Yeah, I'd need millions to be convinced to do something I absolutely don't want to be doing.

In that case even with millions you would hit a roadblock. Even the prospect of a huge reward doesn't always cure burnout.
(comment deleted)
You are assuming the companies care enough. Their current strategy is petition the government to open offshoring quotas. That's much easier and cheaper than actually figuring something out.
> This is why I never believed the "There is no STEM shortage" stories. They were mostly based on the assumption that all STEM grads were qualified to work in STEM. That's not true in any field where you can complete a degree with a C or D average.

This is true IFF we assume that gpa accurately reflects qualification to work in industry.

There is a difference between getting a C or D average because you don't care about school, and getting that because you can't do any better. Unfortunately the two are hard to separate, and even if the grad didn't care about school - it doesn't mean they will care about work.

I was in the boat of not caring about school (although I did get a B) and it worked out - but anyone following that path should understand its an up hill climb.

At the risk of sounding foolish, but isn't it easy for a company to filter out applicants in technical fields, simply by asking technical questions?
Yes, and that's what they've done at every programming job I've ever had.
Now there is a mini industry around getting people over that very low bar. FizzBuzz was a temporary patch, now we need a real fix.
But that takes the engineers you already have and puts them in interviews instead of engineering.
Interesting that in the nsf data it shows that during the 2000-2004 time frame the number of CS grads rose and then peaked in 2004, while the number of CS women grads during the same time frame was flat, and then dropped in 2004.
(comment deleted)
'04 was just post dot-com bubble, though. Sad if those numbers haven't picked up since then. We badly need people who are doers and not just rent seekers or mid-level functionaries.
What's interesting to me about that data is the high rate of biological and agricultural sciences grads, relative to all other sciences. CS grad rates seem to fall right about where they should on XKCD's Purity Scale [1] (if CS had been included in it). 2004 was an outlier for CS, but it has reverted to its mean since.

But bio and ag sciences are beating out Psychology, which is a bit of a reversal. Biology isn't easy, especially not any program with a requirement for organic chemistry. Could that be b/c the big midwest and southwest universities (Iowa, Texas A&M, etc) have large bio/ag programs to support that industry in their region?

[1]:https://www.xkcd.com/435/

Although biology and organic chemistry are much harder then CS anything, they can be learned in school and from school resources only. No one expects you to already come in already knowing how to code or configure linux. If you are good students willing to work, you will learn them, period. With cs, you are expected to already know a lot that was not taught in school - meaning that all kinds of cultural and social effects play the role (who your parents and friends were).

Also, there is a lot less myths about biology around. Nobody assumes you have to be some kind of nerd to learn it, nobody assumes there is special in-born ability for it totally different from all other kinds of intelligence (like is often implicitly assumed even with things like operating system configuration), there is much less cultural bullshit about "hackers and their culture" around.

I haven't personally taken organic chemistry, but several of my friends who have taken both organic chemistry and algorithms have said that algorithms is by far the harder of the two. So I tend to disagree that biology and organic chemistry are harder than anything in CS.
Have degrees in both and agree. The amount of work require to get a B in data structures would get you an A+ in biochemistry.

Physical Chemistry on the other hand...

Eh, my college girlfriend majored in Chemistry while I was CS and Math. P. Chem was certainly a huge challenge, but I never got the sense that she was smarter than me, just maybe more determined in certain ways and better at memorizing shit. She got a 4.0 and was valedictorian, but she dropped any elective classes if they looked like they would not result in an "A" for her--I especially remember her dropping Calc II, for example. So she got her 4.0 by successfully gaming the system, whereas I never got overly focused on grades as the ultimate marker of successful learning.

Btw, I have done quite well in life, not sure where she ended up; probably chasing some other kind of "grade" these days, lol.

That may depend on school. I have seen opposite - chemistry requiring much more work and being harder. I never found algorithms particularly hard.
Organic chemistry looks complicated but it is, by and large, just an enormous amount of memorization. The kind of complex systems reasoning you have with any non-trivial computer science isn't there.

By contrast, even though it is the same subject matter, chemical engineering is (correctly) perceived as being vastly more difficult than chemistry because it requires reasoning about complex system-level behaviors that has no analogue in chemistry. This creates the oft-observed effect that being skilled at chemistry has surprisingly low correlation with being effective at chemical engineering despite being the same domain.

Most programming jobs are easy, it takes effort and luck to find one that is not. Things like system administration and configuration are largely about remembering thing. There are some aspects of it that are harder and require being good at math - by you dont need them on practical jobs and they are still easier then real math.

But realistically, a.) memorizing that much is hard b.) my friends who studied chemistry said that it becomes much easier when you understand how it works.

trying to learn organic chemistry by memorizing mechanisms is like trying to learn maths by memorizing derivations... it might work for an intro course but you will quickly hit a wall.

chemistry and chemical engineering has very little to do with each other, despite the name. chem eng is focused on scale up while (organic) chemistry is focused on novel mechanisms

I have no particular opinion on harder/easier. (There is a lot of memorization in organic chemistry earlier on because you don't have the tools to come up with answers from first principles at that point.)

But, unlike CS, there isn't this assumption that you've played around with organic chemistry and/or chemical engineering in your spare time if you want to major in it in college.

As someone who graduated with an engineering degree from one of those large Midwestern universities, yes. There are millions of acres of farmland and tons of ag companies who are making developments to eek out another 1% yield. At my university, the ag and life sciences college was only recently overcome by engineering to be the largest college.

In Michigan the universities have a lot more focus on automotive because that's what runs the state. Agriculture runs a huge portion of Iowa, Missouri, Kansas, and other nearby states.

Re: the choice of 2005 as origin, if you rebase on 2009, then CS degree growth looks on par with other STEM fields. Thus I think is's misleading to say CS majoring is "flat". At a certain end-to-end view it is, but that obscures that it crashed, and is now rapidly growing, not that it's been stagnant and unchanging.

In the early 2000s it was widely perceived as the economically smart thing to go into a technical field other than CS, especially petroleum engineering, chemical engineering, and similar areas, or maybe even better, a non-technical field like law. They had higher pay and were seen as more stable employment options. CS employment was seen by many people as unlikely to ever fully recover from the dotcom crash, partly because of mass outsourcing. So unsurprisingly, new enrollment numbers were low, and some departments at smaller schools even closed. Then from around 2005, CS began to be seen as a lucrative again, and enrollment has been steadily rising every year since then. Universities have responded likewise by reopening CS departments, hiring more faculty in existing ones, and increasing class sizes (so enrollment growth is actually considerably outpacing faculty growth).

This does not look to me like a market that fails to respond to economic incentives, but exactly like one that does respond. Maybe it ought to respond even faster, although if it did in general, the CS-degree crash of the 2000s might've been even deeper than it was.

>if you rebase on 2009, then CS degree growth looks on par with other STEM fields. Thus I think is's misleading to say CS majoring is "flat".

No, what you described is called "misleading with data" at best and "lying" at worst. There is a clear dip in CS on that plot that is suffered but none of the other points. Moreover, the growth is below the rate of increase in college graduates.

The clear dip in CS is what the rest of my comment is about. The point is that the entire premise of the original post, which claims CS enrollment is "flat" by cherry-picking a specific benchmark year and ignoring huge movement between that year and the present, is indeed "'misleading with data' at best", because CS enrollment is not "flat". If you pick an earlier or later year, you get different narratives.

The post then spends a bunch of time musing on why CS enrollment supposedly doesn't respond to economic incentives, even though responding to economic incentives, i.e. rising and falling together with tech booms and busts, is precisely what the data shows it doing.

Edit: better said here, https://news.ycombinator.com/item?id=14441423

You're right, saying it is "flat" rather than "lackluster" might have been better. I apologize for that.
Did you read the post you are accusing of "misleading with data"? He describes that exact phenomenon the sentence after you quoted. It's completely ridiculous to cut out context and then him out for not mentioning the context you just cut out.
In that time (early 2000's), even if you had a strong interest in computers, you'd be pushed toward Computer Engineering instead of CS. Business school was a popular alternative with MBA enrollments peaking in the early 2000s.
Where I went to college, UMBC, Computer Engineering covered enough of Electric Engineering and Computer Science that it set you up for either a career or further education in either. In my opinion, it was the best value.
I did in fact have considerable pressure from family to change my major from CS to some form of Engineering in this time frame, ideally some "hard-science" engineering like Chemical Engineering. CS was seen as a dead-end, easily exportable coder job, and well-meaning relatives really wanted me to get an engineering degree instead.
>mass outsourcing

winrar! Came here to say that. ctrl-f says you're the only other person to remember it.

https://trends.google.com/trends/explore?date=all&q=outsourc...

Yes, I know it seems silly now, but this was a very real scare that CS would be a worthless degree in the future. I was dissuaded from majoring in CS during the height of this, but ultimately changed my major back to CS when I realized that I was actually really good at it.
(comment deleted)
Who gives a hoot about IQ in 2017?

That doesn't match what I see in the ground. I get 10-20 interns a year on my teams from big state universities and liberal arts schools with CS and stem degrees.

They tend to be awesome. The best ones outperform most of the consultants you find.

More people than ever, especially on HN.

https://www.gwern.net/iq

Nothing you say relates to IQ stats about the median grad. If CS enrollment was up, it would push the needle I'm sure. It's not. You may as well be saying, "What do you mean most wine is bad? I drink good wine all the time."

I'm getting a random lot of 20 kids from average schools. Surely, if IQ is dropping significantly amongst the general population of CS students, I'd be seeing that?
Is your company actually selecting 20 kids at random, or selecting 20 from the best of the ones applying?

Are you also comparing this over a long timeframe? 112 in the 70's -> 100 now means less than 1 point every 3 years. You probably can't notice a difference that small year over year.

Of course, "the plural of anecdote is not 'data'," is the first thing I would say. I know someone who just went through the process to hire a half-dozen interns, some from top schools, who (frankly) would argue with you. There are a thousand possible reasons for this but I think the best course of action is to dispense with that, personal, line of reasoning.
The author's point was that college IQ was dropping, and this explained the lack of rise of CS enrolemt. Simce CS is objectively harder, only a lower portion of college students can now do it.

That's their hypothesis. So their hypothesis isn't that CS student IQs are dropping.

> Who gives a hoot about IQ in 2017?

What does 2017 have to do with IQ?

Actually I think IQ is more relevant now since we have lots of incompetent people holding degrees.

Re: the Wordsum test, I can't believe it is seriously used to assess IQ. If we assume that all participants know all of the words used, then maybe it would have some merit. But so many of the words used are either archaic, little-used, or culturally specific to North America that you could only reasonably expect a well-read and/or well-educated (and therefore wealthy) American person to know them.
It still likely correlates well with IQ. That's the whole point of IQ. A bunch of different cognitive tasks like solving puzzles and memory tests tend to correlate very well with each other. I'd be very surprised if wordsums didn't predict IQ very well.
It's hard to believe a person of high IQ is not going to be well-read and/or well educated.

The only point about this test is it's specific to native speakers of English, but if you were born in North America than it surely applies to you even if your parents speak another language.

> It's hard to believe a person of high IQ is not going to be well-read and/or well educated.

What of high IQ individuals who are born into low- or middle-class families, who didn't have their parents read them 19th century British novels, and therefore don't know what a dowager is?

They would go to the library of their own accord.

You don't need your parents to read things for you.

institutional education is subject to diminishing returns at every level of the process. it's a fractal of diminishing returns.

the "college for everyone" experiment is grinding our society into paste and generating enormous debt burdens for an entire generation. time to end it.

those with aptitude for programming can learn programming without a college degree. let's find out just how flat aptitude really is. all we know now is that aptitude is flat in the institutional environment.

I think the market is just way over saturated. Hiring practices for developers point to just that.

I mentioned in a different thread how simole it is for my travel-nurse of a sister to get a new job (her stints around the Bay Area paid ~100k and she only has 2 years of experience).

Developers jump through hoop after hoop for employment, this wouldn't happen if they were in demand like a nurse. The market is just responding appropriately, though maybe not how the masters would prefer it.

Nurse is licensed though. That's instant credibility.
Not to mention "useful". Imagine nurses going on strike. Now compare that to lawyers, programmers or investment bankers going on strike ... no one cares.
What happens when IT for a hospital goes on strike?
Not to mention an airline. The recent British Airways debacle was caused by a technical problem, but if the IT workers had gone on strike, similar problems could have resulted.
Same thing that you do when nurses go on strike. You hire a bunch of scabs and muddle through.

The difference is that IT usually sucks so much that nobody notices.

If it's infrequent enough, reliability may go up as there's a moratorium on production environment changes.
Exactly. Also, the supply of nurses is highly constrained in the Bay Area due to a very small number of people able to graduate. There's actually a lottery to enter a registered nurse program and last time I checked the odds were less than 30% to win the ticket. Besides that, hospitals lose state subsidies if their nurse/patient ratio drops below a certain threshold. It's really apples-to-oranges.
It's just as much credibility as any college degree in computer science. There are still lots of crappy nurses that are licensed.
I'm a freelancer/run-my-own small dev consultancy and I pretty much never jump through hoops. The level of demand doesn't create the hoops. Some combination of needing to create the appearance of "only hiring the best of the best of the best just like everyone else" & fear of a bad hire creates the hoops.

I don't have trouble finding work and often need to bring on additional help. The hoops are cultural.

Bad hires are totally worth the hoops to avoid. The problem I have seen is no one knows which hoops are useful and which are harmful and they do all the superstitions they have read about. I don't know if anyone has figured out a methodology for solving that.
Yeah, Im tired of working with poor or unmotivated coworkers. You just dont really know until you start working with em.
The interviews for the big five (Amazon, Google, Apple, Microsoft, FB) are disguised iq tests. It's like taking the SATs to get into college.
Yep and when my company gets contracts they don't jump through hoops either. Our sales team doesn't do white-board exercises for clients and neither do our engineers.

So what's your point? You are not a traditional employee. You are a company...it would be weird for them to make you jump through so many hoops.

Companies are treated better than employees in the market.

That seems to contradict the whole "there aren't enough devs" argument that seems to keep getting brought out to enact visa "reform"...
If anything, there aren't enough C-level folk. Low supply is why their wages are so inflated, we should be allowing H1B for CXO's.
I've never had to "jump through hoops" in order to get an engineering position.

I usually get a fairly straightforward phone screen/on-site interview.

I don't know what market you're in, but it's definitely hard to find good people in Silicon Valley. Most of the time my company finds one, they have multiple offers.

It's also difficult to believe in an oversaturation of developers when their salaries are at record highs -- that only happens when demand increases relative to supply. There is no union, and minimum wage is nowhere near what developers are paid, so supply and demand is the only explanation for the increase in developer salaries over the past few years. In an oversaturated market, salaries would decrease, not increase.

> I don't know what market you're in, but it's definitely hard to find good people in Silicon Valley.

Depending on how you define "good", I would dispute the assumption that every company deserves good people. Information about what a company is like to work at spreads fast enough for good people to avoid them. There are plenty of such companies.

I dunno, SV startups tend to measure programmers quality in a lot of superficial ways. There are many cultural fit, age and other random expectation that limit the pool. It is a bit like herd - you get to be in demand because you have the thing everyone wants now and a year later no one wants you because herd changed opinion. Your ability meanwhile did not changed.

If there would be actual shortage, companies would find a way to work with people who want to work from home (I know it is less effective and not for everything, but if you are really desperate you find a way) or part time or with people who are not quite cool at beer but will work. Companies being picky about things that are not strictly speaking ability suggest there is no shortage. It means companies are in position to be picky.

>minimum wage is nowhere near what developers are paid

Why would you compare developer salaries to minimum wage? You should be comparing them to the wages of doctors, lawyers, and CEO's.

I have a CS degree from a small liberal arts school.

I've only had to do a handful of interviews, but they've always been extremely mellow (my last one took place on a chairlift) and I've been practically begged to take each job. Then again, I'm in Wyoming, not Silicon Valley so that may have something to do with it.

I think it's very much based on supply.

In Michigan with 10 years experience, I don't usually have trouble landing work. In some cases, they're practically begging people not to relocate away for the much higher wages.

But when I've applied to positions in Seattle, even lower-end ones, I've always been rejected. Across a dozen companies in coastal markets, everyone seems looking for any reason or excuse, no matter how trivial, to reject any candidate they meet.

Maybe since the salary expectations are so much higher in SV/NY and Seattle* HR folks feel they have to be seen to be much more "rigorous" whether that is the case or not ("we had 100 applicants and hired the top 2")?

* = I picked the three big pricey "coastal" US places that came to mind, it's entirely possible we're talking about different places :-)

>In some cases, they're practically begging people not to relocate away for the much higher wages.

This sounds like a funny line, because the best form of begging would include money.

Interesting. Do you have tons of side projects/other work you have available for potential employers to view? My sister only shows her degree and that she's been licensed in whichever state.

I'm in bioinformatics, so not pure tech, though I did interview for several straight tech-companies last year and my experience was very poor. Multiple phone-screens, having to work on side projects, on-site multi-hour interviews, white board exercises, etc.

My sister the travel nurse literally spends 2-5 hours on the phone every time she wants a new position. That generally includes 2-4 phone screens with potential employers. Then she gets offers and picks which job she wants. Are your interviews really that simple, it takes less than 5 hours to find a new job? You spend a few hours on the phone and then get immediate offers with relocation if needed?

Those practices also speak to the general openness of opportunity of being a developer - your actual skills matter most, so they screen to assess your skills. Other industries focus more on degrees or names of past employers, etc., and I prefer it this way in software.

But yes, due to its openness, that you don't need the relevant degree to find employment as a SWE or ML engineer or data scientist (lol - data scientists today, such a bastardization of 'scientist'), it is I agree very competitive, especially if you're just starting out.

If interviews measure your actual skills, why do working practitioners study for them?

Interviews measure a shibboleth with a glancing relationship to relevant skills, which is more based on expedient and clever solving of the toy algorithms problems you'll find in college than the actual quality of a developer's output. Different companies' interviews attempt to measure the same skills in different and subjective ways, yielding different results.

Centralization on an evidence-based standardized test for the "prove your skills" part of the interview process is one of the best outcomes we can hope for. Ideally it would be open to non-degree-holders. Include per-component scores so companies can choose which areas they care about more, avoid grade inflation so similar candidates are distinguishable, etc.

People always claim this but it's not true for the majority of companies. Yes some, including a small number of big brands, ask leetcode algorithm whiteboard questions, but most interviews I've ever had are more practical, prove you can build things.

That said, I have no problem with leetcode algo questions, as long as the interviewer is only checking for your ability to think, communicate, and hands on experience with a few basic programming approaches (using hashes, recursion, structuring code etc.), which they are in fact excellent gauges for. If balanced with other types of interview challenges, it's not a bad way to assess. (but yes, it crosses the line if they care about the perfection of your leetcode algo; again, most do not)

A nurse has a professional body underwriting her or his qualifications. A developer has no such thing. That's why all the hoops.
>Why is the marginal student not drawn to study CS at a top school, and why would a top student not want to study CS at a non-top school, especially if he or she can find boot camps and MOOCs to bolster learning?

Because I'm not smart enough to get into MIT/Stanford/UCB/CMU?

A better question is "why do we care".

Software is about the only career I can think of where there are movements created to inject social status into it so that people get into it who are only interested so long as it comes with social status/trendiness.

The major also doesn't fix the thought process. You either have it or you don't.

I think it is also the only career which people try to inject diversity just for the sake of it.

Maybe I just live in developer bubble and don't know any better, but I've never seen a movement like "Girls do Plumbing!", "Black girls construction bootcamp" or "Mining for equality!".

> Maybe I just live in developer bubble and don't know any better,

Yes, that's quite likely. Diversity is important in this field, as in any other, for a number of reasons. The two most important are that is the brings diversity of thought, which should always be welcome in a supposedly fact-based intellectual field, and that it is a signal that we as a society value ourselves and our peers well enough to not treat anybody as second class citizens.

But you're not promoting "diversity of thought", you're promoting BS signals. How is it promoting facts when you're searching for superficial signs of diversity?

You're promoting a form of corporate doublethink where filling out bubbles of sex and race is automatically analogous with some platonic ideal where every single variant of human being had this amazing differential that'd waiting to be exploited.

But instead it seems a very cynical game where the superficiality of diversity conquers honest evaluation of needs and ability.

You're making many assumptions that really aren't justified.
How are they not justified?

A cynical understanding of human nature and society serves a person far better than the opposite.

People want to do less work than more work. For people involved in acquiring, placing, and managing human resources, an easy way to signal "work"/"useful work" is by parroting the line of superficial diversity.

That's my experience at least. I win far more bets by assuming the worst of intentions than the best in these hiring games.

In the military you see a big push for "diversity", especially in relation to sex, where all sorts of carrots are trotted out just to have a platonic makeup of sees in the armed forces. Nevermind that one of those sexes has an ace in the hole called "pregnancy" which the mil. Bureaucracy will bend to accommodate.

Nevermind the disastrous effects on morale and confidence in command this brings to some poor bastard from Nebraska who goes through all sorts of shit. If he gets a girlfriend, or God forbid a wife, he faces the risk of absolute cuckery on that side. If he messes around with whores and the command is looking for a scapegoat, they'll bring him up for ucmj charges. Meanwhile if his girlfriend/wife messes around with boys on the base, she has no repercussion for her actions.

"Wait, what about the pregnant female soldiers?"

Easy office job and easy promotion because higher-ups would rather have eye candy over a more disposable resource (competent males).

What gets me is the total denial of this facet of human nature by those who push "diversity".

I invite you to re-read this comment after you've had time to reflect. So much about it is representative of exactly the sort of casual sexism that runs rampant in this industry. From the assumptions about "human nature" to the straw-man "diversity" you describe, even.
This is factually incorrect. Many years ago, I was involved in underrepresented minority outreach programs at a variety of institutions. Computer science was one of many fields, which we focused. Though, to be clear, the programs that I was involved in were all STEM centered. Also, to be clear, the word underrepresented is important here. Asians are a racial minority in the United States, but not underrepresented in STEM fields, so they do not receive the same kind of focus. Alternatively, women are not underrepresented in all STEM fields, so the attention per field varies. As a corollary to this, good programs tend to look at the number of underrepresented people at the undergraudate, graduate, and faculty levels and tend to make different decisions depending on where the need is. Generally, representation is not uniform across each of those categories.

Now, this is not to contend whether these programs are good or bad. I have my own opinions. However, I will strongly say that the contention that computer science is unique in this regard is factually incorrect. Programs exist across a broad selection of fields.

But that's what the parent comment was saying. It wasn't talking about CS vs the rest of STEM fields. It was engineering/sciences vs blue collar work: coal mines, oil rigs, plumbing, etc.
The top level comment states, "Software is about the only career I can think of where there are movements created to inject social status into it so that people get into it who are only interested so long as it comes with social status/trendiness." I came to say that this is factually incorrect. Now, my experience does come from STEM, so I don't know about non-STEM fields. However, to be clear, I was responding to this comment and the following one that supports the assertion that software is special with respect to outreach programs. Certainly, I apologize if there's any confusion.
Top level,

My statement is unclear, but the "udacity/anyone can be a computer whiz!" "koding with karlie" vibe that is pushed is very different than anything else in the world.

Software is unique in that it IS something that anyone with the minimum amount of the right talents can learn to do well on their own -- that's just the nature of the internet and how software is distributed/documented. It ISN'T, however, something that just anyone will be good at. Not everyone is suited for the type of information gathering and thinking that it requires.

I would never delude myself into believing that I have the correct talents to be an accountant, a lawyer, or an artist. Why is this type of attitude normal in software?

It obviously makes business sense for companies like udacity to sell the idea that it's easy to gain a textbook understanding of it, but the culture surrounding it tries to take it much further than that. Companies are expected to force their demographics instead of sharpie-ing over the names on every job application and just choosing whoever the fuck is most qualified for the job. If the interviewer is legitimately sexist or racist, you have some much deeper set problems that aren't going to be solved by ordering them to hire certain demographics.

You could even argue that women have an upper hand by being scarce!

And then you have bullshit evidence like "companies that hire diversely are more successful", when in reality this is a classic correlation/causation fallacy where the largest and most successful companies can afford the extra hiring hours and turnover of hiring the wrong candidates.

> Why is this type of attitude normal in software?

I think people greatly underestimate what software developers actually do. To most of non-computer related folk we are just monkeys who bash keystrokes.

I'm not saying we do some rocket science, however in this profession a lot of online research is required to even do a simple things, and to most of people it is annoying to do so they give up.

I'm full-stack developer for about 10 years but still have to google MSSQL connection string or how to center stuff vertically in css.

> in this profession a lot of online research is required to even do a simple things

Or you could look at the documentation. People did simple and complex things with computers for decades before google existed.

Well, "artist" is a little farther away than the other two, but I would submit that most of the people who have what it takes to be a median accountant or lawyer probably also has what it takes to be a median programmer. For all the discussion of how we "think differently", I honestly don't think there's that much separation. Maybe when you get to the higher levels, but that separation is as much within the profession as between professions. There are programmers who have whatever the wiring is that makes them want to sit down in their free time and write a new kernel, and there are programmers who are reasonably content cranking out Wordpress installs on a 9-5 schedule.

And for what it's worth, I suspect that if most people were willing to put in the time and effort to learn how to create art, you'd find that many more people can create reasonable art than you would otherwise believe, because we've talked ourselves into a model of artistic talent that seems to hold that it's a binary switch, rather than something like any other skillset, where some people are more talented, but where almost anyone can develop some ability in it if they put in time and effort. I'm not a naturally talented basketball player, but I can run and play defense and hit a reasonable jumper in a pickup game, because I've spent a lot of time over several years learning how to play and then playing a bunch of games.

Candidly, there are plenty of people who delude themselves that they are well suited to being a doctor or lawyer. That said, they're prestige positions, so there are cultural reasons for doing so.

On the STEM front, a quick search immediately pulls organizations like National Girls Collaborative Project:

http://ngcproject.org/

Girl Scouts:

https://www.girlscouts.org/en/about-girl-scouts/girl-scouts-...

Girlstart:

http://www.girlstart.org/

and Girls Inc.:

http://www.girlsinc.org/news/editorials/inspiring-girls-expl...

that provide either focus or programs for outreach in STEM more broadly than computer science. Now, I don't know the exact numbers for whether programs for pushing for women in CS are greater in number than STEM. That would be interesting to know precisely. Mostly, my contention is that, yes, there are organizations that are attempting to encourage young women to entering STEM fields beyond software.

Now, at a city level where I live, I have noticed anecdotally that there's been a push for software based businesses from the local government. Though it's difficult to know for sure, my opinion of this push toward software as opposed to engineering is because the apparent investment in creating a new software company is lower than the investment in creating an engineering company. Engineering tends to be a more regulated field and often requires more expensive equipment. As such, I believe the city is interested in businesses that could have a large economic impact for a relatively low amount of investment. Now, is this so easy? No and I believe my city government's actions are somewhat misguided. That said, I doubt that where I live is unique. I do believe there's a national push for software based businesses because the apparent investment is low and the payoff is high. Along with that will be programs to encourage underrepresented people to enter the field and these programs will be visible. But, again, I contend they're not unique.

This is an argument that make on a regular basis and it never seems to work for the people on the other side of the argument. There's always some excuse that boils down to:

A, I only care about the demographics when it's convenient (i.e., the career is prestigious)

or B, "yeah well I support men in nursing and women in construction too!", despite there not being a similar effort in the known universe to force demographics in these fields.

Why should demographics be forced? This insane obsession with having a 1:1 ratio male/female, and now ethnicity-based as well, is not healthy.

It's weird that the politically correct opinion seems to be that it can't be accepted that a natural gravitation towards certain professions or acts based on gender is real.

I've been pretty curious about this as well. Why aren't there more women on oil rigs?

We try to add diversity, but it feels so manufactured. Society has evolved the games and roles we play. It will evolve further down the line as well. What is considered acceptable for men, women, westerners, easterners, low-income, high-income will all be noticeably different in 100 years.

Culture adjusts with time, and we see that in our current society, women often takes roles they feel more fulfilled with rather than those which might earn them the most money.

I guess you could make the argument that they're falling into traditional family roles with men being the bread winners, but I've seen many single women on their own peruse the same ends.

Maybe we should all find ways to do what we love instead of being like the guy in the Futurama poster with "You gotta do what you gotta do."

Off and on, I do contract work for oil companies and I can say with some certainty that it's a pretty hostile environment toward women.

Let me give some examples to see if I can build a picture. On the technology end of things, I used to go to the conference SEG, which a lot of deals for technology are made on the side. I've not been for the last 4-5 years, but they used to be really aggressive about their use of booth babes. For example, I remember one year where there was a vendor where I could get my shoes shined by a group of women wearing bikinis, cowboy boots, and cowboy hats while having the sales person talk to me about whatever widget they were selling. Similarly, a former coworker used to hire what were called "technical models" who were pretty women that could talk shop that they'd used to drive sales. Now, is this unique to oil? Nope. However, I felt they were pretty aggressive about it.

As far as oil rig work, that's interesting for a couple of reasons. One, roughnecking is one of the only fields left that pays extremely good money for limited amount of education. Two, most of the managers that I met did a certain amount of time working on rigs to cut their teeth and they very much viewed it as a rite of passage into upper management. I mention these two things because it turns out rig work is important both for providing wealth to those with little education as well as a path to upper management. Now, as a women, is this an inviting environment? Well, let's see; there are very few women doing it right now, so it's likely you'd be one of the only ones at the operation. Further, depending on the assignment, you could literally be trapped either in the middle of the desert or on an offshore rig with literally no where to go in case there was a conflict with the other personnel. Alternatively, you could take an assignment in a place like Saudi where you have to completely cover yourself and not drive whenever you're off compound. That sucks and every woman who enters the field knows that it sucks.

That said, would oil management be excited if a bunch of women wanted to do rig work? Absolutely. Each of the companies that I've worked with absolutely had outreach programs to attract women. However, it's hard because overall it's an extremely hostile environment. Further, it has a long term affect because the current oil culture encourages a certain amount of rig work to cut your teeth for management and if women aren't getting that then they're at a disadvantage for those positions as well.

What to do? Honestly, I don't know. Personally, I think there's a chicken and the egg problem. If there was magically a big cohort of women who wanted to get on a rig, I think many of the problems I mentioned above would be moderated. Though, certainly, disadvantages while working in the Middle East persist. However, it's unlikely that such a cohort will magically appear. Till then, part of the point of outreach programs is to create small, incremental improvement until these problems fix themselves.

Well put. I work in engineering at a large industrial plant very similar issues here. There is a huge effort from management aimed at improving workplace diversity but at least from my limited point of view seems difficult to attract female applicants for open positions. I think partially it's remote location our plant is not in a very attractive place to start a family etc. Also the issue you identified where "coal face" experience is seen as a rite of passage into upper management.

My sister is also a mechanical engineer she worked on remote mine sites for a while and then at a power plant. She took a few years off to have children and now has no desire to get back to that kind of lifestyle. She works for the government now.

Alternative hypothesis, with regard to roughnecking, provided by Occam's Razor and biology:

https://www.reddit.com/r/dataisbeautiful/comments/4vcxd0/alm...

In current practice, there's plenty of roughnecking work that involves action beyond slinging pipe. There's a huge amount of monitoring, surveying, and other engineering work that has nothing to do with physical strength.
Counter point: You can reason that women wouldn't go into other fields like plumbing, or construction because those are also male dominated. The biggest distinction is that Computer Science can be a path climb the socioeconomic ladder.

> I think it is also the only career which people try to inject diversity just for the sake of it.

Well when you think about the reach of software in the modern world, it can influence anyone. Whereas diversity in plumbing might not be important, having different points of view on a programming team can mean the difference between having your product take off, or fail.

You're not making a convincing argument. Why are the capabilities of plumbers to mentally map various causes and effects and points of failure not subject to the same forces of thought differentials you claim?

My cynicism says that diversity is a result of baizou, not any actual accounting of some magic spread where different and useful ranges of thought are spread in equal proportion mapping to a species of bureaucratic classification of diversity as noted in sex and skin color and nationality.

Programming requires more abstract thought than plumbing. Jobs spoke about the intersection of liberal arts and technology, wrt computer science, not plumbing.
> having different points of view on a programming team can mean the difference between having your product take off, or fail.

All teams have different points of view. This has nothing to with "diversity" or gender. If there's a female or two on the team, great, but don't force it, and her opinion has no more value than the opinion of her male colleague.

Forced diversity (of what? be specific, ethnicity? skin color? religion?) is not a requirement for multiple points of view.

Because minorities and the poor/disadvantaged are already over-represented in fields with dangerous physical labor..

Computer Science is a focus for these efforts because it's a high-status, high-pay career that has exceptionally poor gender/race balance. Much like Wall Street and corporate america in general:

https://i.imgur.com/0mAm4OB.jpg

(comment deleted)
My brother in law was doing an outreach to female high school athletes to get them to sign up for the civil service exam for his fire department.

Technology is also unique in that between the different over-represented minority cultures, people with poor social adjustment and tolerance for "boys will be boys" creates an actively hostile culture for women.

(comment deleted)
It's not "for the sake of it", diversity brings insanely great benefits. Lack of diversity is likely why most software produced by this industry is, well, shit.
> It's not "for the sake of it", diversity brings insanely great benefits.

Are there any proofs of this assertion?

> Lack of diversity is likely why most software produced by this industry is, well, sh@@.

Could you share the reasons you have for believing that?

Doesn't Sturgeon's law apply to most industries? To everything?
How much do you hear at all about plumbing or other trades? A few minutes on Google turns up links like http://womeninconstructionconference.com/, http://www.new-nyc.org/, http://www.explorethetrades.org/women-in-trades/, etc. so I think it's most likely that you're seeing a combination of selection bias and the fact that software development is both a popular field getting general attention and one with an abnormal diversity rates compared with similar fields.

That's not saying that those fields are perfect but, say, a female/Hispanic/etc. accountant, paralegal, etc. won't be the only person fitting that description at most meetings. Skilled trades often have skewed gender, ethnicity, etc. ratios but they also don't get anything like as much attention so most of us are unaware of the problem or efforts to improve things.

>You either have it or you don't.

This kind of ignorance brings up the major social issue of technology, something similar to the "Smug Lisp Weenie" issue.

Many young people are idealistic and want to get into a field that will change the world for the better, and going into a field where the status quo for success is how well you can implement math for a faceless entity is not very appealing for many folks, regardless of their ability to do so.

You might be able to memorize hundreds of kernel functions or visualize abstract data types, but is what you're building actually solving the problems of your community or your society? Does your job tickle your brain enough that you don't care if you're building auto emission cheats? Is this kind of thinking truly "intelligence" when the ocean is acidifying and urban lifestyles are shortening our telomeres?

That's literally the opposite direction I was going with "you either have it or you don't".

Do you really think that the type of person that is suited for connecting extremely disparate information is at all common? Sure, anyone can hop into a job at an established company with established tools and documentation and write glue code, but to me that is very different than the type of person that genuinely has a talent for software.

Being able to memorize bullshit or excel in academia means nothing.

Primarily, because computer programming is low-status.

(also, this is one of the main reasons why females are deterred from joining)

As a follow up, "Immigrants are taking all the jobs" is untrue.

However people in MBA programs are quite open about their intention to make it true.

It has an almost duality to it. It pays exceptionally well, and can be exceptionally hard. Unlike building a bridge, we often see a lot of software slung together and say "Wow, this..this is terrible," unless you're one of those software developers who work for NASA or need to design pace makers or aviation safety equipment. (some of that stuff may be terrible too, but at least it's incredibly well tested).

At the same time we see Dilbert, We the Robots and Office Space all showing the mind numbing reality of what is software development. Games look amazing and every kid wants to be a game dev, until they hear about the months of 16 hour shifts, the insane deadlines, the rooms filled with devs, artists, animators, QA/testers and writers sleeping under their desks to get a title out.

(comment deleted)
Proud to be a freshman majoring in CS and also proud to be a nerd.
For the same reason so few people major in any subject. CS isn't special. People major in subjects because they're interested in them, they think the career path might be good, there is social prestige, and many other reasons. It's entirely not surprising that CS has few people selecting it as a major.

The decline or slower growth relative to other fields requiring similar kinds of intelligence may be an interesting question--or it may not be, but the posted article doesn't, in my view, present any compelling case for either answer.

I'm glad I got a full CS degree, but I knew several people who dropped to the business versions (often called MIS or CIS depending on your school) and learned a lot of the basics of programming and web front ends without more the hard core algorithms and foundation work.

As I read the into, I think the author touched on a lot of the reasons I was starting to think of. A lot of people do boot camps (which are overpriced for-profit garbage btw), community college programming classes, etc. I know people out of this programs that understand bigO notation and do all kinds of fun scaling work and I know CS majors who can only program Java/C# and don't know what a SATA connector is. You get out of your field what you put into it.

As far as women in our field, I hesitate here. I don't really think it's the hostile landscape. I've worked with several female engineers. Some are amazing and good designers. Some are terrible. The ratio to good/bad males, in my limited non-scientific empirical view, seems about even. I also haven't really witnesses women being treated badly either and I've worked in five cities and several jobs over the past two decades. What I have seen are entire groups of people being treated like crap in hostel work environments, not limited or segregated by race or gender.

I feel there are also not that many people in our field (both men and women) because it's...pretty horrible. Seriously, we sit in front of screen for 8 hours a day watching the world tick by, often doing our best to design the best we can to be bolted onto old decaying crap that should have been retired a decade ago. Or we build shiny new products that benefit the few and have tons of crazy requirements that come out of no where that nobody wants. There aren't as many women in engineering because in general women chose jobs that are more rewarding even if they're lower paying. I think we could all take a page from that philosophy, if we didn't live in a world where we were afraid of ending up on the bottom or without enough for essentials.

I can honestly only two about two years at a time in IT these days. I've embraced the Sabbatical (http://penguindreams.org/videos/taking-a-sabbatical/) even though I realize it's probably not sustainable long term, and also realizing my earnings in software give me this unique advantage, that most people simply don't have.

I just wanted to say I agree with the field being "pretty horrible", for all the exact same reason you posted.

Civil/Mechanical engs, Doctors, Lawyers, Nurses, Biologists etc, all get out in the field and/or get to work with people all the time...

In tech it's the same flourescent lights, same keyboard, same office, same people...every day for 40 years? What kind of quality of life is that? It's literally the definition of the Rat Race, tech people are just paid better.

This is a very legit reason for not entering the industry, and I think and is probably the biggest reason for the lack of csci majors.

A lot of engineers on /r/engineering complain about either being a 8 hour a day CAD monkey, or "being stuck in this stupid factory" or "constant travel is killing me" etc.

On a broader note, I don't believe a generally accessible job (i.e. not requiring some unique career path or tons of sacrifices beforehand) can be both well paid and rewarding. We're paid really well because we generate lots of value and we're relatively scarce, but at the end of the day we're just the requisite meat component in somebody's money making machine. It's bound to be not too pleasant.

Doing anything for money sucks the pleasure out of it, programming isn't unique in that.
Personal anecdote: I didn't major in it because I had no idea I would enjoy it.

I was fortunate that my engineering program had two semesters of Java. We spent more time hand drawing logic gates than coding in the intro course and so it wasn't until the second (data structures) that I realized it was something I wanted to pursue. It was too late for me to change majors at that point, but not too late to take internships and then a job as a programmer.

Same here. I wish I had the degree, but I don't regret the ones I did get (history and economics). I get to use code in a job I enjoy and thrive in, which gives me a leg up on the competition. It has made it difficult to break into fields I now think would be interesting (esp. security or systems admin), which I think has been the only downside. I can learn a lot of the interesting stuff on my own time and apply it when appropriate for my normal job.
I took one year of CS then finished with a degree in International Relations (basically political science and economics) and Latin American studies. I loved school and the topics I learned about, but they have no bearing on anything I've done professionally.

University came out of a tradition of being educated for education sake, not to build job skills. Even computer science doesn't teach you how to be a software developer. It's an academic study of computers.

One possible answer no one has mentioned so far is that there many smart, capable people who do NOT want to spend hours every day sitting at a desk, in front of a computer, focused on code, with limited human interaction... so they pursue majors in other fields.
I really kind of regret majoring in computer science because of this.
> capable people who do NOT want to spend hours every day sitting at a desk, in front of a computer, focused on code, with limited human interaction.

I've been asked by various close acquaintances and friends if they should try to get into IT (mostly as programmers), I've told them they should really be passionate about the field, not think only about the money, otherwise they would have a really bad time, psychologically speaking.

That is bullshit myth, frankly. It is no different then any other white collar job - economist spend spend hours every day sitting at a desk, in front of a computer, focused on numbers. Moreover, many if not most positions require quite a lot of communication. Even more if you work in agile team - you have to be serious extrovert to be happy in that situation. Most coding only positions are junior positions - anything above that (plus few rare positions) and you are have to fight to have enough time at a desk.

If this is the reason people avoid this job, maybe we should stop lying to them about what the work actually is.

Agree that all signs are there's a glut. Note that we're down to somebody at age 30 starting to notice age discrimination. With a career longevity approaching that of an NFL player or MMA fighter, is it really a good choice any more?
It's a few problems, but I disagree with some of the author's points. One issue it's posing the dot-com crash as a similar peak as what we are currently in. Eric Roberts of Stanford wrote an opinion article on what he saw was the ebb and flow of CS [1]. We are in another peak, undoubtedly, but I'd argue this peak mirrors 1984s popularity.

Roberts suggests the issue with the 80s "crash" was an inability to meet demand. As such, universities began placing restrictions on incoming students. If it's damn near impossible to enroll in THIS major, I'll just go elsewhere. While this next link is primarily for women, you can see every other STEM/Law/Med domains grew, while CS did not [2]. Likewise, university "retraining" was no standardized, so you may not have gotten the training you needed. Fast forward to today, we say the university system is broken, but the only competitor right now are the recruitment boot camp or the "learn it yourself" model. Regardless of your opinion of any of the three, it is clear they are attempting to be products in "handling the demand".

To counter "anti-nerd culture" and "immigrants" as bullet points - seriously? That's stuff we complained about 20 years ago (in the 2000's). Nerd culture is mainstream now that we've got billionaires everywhere and outsourcing didn't take "all the jerbs". This points sound more like parroting the concerns of the past.

[1] https://cs.stanford.edu/people/eroberts/CSCapacity/ [2] http://www.npr.org/sections/money/2014/10/21/357629765/when-...

What interesting things are going on in the field of CS from a scientific POV?
I'm not a computer scientist, but I'd say Quantum Computing, Crypto Currencies, Compression algorithms like HEVC, new programming paradigms as can be seen in Escher, the comeback of functional programming and microkernels seem interesting to me.
The research in CS is very active. Take a look at arXiv/cs to get a sense:

https://arxiv.org/list/cs/recent

I would say Machine Learning is particularly "hot" right now, with the anecdotal evidence being that many ML conferences (like NIPS, ICML, CVPR, etc) have been experiencing better than linear growth.

From my experience, the main reason for the low number of CS majors is simple: most students don't know what Computer Science is. At the university where I teach, half of the CS majors arrived on campus not knowing they would major in Computer Science simply because they didn't know what CS was. Only after taking a first year engineering sequence where they sample different aspects of multiple engineering disciplines do many of these students realize CS is an attractive and interesting field to study.

Moreover, I have taught a variety of introductory to computing courses to non-CS majors (ie. humanities and business) and what I've found is that a number of students (particularly women) really enjoy the computing classes and say they wish they had majored or minored in CS, but they didn't know what it was until they took the class. A few actually do switch into a computing related major afterwards, though not necessarily CS.

This may seem counter-intuitive, but while many people know how to use computers and technology, many people don't actually understand how it works. Because of this, Computer Science is a mystery to most people and so they don't consider it. This is in part why I am excited about the CS4All movement at the K-12 level... simply exposing Computer Science or computational thinking will go a long way in attracting more people to the major.

Alternatively, another reason why you don't necessarily see a growth in CS majors is because programming is not restricted to Computer Science. Most science and engineering disciplines involve programming now and many curriculums will have programming courses. This is even true in humanities (ie. digital humanities) and business (ie. data analytics) where coding is becoming a desirable skill. If you had a deep interest in say economics and needed to develop some programming skills to simulate models or evaluate data, you can gain these skills and knowledge outside of the CS major and I think that is a good thing.

With this in mind, I think a lot of CS departments will need to consider the shift from being a "destination" major to a "service" major where a significant portion of the teaching load is to non-CS majors who want a minimal core, but not all of CS. A flat growth in CS majors does not necessarily mean a lack of computing or programming education in general.

Finally, I would say that in my department, we have seen record growth in the past few years (from 50 a few years ago to 150) and that is caused a number of problems. This is not restricted to our university as noted in "Generation CS" from CRA:

http://cra.org/data/generation-cs/

So for us, the challenge for us is not growing the number of majors but how to manage the surge in a sustainable manner.

The bitter part of wishing you had majored in CS is that most of the times you cannot and you have to live with it. Being able to work with computers is both a skill and a burden. For example I was the classic computer-whiz all my life. Due to a twist of faith, I found myself in law school and I'm graduating next year.

In my freetime I still try to cargo-cult learn CS. I tried a lot to give up computers, but I couldn't.

Maybe a CS4ALL movement can filter out kids who have a mind for CS and inform their parents about it. I suffered a lot from the notion of not being able to study CS. Especially the first couple of years of college were the worst.

On the other hand, as you have experienced with the record growth, most of the young people get into CS degrees. Maybe CS is more a passion among teens like music/painting. It may as well be a trend of our century. In the 19-20th century young men generally wanted to study painting, now we want to study CS. Because computers promise creativity, autonomy and inherently give us an identity, because we think we're "gifted".