Hacker News new | past | comments | ask | show | jobs | submit login
Computer science is the key to America’s skills crisis (techcrunch.com)
44 points by dineshp2 on March 4, 2016 | hide | past | favorite | 62 comments

And the article talks about teaching coding. I'm tired of seeing that. We need to teach kids to think, to question, to be creative problem solvers. If we do, some of those kids will end up in CS eventually, but all will do well.

I'm tired of reading "we need more coders" articles that read just about the same as "We need more kids to study diesel mechanics at community college so that we can keep the trucks rolling to WalMart."

Standardized testing is killing our kids brains. Instead, they should be required to ask questions, not give stock answers.

I think there is a trend in this direction. The Art of Problem Solving series is a good example.

As I understand it, the Every Child Succeeds Act gives more control to the states, but still seems to optimize for high test scores. That may help more students meet the profile for which college admissions officers are looking, but it may not help them be successful in college or life. For example, the ability to successfully apply formulas would help students perform better on a basic calculus test. However, this ability is all but useless outside of that test.

I think the root of the problem is our reliance on credentials and in turn test scores. As long as those are important, they will be selected for over actual understanding.

While I don't have a solution, I will reference Paul Graham's essay on "After Credentials." He suggests that small companies capable of relying on performance rather than credentials is the solution. The wealth of articles on HN complaining about interview processes indicate this is less than a complete solution.

I'm interested in the effect a basic income would have on higher education. Would eliminating some of the economic pressure result in a better university system? Might people go to university because they were interested in learning something rather than following a prescribed set of classes required to obtain a degree?

"Standardized testing is killing our kids brains".

Some think otherwise : "Standardized admissions tests are valid predictors of many aspects of student success across academic and applied fields." - http://science.sciencemag.org/content/315/5815/1080 Standardized Tests Predict Graduate Students' Success.

Is there any evidence that it is "killing kids' brains" ?

With all the variability in education quality, we need a measure of potential and smarts.

Observing high school kids that take part in project based learning (outside of the classroom) and noting how fast they develop deeper skills, critical thinking and problem solving. Small sample size but before and after observations are mostly very positive. (FIRST robotics)

So maybe not killing kids brains but maybe not developing them to the peak potential.

You might like to look at Olin College. They are trying to reinvent Engineering education. Yes they are only selecting the very best for their project based learning program. But they are working with other schools to see if their methods translate into benefits for non-Engr STEM and college students of average abilities.


"Olin College Number 8 on Forbes.com List of Top 25 Colleges Ranked by SAT Scores"

That it's a predictor makes it a measurement tool, not a teaching tool.

Are those really mutually exclusive? I tend to think not, even given the finite amount of classroom time available.

In pratice, yes. It takes extraordinary skills to combine the two in teaching. A skill the average teacher simply does not have.

I agree. We need more of everything. WE can't just tell people just go to one way or be one way (even myself I started to get interested with computers from a young age). We need more people in every field like how you referred to us needing more mechanics as a example . We need to rethink how all these industries need to be revamped in a way so they can actaully be more innovative.

Coding is the finger, math is the moon. Any politician advertising a finger gets no love.

Heard this one before.

Studying comp sci in the mid to late 90s, my classes were full of people who didn't have a passion for programming but knew the jobs paid well, presumably because demand outstripped supply.

What followed was a seeming glut of applicants for unexciting "low-end" jobs - writing Java at insurance companies, for example - then they all disappeared. And here we are today.

Am I remembering this wrong? This was my anecdotal experience from far outside of SV.

Current senior in Comp Sci here - I'd say a good portion of my classmates just want a cozy job doing programming for some enterprise company. They know CS degree pays well, like an engineering degree. For myself, I also just want a cool, less stressful corporate/enterprise job. Maybe in 5 years I can see myself doing some startup or SaaS business or something.

Then again, I go to a state school and a lot of my classmates (if not all) are not super into programming scene(like maintaining a GitHub, doing side projects out of school, etc)

edits: clarity

I would not describe corporate/enterprise jobs as less stressful, based on my experiences the opposite is true. I've found the best niche is mid-sized companies where you have a better chance of finding someplace where you can actually contribute in a meaningful way, get paid decently and not have to spend more time ass kissing than working.

"The United States faces a global competitiveness crisis that, if not addressed, will put our nation at a strategic disadvantage for decades to come. In just a few years, there will be 1.8 million jobs unfilled in our nation"

