Apple CEO Tim Cook: I'd Require All Children To Start Coding In 4th Grade (thehill.com)
This week Apple CEO Tim Cook argued at Startup Fest Europe that coding should be a 'second language' taught to all children. theodp shares two quotes from a YouTube video. "We fundamentally believe that coding is a language and that just like other languages are required in school, coding should be required in school," Cook stated. "I do think coding is as important-- if not more important -- as the second language that most people learn in today's world," Cook later added... "I would go in and make coding a requirement starting at the fourth or fifth grade, and I would build on that year after year after year...I think we're doing our kids a disservice if we're not teaching them and introducing them in that way."
Meanwhile, The Hill reported this week that The Computer Science Education Coalition -- which includes Microsoft, Amazon, Google, Facebook, and dozens of other companies -- hired a fourth "advocacy firm" that specializes in "mobilizing groups of people to influence outcomes...to help convince policymakers to provide money to computer science education for grades K-12," and they're seeking an initial investment of $250 million. I'd be curious to hear what Slashdot readers think about government funding of grade school coding classes.
Meanwhile, The Hill reported this week that The Computer Science Education Coalition -- which includes Microsoft, Amazon, Google, Facebook, and dozens of other companies -- hired a fourth "advocacy firm" that specializes in "mobilizing groups of people to influence outcomes...to help convince policymakers to provide money to computer science education for grades K-12," and they're seeking an initial investment of $250 million. I'd be curious to hear what Slashdot readers think about government funding of grade school coding classes.
I'd actually argue that we need a hell of a lot more humanities in our schools... learning about how to treat each other, what makes a good life, how to find purpose, learning from history, how to work together to create a society that works for everyone (not just an efficient, technocratic one where everyone who matters is staring at their laptop, and everyone else is condemned to minimum-wage servitude).
Tech-inclined kids will find coding on their own -- I was writing QBASIC in 4th grade -- but it seems kids these days know far too little about history, government, and sometimes even basic civility, compared to the past.
Then again, maybe I'm just getting old and crochety -- and old people have been complaining about kids for millenia.
How about getting rid of H1B's with that
Troubleshooting. Everyone uses it at some point eventually. It's a pure and yet practical form of critical thinking. Teaching coding? Most people won't get much out of it I think.
I don't think it's so much about cheap labour, probably more about getting people to spend more time on computers and the internet. More consumers for their products and services among the coming generations.
""I would go in and make coding a requirement starting at the fourth or fifth grade"
Not this "everybody gotta learn to code" bullshit again....
Guess what? Jasper Johns thinks that everybody ought to learn to paint. Magic Johnson thinks everyone should learn to play basketball.
They're ALL wrong.
Just cruising through this digital world at 33 1/3 rpm...
If I could get all kids to actually, well, read in the fourth grade under our current system I'd be happy. Let's get the essentials fixed before we start adding extravagances.
Or sew.
When I went to junior high school in the 70s, everyone (boys) had to take a round of industrial arts. Which included wood shop, metal shop, drafting, electric/electronic shop, print shop, etc. I think girls got home ec. Then in high school it was optional, and included auto shop and home construction. Pretty much every jr. high school and high school had all this stuff on the premises of every school in the system. (Los Angeles, FWIW. I believe it has all been dismantled now, thanks to Prop 13.)
Schools now don't teach kids any of that stuff unless the kids decide to go to the voc tech high school. But where I live now, choosing the voc tech is an all or nothing deal, it's too far away to go to, if, e.g., you just wanted to take auto shop for a semester.
Elementary schools shouldn't have an agenda. Software is so pervasive in our society that people who want to write software will gravitate towards it. I remember my teacher getting irritated with me when I realized that I could make the Logo turtle do really arbitrary shit. No one taught me how to do that, I just intuitively understood it.
We don't need more programmers, we need more natural born programmers. People that see the logic in programming as an art medium. People that derive genuine satisfaction from doing very interesting but very simple things with software.
The vast majority of humans I've met can not and will not ever be good at writing software. Introducing children to writing software is fine. I was introduced to music at that age and I know I could never be a good musician. I don't regret those music classes but, holy shit am I glad that they weren't vital to my progression through school. Making programming mandatory, or giving it such a high pedestal that people think they *need* to program is insanely harmful to our society. Write music, fiddle with cars, do what makes you happy. If you enjoy writing software then you should do that. You'll know if you enjoy it way before some unqualified teacher forces you to do it.
He may be a transport, scheduling, and efficiency expert, but he's no Jobs.
Coding isn't another language. It requires a mindset. The vast majority of people don't want to code and will never have to code.
I consider coding to require the same skills as a novelist. An author has to build a world, keep the entire construct in his mind, make changes, and understand how those changes affect things before and after.
Apple is plowing forward due to Jobs' work and Apple under Cook has yet to release anything insanely great.
At what age did Tim Cook learn to program? Probably wasn't in 4th grade and yet, he seems to be pretty successful. Instead of teaching kids to program, how about teaching them how to be creative thinkers. Teach them to be problem solvers. Then, if they do decide to program, they will have something to program.
This is just a different spin on the 'not enough qualified Americans for us to hire' chicanery that tech companies love to use. They want us to believe that they are not hiring H1-Bs because they can force them to do twice the work for half the pay and be contractually bound to them.
Cook, Zuckerberg, and the rest of the bigwigs are all in the tank for Clinton this year. If she gets in you can expect the tech industry to follow the same path as the textile industry out the door. On the bright side everybody will be able to use whichever bathroom they choose.
Cook also doesn't have any kids. For him it is always "other people's kids."
He seems a lot like Balmer to me. Milking their existing product lines and introducing new products that just follow the competition.
No, it's about cheap labor. All kids are demanding access to electronics, they don't need coding classes for that.
It seems to me that the CEO of a company that's dodging taxes shouldn't quibble over how our taxes are spent.
Anons need not reply. Questions end with a question mark.
That's sarcasm, right? I hope so. A shocking percentage of computer programmers are musicians (at least 3x as many as in the general population), and this correlation is not a coincidence. Music in the schools teaches skills that give students a leg up in math classes later, and also teaches them skills that make it easier for them to understand how to write code later.
And language skills are also important to learning CS. That's where we learn the basic concepts of grammar that we later build upon when learning about how compilers work.
And history teaches us to avoid making the same stupid mistakes time and time again, and thus greatly increases our chances of still being around to write software in a hundred years.
All of these skills are of vital importance to computer science. Learning science without learning the arts will get you a generation of people who can't program their way out of a paper bag, because they've never learned spatial skills by studying art and perspective, or learned how to create large works of art from a million tiny brush strokes; they've never learned how to see a symphony as a collection of tiny notes, each one equally important; they've never learned to simultaneously use both sides of their brain to precisely count the duration of notes while emotionally feeling how to express them dynamically; and so on.
So no, reducing humanities education is not the solution to the problem. It is the problem.
Check out my sci-fi/humor trilogy at PatriotsBooks.
And this sort of excuse is why so few people understand how computers work. FWIW, I started learning to write BASIC code using the "Teach Yourself BASIC" series of books and tapes in first grade. The only thing hard about it was that I didn't understand multiplication or division, so I didn't really understand those parts of the exercises, but everything else was straightforward.
In about third or fourth grade, I went to a music education conference with my parents, and went to a "Computers in Music" lecture, and they couldn't get their software to work. And suddenly, there I was, this little kid raising my hand and walking up to these college students and teachers to point out their typo.
By fifth grade, I was writing Apple II programs for things like quizzing people on arbitrary subjects. I disassembled part of a computer in class just to point out the various electronic components inside it. And so on.
By the time I took algebra in eighth grade, I was already teaching BASIC programming to other students. The concept of variables was second nature, so algebra came pretty easily. It was basically just a more advanced form of simplifying boolean expressions, just with numbers instead of booleans, and math instead of logical operators. And instead of assigning something to a variable and getting a result based on known values, you were figuring out what values those variables could plausibly have.
So no, in my experience, learning to program makes learning math easier, not the other way around. Math has very limited value when it comes to learning how to write software. It certainly helps you understand how to do math with a computer, but that's a tautology. So you are technically correct that you can't learn how to do math in spreadsheets without knowing math. By that same standard, clearly you can't learn how to drive a car until you learn how to adjust the fuel-air mixture in a carburetor, because race car drivers have to know how to do that....
It does not follow.
Check out my sci-fi/humor trilogy at PatriotsBooks.
How do You know that programmers who are also musicians are like that because music enables them to understand math? My bet is on any of the logical fallacies, especially post hoc (many technical schools have music because it is the easiest thing to teach technical people, but there is no causal effect between being capable to play and programming), joint effect (both math/programming and playing music requires a calm, analytical mind that is capable to withstand punishing amount of self-training), or even wrong direction (it is people who program who later become musicians, and not musicians who later become programmers).
As for music teaching You skills that give You a leg up in math or make it easier to write code -- I'd like a citation for that, because that smells like absolute bullshit.
As for grammar, I really don't know any, in any of the languages that I speak -- even my mother tongue. And the same is true for most of native speakers of any language -- do a test and ask a person who speaks a language as a native to codify it for You in nice and rigid forms of grammars. Let's not forget, that human grammar is rather different from mathematical and computer grammars -- more rigid and often too formal for most people to "speak", or even comprehend.
The only part of this hilarious rant of Yours that I partially agree with is the history part, but that is of limited effect as well. Technology makes it rather hard, as it changes the playing field very rapidly. To give You an example: designing a new programming language today has the same problems as it did 40 years ago -- so that is the part that we can learn from. But it also has new and more exciting problems right now -- extensive libraries, debugger and syntax support for major IDEs and so on are now much more of an issue for a language to live or die.
As for these things being vital to computer science -- You sound like a failed painter or a musician that learned to code to do anything useful in Your life. Yes, it is an ad personam, but that part really sounds like You provide a forced justification that something You had personally enjoyed also had a deep effect on programming -- that's a choice-supportive bias. Please, resist writing a sequential, causal narrative into Your life -- Your life was definitely much greater than that. My bet is that You feel that code works like music, because it does -- to You. You have an affinity for both, and had learned to operate abstractions found in music, and then partially reused some of these abstractions in programming later on. But the same thing could have happened to You by learning architecture, furniture design, bookmaking, medicine or gardening -- any abstraction learnned in any of these fields, or any indeed possible field, could potentially be reused in programming.
Reducing humanities education is a solution. I would really love not to be tortured by classical literature, and having to paint or being forced to play a fucking flute. Not a single part of that was useful in my life, and I heavily doubt that it will. We really don't need as much humanities as people who wish to become musicians later on. And they don't need as much programming. How about we recognize talent as early as possible, and then help people recognize it -- and then, if they want it, help them develop it on their own. Stop education, it's a cancer of the soul.
Even if we had computing classes for 4th graders. It would not help. You cannot teach everybody coding. The kids will hate it. It could be even counter productive.
In the past they lured more people into CS courses at university. Most of these extra people drop out or switch to something else. CS is not for everyone. Like engineering and the sciences you need to have a specific mindset for it. If anything would help then it would be training those skills. But I doubt it would significantly increase the output of coders.
BTW in future we will need less coders, as more stuff will be generated automatically.
I would say that schools should make it accessible, but not require it. When I went through elementary school in the 80s, there was a computer lab. We were taken to it and said here's some edutainment games, and if you boot it without a disk you'll get this weird prompt. Also, here's a place where you can make a turtle draw some things. And there's some books over there. Do with these resources whatever you feel like, there is no grading or anything (because there was no real curriculum, just an abstract sense that these computer things were important and people needed to get comfortable with them).
So some folks would be learning about geography, chemistry, whatever based on the edutainment games they picked, and those so inclined could see what they could make the computer do in a more open ended way. As a consequence, the only people who learned coding were those with an inherent passion and inclination for the right way of thinking (well, back then a software developer wasn't seen as a super-profitable career to be pursued over most any other job either, and in fact there was a stigma associated with that sort of behavior so you got only the folks who were *really* interested)
Having more guidance available would have been great as elective type stuff, but at the end of the day, people have to recognize that coding is a vocational sort of thing and should not be a requirement any more than an auto mechanic course should be required for everyone. The result of more and more *forced* coding exposure is a dilution of the talent pool. I would say that the state of software development in general is in a pretty sorry state, but largely because of the fact the career is seen as an accessible cash cow, drawing a lot of people who are not really inclined to do the work to do it anyway. Adding more people indiscriminately to the equation only makes things worse.
XML is like violence. If it doesn't solve the problem, use more.
You totally missed my point. I did not say or imply people should not be taught math in school or basic reasoning. Quite the contrary. Kids should learn multiple languages, calculus, critical thinking. Their social development is also very important. Much more important than compulsory coding classes for 4th graders.
Furthermore, we already had programs to engage people with CS in high school and a lot of promises so that parents and kids think it is a great idea to study CS. Since then the number of students increased, but the percentage of people who are able complete a bachelor decreased. Even though the courses are less complicated than they were. This has nothing to do with high horses. It is just an observation. We are not equal in our abilities. Some are better in one thing than in another. There are people who are brilliant and gifted and others are not so gifted. We are very different, but we are all humans and I do not define the worthiness of someone based on his or her abilities. That would be chauvinistic.
I write automatic code generators professionally. It keeps me quite busy. Sure, if you put a LOC metric on the output from the generator (and, especially if you count lines every time you run an iteration), it's a beast, cranking out LOC 10 to 1000x faster than a human coder. But, in terms of solving problems, automatic code generators are still solving problems at a human scale pace.
Describe a problem, implement a solution, test the solution, discover problems in the solution (or, as often, in the original problem description), describe those problems, rinse, lather, repeat. Doesn't matter if there are "automatic code generators" in the loop, compilers have been automatically generating code since the 1960s, that hasn't decreased the available programming work, just the level of detail that people work at.
Describe a problem
Understanding the problem in order to describe it is the single hardest part of programming. 80% of programmers don't understand problems, they throw code at a problem and see if the customer thinks it solves the issue. Most programmers rarely understand how their own code works. I question how good automatic code generators can become because human language is a horrible language to describe problems. 7% of communications is verbal, 60% of knowledge cannot be described with human language. I'm not math wiz, but unless a computer can learn how to interpret body language and tone and read between the lines, the best someone can communicate with a computer via natural language is about 7% * 60% = 4.2%.
Unless humans magically become better at communication, automatic code generation is dead on arrival for all but the simplest of tasks.