Tech Leaders Encourage Teaching Schoolkids How To Code 265
rtoz writes "Code.org has released infographics and a video to explain why students should be taught to code in school. They've gathered support from leaders in politics and the tech industry. Mark Zuckerberg says, 'Our policy at Facebook is literally to hire as many talented engineers as we can find. There just aren't enough people who are trained and have these skills today.' Former U.S. President Bill Clinton adds, 'At a time when people are saying, "I want a good job – I got out of college and I couldn't find one," every single year in America, there is a standing demand for 120,000 people who are training in computer science.' Bill Gates said, 'Learning to write programs stretches your mind, and helps you think better, creates a way of thinking about things that I think is helpful in all domains.' Google's Eric Schmidt is looking beyond first-world countries: 'For most people on Earth, the digital revolution hasn't even started yet. Within the next 10 years, all that will change. Let's get the whole world coding!'"
Part of the standing demand for computer science jobs may be influenced by bad policies from tech companies, like Yahoo's ban on working from home.
Cheap labor trained with tax dollars (Score:5, Insightful)
More "we want cheap labor trained with tax dollars" whining from industry. If there were a shortage of programmers, salaries would be going up. They're not.
Bullshit (Score:5, Insightful)
Zuckerberg says, 'Our policy at Facebook is literally to hire as many talented engineers as we can find. There just aren't enough people who are trained and have these skills today.' Former U.S. President Bill Clinton adds, 'At a time when people are saying, "I want a good job – I got out of college and I couldn't find one," every single year in America, there is a standing demand for 120,000 people who are training in computer science.'
Yeah, and those "jobs" wouldn't just be a fiction to get more H-1B Visas, now would they? Of course not, they're all legit, of course.
Re:Cheap labor trained with tax dollars (Score:5, Insightful)
Bullshit (Score:5, Insightful)
I'm calling bullshit. I work with plenty of very good developers, and none of them has been contacted by Facebook. If he really wanted to meet them, all he'd need to do is offer a yearly salary of $200k. He's apparently unwilling to do that.
my whole class was taught to program in high schoo (Score:5, Insightful)
My whole class in high school was taught how to program. The dirty little secret though is genetics play a key role and only a couple of us had any aptitude for it. Most people can be taught to program in some fashion only a few however will every be any good at it.
Critical thinking before coding (Score:5, Insightful)
Critical thinking seems to me to be the missing education; teach people to think and when they get to coding it will be easy.
Re:my whole class was taught to program in high sc (Score:4, Insightful)
And... there you have it. Every kindergarden class has toy xylophones and drums. Most of them don't have a Mozart. A few of them have future part-time musicians. The rest just make noise.
Programming, not coding (Score:4, Insightful)
Don't teach the kids how to code. Teach them how to program. That means teaching them to think about the problem, determine requirements, clarify requirements (I'm working on one now where it's taking literally days to tease out of the person exactly what they actually want, it's repetitions of my restating what he said and him going "That sounds right, except for..." and then outlining a new thing the software has to do that he hadn't mentioned before), evaluate approaches and settle on a basic design and outline for the software, and finally document the requirements and design. And then once the code's written it has to be tested and debugged, which is another skill set entirely. Plus, while coding you have to think about what tools are available in the language, what libraries are out there, and how they integrate with your code. Often that affects the design of the software, and you need to understand that and learn how to think ahead during the design stage so your design works with the tools you'll need to use while coding.
Actual coding is the smallest part of the job. Critical thinking, analytical skills, general problem-solving, research, all that is far more important to the job than merely knowing how to crank out code.
Ask any writer. They'll tell you that the actual physical act of typing out a book is the easy part, it's just time-consuming. The hard parts are all the research and working out the actual story before you sit down to start typing.
Re:Cheap labor trained with tax dollars (Score:5, Insightful)
There's PLENTY of job security in programming (and all tech jobs) and salaries HAVE been going up.
You're just living in the wrong place.
America is not a country that has job security. Go to Canada, Australia, New Zealand, anywhere in Europe, and enjoy plenty of holidays, great pay and great job security.
Re:Cheap labor trained with tax dollars (Score:0, Insightful)
Re:Cheap labor trained with tax dollars (Score:4, Insightful)
I think the biggest change is that people in many fields will be using programming as a tool in their non-programming job. This is already the case, but it is largely informal. Computers as a job tool for everyone are going to move far beyond the office suite, and kids who don't know how to program are going to be less able to compete and contribute in general.
Re:my whole class was taught to program in high sc (Score:5, Insightful)
Most people can be taught to program in some fashion only a few however will every be any good at it.
What's your point? If you aren't good enough to be a professional at something, you should never try it or even be exposed to it? Let's shut down all the Little League games -- "the dirty little secret though is genetics play a key role and only a couple of kids on any team (at most) have any aptitude for it. Most people can be taught to hit a ball in some fashion only a few however will ever be any good at it."
If kids are never encouraged to try something out, they'll never figure out what they might actually be good at. And many activities teach useful skills regardless of whether the participants are "any good at it" -- baseball might teach coordination, teamwork, whatever, programming might teach critical thinking about problems, etc.
I fail to see what deserves "+5 insightful" for noting that some people are better at a particular skill than others, or might have a particular aptitude for it... or -- heavens! -- might actually just work hard at it because they're interested rather than being genetically predisposed to be a good programmer.
(Whatever the hell that means -- I don't think computers have been around long enough to put evolutionary pressure on humans to develop a gene for "good coding." And if you're making a claim about how you're required to have a particular IQ or other intelligence marker we claim a genetic basis for, well, I know a lot of people who are incredibly intelligent but terrible at programming, which is a particular skill that seems to require all sorts of personality and intelligence traits to do well... if you've found a genetic marker for "good coding skills," please let us know!)
Anyhow, as the Gates quote in the summary says, good programming does require critical thinking skills and logical thinking. We used to do things like this in schools when we required kids to do proofs in geometry classes, for example. How many kids did we ever expect to become theoretical mathematicians?? A much smaller number than we think might end up doing some coding some day.
Good thinking skills can be transferable. And "genetics" doesn't determine everything about your life.
That's nothing! (Score:5, Insightful)
Pfft. Never mind 15 decimal places, I have memorized the entire 26 letter alphabet!
Re:Cheap labor trained with tax dollars (Score:4, Insightful)
It's not a question of whether they do this. It's a question of whether then can do this quickly and easily. People who can are much more likely to be good programmers. People who succeed in music above a very basic level are also likely to be good programmers because of the need for memorization (and because they use both the analytical and creative parts of their brain heavily, much like programmers do).
What an amazing coincidence. Engineering and pre-med programs also have high dropout rates, in part because not everyone has those innate abilities.
Unless, of course, you mean building skyscrapers, giving people their medicine, or driving/repairing automobiles, in which case, those are all examples of remarkably simple tasks that just happen to tangentially involve complex interrelated systems. You don't have to master the complexity of an automobile to use it any more than you have to master the complexity of writing software to use an iPhone. Other people design the systems to hide the complexity so that you don't have to understand it. And that's a big part of what makes good programming hard.
More to the point, those tasks are easily compartmentalized. You have to be able to understand a small part of how something works, but you do not have to have a big-picture view at the same time. When you build a bridge or a building, you have parts that are numbered, that were cut and measured, that you put into place. You need to know where they go. You need to know how to fasten them in place. You do not need to understand that the beam is arched slightly so that it will end up being flat after the concrete weighs it down. (You do, however, need to know which side goes up.) You do not need to have a complete understanding of why particular beams are thicker than others. You certainly do not need to understand precisely how the length of the beams and other elements were tweaked to avoid resonance problems (Tacoma Narrows, anyone?) because someone already figured out those details and provided someone else with the manufacturing specs to produce the beam that you're hanging.
Programming, by contrast, cannot easily be compartmentalized. You can't write a function in isolation and hope it fits in with the rest of the code, because there's nobody handing you a detailed specification for exactly how that code should be written (usually). You have to figure it out for yourself. You have to be simultaneously creative and logical. You have to simultaneously understand something very large while understanding how something very small fits in with it. And when you get people who do not have that ability writing code, you get colossal train wrecks. :-)
Yes, in a few organizations, you do have division of labor sufficient to turn programming into code monkey work, but that isn't all that common, and tends to be indicative of a bloated bureaucracy, usually involving government contracts. For everyone else, programming is like designing the skyscraper while you're building it, and living on the ground floor wh