How Silicon Valley Pushed Coding Into American Classrooms
theodp writes: Noting that Apple CEO Tim Cook's advice for President Trump at last week's White House gathering of the Tech Titans was that "coding should be a requirement in every public school," the New York Times examines How Silicon Valley Pushed Coding Into American Classrooms (Warning: source may be paywalled). "The Apple chief's education mandate was just the latest tech company push for coding courses in schools," writes Natasha Singer. "But even without Mr. Trump's support, Silicon Valley is already advancing that agenda -- thanks largely to the marketing prowess of Code.org, an industry-backed nonprofit group." Singer continues: "In a few short years, Code.org has raised more than $60 million from Microsoft, Facebook, Google and Salesforce, along with individual tech executives and foundations. It has helped to persuade two dozen states to change their education policies and laws, Mr. Hadi Partovi, co-founder of Code.org, said, while creating free introductory coding lessons, called Hour of Code, which more than 100 million students worldwide have tried. Along the way, Code.org has emerged as a new prototype for Silicon Valley education reform: a social-media-savvy entity that pushes for education policy changes, develops curriculums, offers online coding lessons and trains teachers -- touching nearly every facet of the education supply chain. The rise of Code.org coincides with a larger tech-industry push to remake American primary and secondary schools with computers and learning apps, a market estimated to reach $21 billion by 2020." Singer also mentions Apple's work to spread computer science in schools. The company launched a free app last year called Swift Playgrounds to teach basic coding in Swift, as well as a yearlong curriculum for high schools and community colleges to teach app design in Swift.
I teach IT/Computing to 4-11-year-olds and code.org is a fantastic, free and invaluable resource. The activities I use (Course 1-3) build up familiarity with block-based coding, which can lead into Scratch for the old children and into secondary/high school. The kids really enjoy the activities and the activities have a nice steady learning curve so 90% of the time they can get on without me having to stop the whole class to explain something. So everyone learns at their own pace and the brighter ones can get further in and really be challenged without having to be held up to wait for others to catch up. Since it is so visual, it even caters to the poor readers and poor English language skills and gives them a rare lesson where they're on a par with the others.
Everything I've used so far has been free which is also a boon when my IT budget is basically zero thanks to cuts in school budget. Any time you see 'education' attached to software you usually have to pay through the nose for something that is buggy, teaching outdated skills or technology, and that invariably runs only on XP and has a critical install disc that someone has lost.
For the age range I'm looking at, it's teaching the right kind of problem solving skills that can be picked up when they move onto Python or whatever textual language their secondary school decides to use.
So despite whatever misgivings you have about the motives of Silicon Valley in providing this resource, it's hard to argue that as an educational resource it is anything less than excellent.
I remember in middle school Spanish was a requirement to graduate and go to high school. Yet most people that took that class left without knowing anything they didn't already know. And also most of the Latin American kids failed the class. Even when they could have full conversations in Spanish or a dialect of. But us fair skinned people could barely say "hi my name is Apple"
Do not fear.
Programming is still a skill set that requires the fitting mindset. You have to want to program to do it right. And nobody has any use for people doing it wrong. Not today, and even less so in the future when "it compiles, ship is" is no longer going to cut it due to competition.
How many people learn stuff today in school that they will never ever use again? I, for example, had to learn French and business administration. Never used either in a professional setting because neither is anything that interests me. I had to learn it because it was part of the curriculum and all it really did for me was to take away valuable time I could have used to learn something I actually need.
What will forcing pupils to learn "coding" really mean to the professional programming world? Nothing. Nothing at all. Those that are interested in it will learn it. They would have learned it anyway. Those that are not will not. They will somehow squeeze by, just like i did in French and BA, with rote learning, memorizing patterns, learning to the test, cribbing from those that do understand that shit and if everything fails cheating. They will eventually get a "passing" grade and immediately forget everything they learned about it, and with a hint of (bad) luck loathe it enough that you couldn't pay them to ever touch anything resembling coding again.
Why does everyone think that forcing kids to learn something means anything? Think back to your school days. There certainly were some subjects you had exactly zero interest in. Well? What did forcing you to learn that shit accomplish? Do you remember anything, and if, enough to actually go into a profession that requires you to know anything about it?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Equality != equal numbers.
I am absolutely with you if you want to give everyone, independent of their race, gender, upbringing, social situation, financial situation or any other inequality you could find, literally EVERYONE the same chance to learn a subject. I want everyone to have absolute equal chance to learn, to study, to master a field and to apply for a job. And I want to see people who reject students or applicants based on race, gender... ANY kind of reason. EXCEPT professional qualification.
But, and this is the caveat here, at the same time I do now want to see anyone being accepted based on race, gender... or any kind of reason EXCEPT professional qualification! I want a person that wishes to work with or for me to be the best person for this job. As far as I am concerned this can be a green-yellow fifth-gender (turned eigth-gender) polka dotted alien from planet Zrbit. I care for the qualification of an applicant. Not his/her/their/insertpronounhere race, gender, upbringing, selfidentification or whatever else is a way to pigeon-hole people today.
TL;DR variant: Equal opportunity for everyone - yes. Quotas - no.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Cobol is a great programming language if you prefer writing sermons instead of code.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Yeah, yer right, learning in school is just for getting precisely the right things you'll need for your eventual job. How closed minded can you possibly be? First, you won't just have one job, you'll have several...if you are lucky. Being so single dimensional mean that when your chosen career path finds it way into the sewer, you'll be following it there.
I started out wanting to an electrical engineer because it sounded good. That lasted a year and a half and found myself in business because it seemed like I could not fail at that. I then found computer science, graduated, and went to work at a controls company in the machine tool industry doing flying cutoffs, feed-to-stops, even did a toilet paper winder, that was weird. Machine controls are mostly engineering, very little computer science in there, and I loved it...until I got bored and went back to school for an MS in CS. Got that but then saw they had these PhDs, so I decided I wanted that. In the meantime, I parlayed by engineering and CS into being self-employed which was convenient because then my CS dept. couldn't threaten me with loss of financial aid. Eventually, I found my way to a philosophy dept. and became a logician with a strong math background. Now I use logic, math, CS, and engineering for research in high assurance FPGAs.
The funny part is, I never felt like I chose anything. Every move was because I was thrown into the deep end and had to learn in order to kick the can down the road. And I could do it because I had a solid educational foundation that taught me how to think for myself in a new area. You, on the other hand, will fall flat on your face with your attitude.
"If you don't specialize, you're finished."
Respectfully disagree -- I'm of the opinion that IT and software generalists are going to be the only people companies will actually keep on full-time once the latest wave plays out:
- The cloud, SDN and SDStorage are forcing a lot of the infrastructure specialist jobs up a few levels. For companies that actually do have hardware on site, it's going to be increasingly software-defined and virtual, so there will be less specialization needed. All the CCNPs and EMC storage gods who've built a career around knowing absolutely everything about a hardware ecosystem are in for a big change.
- Frameworks and other "coding crutches" including SaaS and PaaS cloud services are making it much easier for low-skilled developers to cobble together something that works. Couple that with the "planet scale" of the cloud (uh huh, sure...) and code that just works is going to be preferable to code that's super-efficient. (Embedded/IoT stuff is the exception here.)
- If you do specialize, expect to live a nomadic lifestyle, moving from contract to contract every 3-6 months. I can't tell you how many emails I get from recruiters desperately trying to find a contractor with an exotic skill set to work all over the country. This is fine as long as you're single and can live out of a suitcase for years on end - I know tons of nomad consultants who make multiples of what I make in this lifestyle.
If you want to remain an on-shore FTE for a company, you're going to need to know a little about everything, constantly learn new stuff that's a rehash of old stuff, and be flexible. I have a feeling the days of a single-product specialist in IT are coming to a close. I understand that large companies pigeon-hole IT positions, but you want to avoid that as much as possible. Look at how many Exchange gurus have been replace by Office 365. Or how many data center positions have been reduced by companies moving to IaaS solutions. Just the other day, I talked to an old colleague who knows so much about System Center Config Manager that he might have written parts of it. He's one of the nomads I'm talking about, making good money, but even he's saying how companies aren't willing to hire people for more than a few months now even if they're geniuses.
Ok. Different angle. Think of a subject at school that you had no interest in. Now imagine you could only land a job where this subject exactly is what you need. Do you think you could pull it off with what you "learned" at school? Or didn't you really learn anything at all about it and just did what you had to do to get a passing grade and forget everything about it as fast as you possibly can?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
All the 'general' things you listed don't sound like something that a company would pay top dollar for, though. In fact they sound like things specifically targeted at 'cheaper' workers. So maybe you can pass as a generalist, but you won't be making an awesome living off of it.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Think back to your school days. There certainly were some subjects you had exactly zero interest in. Well? What did forcing you to learn that shit accomplish?
In fact, there are many many things in school that kids don't want to learn but are nevertheless valuable for them to have learned.
Do you remember anything, and if, enough to actually go into a profession that requires you to know anything about it?
That's your flaw right there. Coding is a knowledge set that has some value to know even if you don't go into a profession that requires coding. It teaches a way of logically understanding how a problem is broken down into a process, and how processes run. (And it also gives students some familiarity with what's inside the stuff that they will interact with every day of their lives, so that they understand it's code, it's not some sort of magic.)
Education is not simply job training.
http://www.geoffreylandis.com
Ok. Different angle. Think of a subject at school that you had no interest in. Now imagine you could only land a job where this subject exactly is what you need. Do you think you could pull it off with what you "learned" at school?
Well every one likes to tell me how math is absolutely critical to being a programmer and you can't survive in the field without it. Yet I dropped out of high school primarily because I suck at math and I've now been a programmer for 20 years. I'm a programmer that can choose my jobs too.
Hell, I even spent 5 years building a metrics system that ended up being the catalyst for turning that company around (they accepted all the absurd excuses from the developers/admins until we were able to present them with actual facts that showed the product was a POS).
The key isn't to know it all (which is what I hated about school as it was all memory based), it's to know where to find what you need when you need it.
In 20 years I've barely needed to know more than basic math and in the rare cases that I did, the equations were given as part of the requirements. I'll never create the next great algorithm, but so what? I couldn't care less about big O and the like as it is irrelevant to the type of work that I do and the work I do is what I enjoy and make a damn good living doing.
Then go home and wonder what your country is doing to put talented women off pursuing a career in technology.
Giving them opportunities in other areas that decrease the pool of applicants the few specific segments that women thrive in if other avenues are closed to them? That's how it has mostly worked historically practically everywhere.
Ezekiel 23:20
Do not fear.
Programming is still a skill set that requires the fitting mindset. You have to want to program to do it right. And nobody has any use for people doing it wrong. Not today, and even less so in the future when "it compiles, ship is" is no longer going to cut it due to competition.
Umm... Have you seen the world we work in today?
There was a time decades ago where quality actually meant something time be damned. Now it's not what you produce, but how fast you do it. "You can fix it in the next rev" is the mantra of management these days (of course new stuff always takes precedence over the backlog...).
The programming field has also long been full of developers that don't have the "fitting mindset". That happened in the boom leading up to the turn of the century. Everyone saw "easy" money and jumped into it even though they have no passion for it. These are the "everyday" programmers that can turn detailed requirements into code, but they can't go off script at all or recognize when there is a problem with the requirements. They are the ones that just code the answer to the problem with no interest in if the question is correct or how it will change over time. They are the reasons the good programmers have mountains of unmaintainable code that we have to figure out how to maintain.
If you've had a successful career in CS, then chances are you're probably decent at math and it's possible you just had bad teachers. But if you pay attention to what you do and how much of it is manipulating numbers, and realize that math is the study of manipulating numbers, then you start to realize how important math is to your every day life.
Yes, it's true that very rarely do I ever have to pull out calc (it does happen, but not frequently) to do my job, but algebra is used daily and trig comes up probably monthly. And you may not think "x/2 = 5, solve for x" doesn't really count as math, but I've tutored introduction to algebra to people in their 20s and 30s, and for the life of them, they couldn't understand it.
Many areas of CS require very little math. You need math for 3D graphics, and physical process simulation, but
many, many people work in business process programming, embedded device programming, etc. that require very little.
Many programmers spend their entire career without using calculus, trig, or linear algebra even a single time.
I have heard that "you need advanced math to understand big-O", but that is nonsense. Big-O requires addition, multiplication, exponentiation, and logarithms. Kids learn all of those by 5th grade.
You needn't care about big O. Unless you deal with large databases. Everything else you can simply throw more CPU power at.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
In fact, there are many many things in school that kids don't want to learn but are nevertheless valuable for them to have learned.
What? How to bullshit the teacher into letting you off the hook even though you're lazy? You can learn that in the military too.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
--Your local liquor store.
I've supported employee developed "solutions".
Mod me down with all of your hatred and your journey towards the dark side will be complete!
If you've had a successful career in CS, then chances are you're probably decent at math and it's possible you just had bad teachers.
You got me. You know more about what I do on a daily basis than I do...
but I've tutored introduction to algebra to people in their 20s and 30s, and for the life of them, they couldn't understand it.
And I am one of those people. Can't do it. Just doesn't make any sense. Even basic math that requires more than fingers and toes requires effort for me.
I'm glad math is so easy for you, but it's not for me. Yet I still excel at my job just fine.
Most of them soluble in alcohol?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
There was a time decades ago where quality actually meant something time be damned.
No there wasn't. There is zero evidence that code quality was better decades ago.
My reference to quality was about the overall product, not the code building it. And yes my "time be damned" was a bit hyperbolic, but it was much more true than it is now.
I've watched it change through my 20 years. Used to plans and release cycles were long enough that if a major architecture change was needed, you could work it into the schedule. It also gave time to put actual thought and planning into how the new features would interact together. It certainly wasn't a a nirvana of perfect code or products, but it had some significant advantages over what we have today.
Now we push this asinine "Agile" idea where we should release changes on a near constant basis (or at least that's what management believes it is about). The promise is that we can quickly change directions or even throw it all away and start over. The reality, however, is that poorly thought out (due to being in a rush to "market") architectural decisions made in the beginning to support the original idea turn into a nightmare a year down the road when you are continuing to tack on the new ideas that were never considered. Not to mention that all along to that point the "we really need to fix/change this" stuff that makes up Tech Debt gets ignored and left out. Finally somewhere between 1 and 2 years you get to the point where every new feature just becomes a hack and the whole system needs to be scrapped and rewritten, but as that can't be done in a couple of sprints it just keeps getting kicked down the road.
I'm sure there are the exceptions out there that don't work that way, but that's the reality for the vast majority of companies that have made it passed the startup phase of life.
It used to be that code could be written and then you'd get a call 5-10 years later and your response is "holy shit! That process is still running??" because it just did it's job quietly and accurately. I think my personal record was 11 years for some PL/1 code on Stratus.
Today that doesn't happen very often. It's true that part of that comes down to complexity and dependencies, but the key part is the lack of foresight in designs and requirements these days. I often get chided by my managers about over engineering, but when it gets to Prod my stuff just works with minimal support. They like that part.
You don't to need take advanced math courses to understand ordering and pigeonholing, nor were those things taught in any math class that I took.
Instead, math classes focus on teaching things like how to integrate the cosecant of the reciprocal of X cubed. Probability that will be useful in your professional life as a coder: 0%.
Back in the 1980s and 1990s it was more or less normal to have programming lesions in school. It was only in the 1990s when companies shipped computers without BASIC Interpreters, and marketing claimed that you could productively use computers without being able to program. Learning how to use Office 95 was enough.
Now they complain about the lost generation of people having been trained only to be dumb consumers.