would love to see the data behind this as it seems unlikely to me. what i see is many american companies offshoring large swaths of their software development efforts to foreign satellite offices, or outright replacing in-house IT development with SaaS solutions. from my perspective, i have a hard time imagining some confluence of events resulting in "1.8 million jobs unfilled" here in the US any time soon.

Well, a defense contractor at the location I work is complaining that they can't fill jobs and can't keep them filled.

The problem is that they won't pay more than 55k for programmers or engineers, but the popular business explanation is that it's a skills shortage - there just aren't enough skilled applicants!

No, there's just not enough skilled applicants willing to work for bottom-barrel wages. To be fair, this is mostly being driven by the government in the defense contracting world.

I agree. Even if I live in a rural area, I expect a much more higher wage. What if I want to move to another location in a few years? I should be compensated fairly, not accordingly local average wage. As a matter of fact, when I visited West Virgina and lived there for two months, I found cost of living in a low-spend life is pretty much the same as in NYC. I have to drive, I have to buy grocery, I have to entertain myself occasionally, taking some wilderness trip here and there. While a house in WV is generally 10x cheaper, everything else pretty much the same.

Is that one of those jobs that requires security clearance, etc? Because that's one of the few cases where I could see there being a shortage.

Yes, it probably does require a clearance. This limits the applicant pool even further. To overcome this, the companies need to pay higher salaries; it's quite simple. The fact that they're not willing to pay commensurately higher salaries to attract a narrower labor pool shows there's something seriously wrong. And unlike places like Microsoft or Disney, they can't just offshore their work or bring in a bunch of H1-Bs, because of the requirement for security clearances.

What location is this? So this pool of skilled applicants who won't work for 55K, what jobs are they doing instead? Since most explanations of your sort claim that a large pool of skilled IT workers will materialize if the pay is increased, let's say the pay is increased to 75K which job sectors will people leave and join IT?

> Since most explanations of your sort claim that a large pool of skilled IT workers will materialize if the pay is increased, let's say the pay is increased to 75K which job sectors will people leave and join IT?

We have no trouble filling positions at $70k. Like, literally, we have never had an open position for longer than 60 days.

The problem is people keep complaining they can't fill positions and pay $15-20k below market rate. Why, yes, people are not going to take a 20% paycut to work for you.

It will work the same way that supply and demand works for everything.

1. it encourages a larger supply because more people will be incentivized to work in the field

2. it encourages more efficient use of the workers, e.g. using more off-the-shelf software instead of custom solutions.

3. it discourages less valuable uses of the workers, freeing them up to do more valuable work

Well other professions with become less attractive in comparison and skilled people will train to be developers.

In many places it still a far better career decision, to train to become an accountant, lawyer, sales, etc then to become a developer.

Unless this is for an entry-level position at one of the big contractors, I've never heard of a salary this low in the defense world. The defense world is the only place you'll make a six figure salary writing mediocre Java.

I was doing something wrong, then, because after 10 years I wasn't close to six figures and I was writing difficult signal processing code in C.

I see a lot of people complaining "we don't have enough programmers", while not adjusting themselves to account for the lack of supply they freely admit exists. They've tried exploiting people in places with worse economies, but anyone who's worked with this model knows, it doesn't produce quality products.

The overhead, and the fact that almost everyone who's any good just winds up another savvy, expensive programmer make it a losing game for software of any reasonable complexity.

I know plenty of developers who would be happy to take one the jobs people complain about going unfilled(both in teaching or just elsewhere in CS) if _only_ someone was willing to pay and treat them like adult human beings. Good programmers hate to be managed and know what they are worth, there's no getting around that.

I agree that there is a shortage of good programmers, "good help is hard to find" is not a new phrase. The obvious solution if you want or need one is to open your wallet and tone down your bullshit. You can woo the young ones with beer in the fridge and other nonsense, but at the end of the day, people with experience want to be paid and respected.

I've been freelancing/looking for work for a while now and working at consulting companies for quite some time before that. I consistently see the same problems.

- People want software (and therefore programmers) they can't afford.

- People refuse to believe experts tell them things they don't want to hear.

- Almost no one in management has read the mythical man month.

- People consistently prioritize cost over quality and wind up with neither.

- Gullible, superstitious morons gobble up any shortcut offered to avoid paying people properly or treating others like human beings.

I see it as a chicken vs egg problem. The reason only 1 in 10 schools offer programming classes is probably the same reason CS jobs go unfulfilled. There are not enough people with the required expertise. I'm not studying Computer Science so I can get a job teaching programming classes at a high school.

CS is a discipline best self-taught. I'm not sure better education will solve anything. It'll just produce more mediocre engineers.

