Computer science is the key to America’s skills crisis
techcrunch.com
techcrunch.com
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.
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?
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.
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"
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.
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
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.
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.
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.
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
In many places it still a far better career decision, to train to become an accountant, lawyer, sales, etc then to become a developer.
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 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.
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.
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.
Self-education is self-fed, intrinsic motivation.
There is an arguably significant difference in the quality of the outcomes.
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.
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.
Solid statistics.
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.
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.
"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.
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?
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.
It is actually very hard to find a job in Computer Science, as in any other research discipline.
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.
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.
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.