Apple’s gotten into the game of teaching kids how to program. Last week at WWDC, the company announced Swift Playgrounds, along with the intention to teach programming classes at its Apple retail stores for free. And I’m here to tell you this is a terrible approach, a bad idea, and generally little more than a marketing plan.
First, let’s get this out of the way: Yes, the classes are free, but they require the use of a US$600 tablet. Your kids can learn about Swift inside the doors of an Apple store, but what happens when they get home? If your answer is, “Well, they already have iPads at home,” then I say to you, Apple has solved no problems by teaching them how to program.
(Related: Apple makes a coding camp for kids)
That’s because the problem in the United States and elsewhere is not that there isn’t enough computer science education. The problem is that computer science education is obscenely expensive and unevenly distributed.
Want your kids to attend an elite programming boot camp for one week in Silicon Valley, where they’ll learn Python, C and other serious programming languages? Better be ready to fork over at least $1,000 per kid per week. And remember to get them a laptop too, as they need one to do the homework.
Apple’s Swift Playgrounds is, frankly, a terrible way to teach kids how to code. It’s teaching a little-known language that is only useful on one platform, and the Playgrounds undeniably favor drag-and-drop programming. And even if a kid does graduate and learn how to use Swift fully, they’re then tied into Apple’s platform (until Swift gets a decent port to Windows or Android).
A developer tied to Apple’s platforms is a developer designed for pain down the road. If you know anything about how Apple treats its developers, you know that they’re fond of depreciation, walled gardens, and a singular path to the truth. There’s only one way to make a real iPhone application, and its through Apple’s Xcode and its packages. Using outside frameworks and code environments is a one-way ticket to deprecation town.
At least if Apple were teaching kids Objective-C, it would give them a foundation in C. I don’t think anyone could argue that teaching kids C, even object-oriented C, is a bad thing. It’s like teaching kids Latin to help them in English classes.
Why am I so down on Swift Playgrounds? Because I run a non-profit videogame museum dedicated to teaching kids how to code. We do not focus on the kids who have iPads at home, but rather the kids who don’t have a home computer, don’t have Internet access at home, and don’t even have a smartphone.
We teach these kids MIT Scratch, then Python. Why teach Scratch? Because it was designed from the ground up to teach kids how to program, and to teach them proper programming paradigms. It’s drag-and-drop, but it was designed to be drag-and-drop. And best of all, Scratch is web-based, and kids can share their games on the web once they are complete.
In order to teach Swift Playgrounds to our underprivileged kids, we’d have to spend thousands of dollars to add iPads to our classroom, an expense that makes me physically ill to contemplate. We currently use second-hand laptops donated by Credit Karma, and they will be good enough for this work for 10 years. When they die, we will give them to students to take home. The adults in their lives are unlikely to steal old laptops from their kids for personal use. Not so with iPads.
And that is what it comes down to for my non-profit: We don’t want any excuses for our kids to not come to class. Often, our target kids have semi-irresponsible parents (though just as often, they have amazing, incredibly dedicated parents), and giving those parents any reason to skip class is damaging.
This is why our classes will always be free and will always be first come, first serve, with no online signup sheet. Every time you add a technological hurdle to sign up for a free class, you lose the students you want to teach and replace them with well-off kids who will be learning to code even without your classes.
And so I say to you, as someone who has spent the last five years running classes in STEM skills for underprivileged kids, taught by real professional programmers (not just some random Genius at the Apple store who’s never had a job programming before): There is absolutely no altruism in Apple’s free kids programming classes. They are a sales engagement.
If you want to teach your kids how to program, send them to Code.org. And if you want to change the world, offer a free Python class to your local public school. At least Python programmers can get jobs out there, today.
Or better yet, donate your company’s old computers to a local STEM non-profit.