I've never met a programmer who was any good that wasn't mostly self-educated. In order to be successful in the fluid world of development, one must always be learning, and the information is out there, for free, ripe for the picking. A good programmer is voracious, always wanting to know and understand more. People who wait around for a third party to educate them, on that third party's schedule appear to me as people who aren't passionate about whatever they are studying.

I understand the structure of formal education and socialization with like-minded people has real value (I would not be half the person I am today were it not for the UVM computer science student association) , but it's a "nice-to-have", the drive is the only requirement for a programmer you'd want to work with.

So true. Can you "teach" someone to be a world-class guitarist or songwriter?

No you cannot...it takes a deep ambitious drive and 1000's of hours of self-study that are laced with frustration and the feeling that you are making no progress whatsoever.

I have never taken a class that "educated" me about that particular process and how to overcome the internal resistances to it.

Perhaps not "world class"? But you can teach people to play guitar or write songs at a reasonably competent level.

I'm not so sure that self-teaching is the best way, I'm sure there are people that can be fantastic developers through education alone.

But it's very clear that the key to being a developer is some sort of "talent" for making sense of how a computer works, and after decades of research we still can't tell if a person has this talent or not.

It's an established fact that a large number of people who apply to CS studies just flunk out, because they lack this talent, and we don't know beforehand who is going to flunk out or not.

So stuffing education CS programmes full of people, assuming everyone is going to magically become a great developer is a complete pipe-dream of people who think about employees as interchangeable resources. Reality doesn't work that way.

The answer to mediocre engineers is less education? Doesn't follow.

Education is force-fed, extrinsic motivation.

Self-education is self-fed, intrinsic motivation.

There is an arguably significant difference in the quality of the outcomes.

Only crap education.

Good education gives you cool things explore, and experienced people to discuss them with.

If I was completely self-taught I would not have as strong algorithm skills, operating system implementation knowledge or compilers skills.

Part of self-teaching may include taking formal online coursework voluntarily. For example I'm currently halfway through https://www.coursera.org/learn/machine-learning

Survivorship bias? The best programmers are self-taught because learning on your own is a tougher filter, both in terms of success and as a measure of personal interest.

Meanwhile, the mediocre programmers who tried doing everything on their own are harder to count, either because they gave up or because they aren't notable/visible.

If this were the case companies like google Facebook etc. would be full of self taught programmer. In reality most of people there go to stanford, Harvard etc. aka the top schools. Just look at their executive bios or look through linkedin.

You're assuming that going to Stanford or Harvard is mutually exclusive with being a self-taught programmer. I'd guess that the most successful Stanford or Harvard CS grads are self-taught coders (and also have great soft skills).

Just look at their executive bios or look through linkedin.

Solid statistics.

The CS thought process is self-taught. I've seen old women write out mathematical 'if' statements on paper and then ask me how to implement in Excel. Understanding data arrays is inherit. Knowing that they are called data arrays is something else entirely.

I'd suggest that you don't need a CS degree to teach high-school level programming. I'd suspect many existing high school teachers, if given a tour of the involved concepts and resources, would be able to lead a group of students through a programming course based around existing freely available materials.

My reason being that IMHO exposure to what's possible with computers and access to machines with the tools for learning development is the only thing kids who are going to be decent programmers really need.

My gut tells me kids who want to program and have the means are already are doing it, and the only ones we need to worry about are those without access to a decent computer at home. Kids who have these benefits but are too dim to google "how to make a computer game" or look up some tutorials on youtube should probably pursue other careers.

I'm not entirely convinced that CS is such a distinct skill set that the programmer shortage is really explained by there just not being enough programmer-type-people. Surely there are millions of other people with the capacity of becoming programmers who could be incented to learn to program.

+1 insightful

> Third, we must ensure innovation in the classroom through the use of digital content and tools to provide individualized, data-based learning and improve educational outcomes.

Wow, that really doesn't sound like something that will help kids learn to code. How about instead of trying to get millions of dollars of multimedia content and one off coaching apps built, we just have kids build a web page for themselves in 1st grade?

People learn to code by coding things and researching what they need to build the thing they're working on.

I also don't think there's any kind of programmer shortage. There's just a misallocation of capital into the executive ranks. Start paying 1M a year for engineers and you'll have excellent people lined up for your roles.

Companies complain that there are not enough people, and use the 'shortage' as a reason to go H1b a la Disney, but they won't lift a finger to TRAIN people for what is needed because they say the employees will bolt - well STOP treating employees like crap and they'll stick around... The H1b fiasco just reduces wages and standard of living. sometimes there ARE legitimate reasons for unions...

"In just a few years, there will be 1.8 million jobs unfilled in our nation because we don’t have enough individuals trained with the necessary technical skills to fill them." Source?

"we must ensure innovation in the classroom through the use of digital content and tools to provide individualized, data-based learning and improve educational outcomes"

The author is asserting computer science is the solution, but gives ZERO evidence for if it's a workable or good solution.

There may be a problem. Computer science may be a solution.

The author establishes neither.

My opinion, is that it would be good if we could find a way to reduce the requirement for unskilled manual labor through computer science. Without more research, I wouldn't make it a call for action.

Does anyone have a better article on this issue?

Hahahaha. No. Currently, approximately ten in ten schools offer math education, and there isn't a glut of mathematicians. On the contrary, the majority of adults now hate math.

If you want to have more skilled American programmers, the solution is probably more along the lines of lead paint remediation, childhood nutrition, and anti-poverty measures. Create an environment where children can succeed at playing around with computers, math, and logic, and you'll go much further. "Programming class" at a typical school is not this environment.

There is no skills gap. That is just propaganda put out by tech companies so they can lobby for more H-1Bs. A great article on this: http://spectrum.ieee.org/at-work/education/the-stem-crisis-i...

Programming != Computer Science

It is actually very hard to find a job in Computer Science, as in any other research discipline.

Twenty years ago that was the subject you studied to get a job programming. Its probably still the name in many universities.

We need to resist the urge to turn education into job training. Computer science done wrong could do more harm than good.

And what happens when all these newly minted coders look for jobs at roughly the same time?

I disagree with the common belief that somehow coding is the path to a stable economic future.

History has shown time and time again that if a profession has no regulatory barriers to entry then corporations will eventually bid labor to the lowest value.

And that seems to be exactly what's going on here. Corporations are pressuring the state to basically pay for their human capital development.

Job trends follow capital market trends and capital markets are wildly irrational. For the last five years there's been an ideology among top management that suggests just hiring a bunch of developers is somehow going to create great products.

There has been little to no serious cost controls.

Right now management has overhired, there's simply not enough economically viable projects to keep all the massive development staffs busy. So there's a lot of work on projects that don't have a realistic shot at a financial return.

Eventually those projects are going to get cut.

Around the same time this is happening there will be a glut of newly minted junior developers jostling desperately for work to pay off their student loans.

I know this is highly contrarian, but it's just realistically how capitalism works. The good times always come to an end.

My own take is that this suffers the same problem as all the other "Teach everyone to code" initiatives.

Learning to be even a moderately good programmer requires the willingness to keep screwing around with an annoyingly stupid, complex machine for however long it takes to adjust your thought processes to match the challenges of computer programming. It's not enough to think logically. You have to be able to think logically where applicable while at the same time understanding that some stuff makes no sense -- either it's so complex that it feels nondeterministic, or you're faced with the social complexity of a ridiculous software stack, or even though you're working on a "simple" high-level problem you have to cut through nearly all the layers of abstraction to get a clear understanding of what the real problem is. And many real problems end up being twice as hard as you'd ever have imagined.

And I don't think our culture is doing a good job of raising people with the values to be willing to do that. If anything, childhood education teaches to spit out the "correct" answers and to follow the rules. This does not help develop the mental strength to be a good programmer.

I just wonder if they'll ever stop confusing CS with a software engineering?

I went back to school for my MS and saw many people who were there simply because this could get them a stable job. Their interest was virtually zero and they hated coding or understanding algorithms. They are all in software jobs now but in roles that support programmers and the tech industry

Why were you there? Going for a MS seems like a poor way to fulfill the desires of learning more about algorithms or being able to code more, for me I'd only consider it if it was a stepping stone to a better place in the corporate ladder or a stepping stone that's part of being paid to work on intensely interesting PhD material for a few years.

Not OP but I did my MS so I could teach at the college level.

Along the way, I did learn a lot that continues to benefit me now, 10 years later. I'd recommend an MS to anyone in the field who wants to learn more about the underpinnings of computer hardware or software (I did my MS with a Programming Languages emphasis) but who isn't necessarily sufficently self-motivated to just do the reading/open courseware without a supportive community of peers.

I was using code more and more in my chosen track. I decided to take the formal approach and learn it at school!

...what skill crisis? There isn't a skill crisis. There is a wage crisis.

I agree CS is essential, but as a 'key'? Maybe not. Let's go back to fundamentals - which means math & science.

Isn't a shortage of computer programmers really a symptom of some type of market signaling failure? Or at least the slowness of supply responding to demand?

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact