
Learning to code as a 30-year-old kid with Apple’s Swift Playgrounds - shawndumas
http://arstechnica.com/apple/2016/07/hands-on-with-swift-playgrounds-apples-attempt-to-get-kids-to-code/
======
emmiechang
We play tested this with 10 year olds at the San Francisco Public Library
recently and the kids LOVED it -- keep in mind, these were not middle or upper
middle class privileged kids, but lower income at risk ones.

The challenge is that after about 45 min of "play" time, they want to 'build'
something and create--and Playgrounds doesn't provide the environment to do
that. Then, they get bored and feel encumbered.

After working with over 1000 kids in our beta phase, we've tested almost every
product on the market.

I personally like Scratch + Learntomod.com which uses Minecraft to teach
Javascript and CodeCombat.com (My YC batchmates).

We're soon launching an online course (for a nominal fee) that has
progression, milestones, and support for parents who want their kids to
'complete' a project. Message me or check out our beta site if you're
interested to in being a beta tester for our online product--would love to
hear from you.

~~~
thoughtsimple
I think you need to dig deeper into Swift Playgrounds. The iPad user can
definitely start their own playground outside of the preprogrammed ones
provided by Apple.

In addition, you as a developer can create additional playgrounds in Xcode and
transfer them to Swift Playgrounds on the iPad. That means you can give the
kids a basic template and allow them to fill in the code. For example, create
a template with a couple of pages with the imports already complete and a
basic template of empty procedures to get them started.

~~~
janekm
And from watching the WWDC session it seems the playgrounds can have access to
the whole iOS SDK, including rather fun stuff like corebluetooth so there is a
huge amount of potential in Playgrounds.

------
cwisecarver
I've been using it since the day the beta came out. I've been an Apple fan for
a long time but I think this might be the best thing they've ever done.

It makes programming approachable to nearly anyone on a device that's
approachable to anyone that can afford it.

I heard someone on one of the TWiT podcasts talking last week about teaching
their 6 and 8 year old to program using it and that they were talking about
creating real-life functions to do household tasks IIRC.

------
cs2818
I must admit I initially thought the idea of this app was a bit silly, but
after giving it a try yesterday I believe it is some of the best software
developed by Apple in recent years.

I ended up working through about half of the first Learn to Code module and
had a great time even as an experienced programmer. Hopefully those new to
coding will also find it to be an enjoyable experience.

------
madcow2011
I've been looking for something similar to this for my 12-year old son. Are
there any other resources you guys can recommend to help teach coding? (that
aren't Apple-product dependent?)

~~~
mikestew
You've been looking for something similar, discovered that this "something
similar" exists, yet the Apple logo puts you off? A used iPad that can run
this is probably a couple hundred dollars.

Now, perhaps I've misinterpreted your question, and you'd just like a list of
alternatives to keep your options open. I've not looked _really_ hard, not
having any kids and all, but there seems to be a dearth of options that meet
the (IMO) high bar Playgrounds has set. Me, I wonder if the 2nd-best
alternative isn't an old machine with QBasic on it. I just don't see anything
else out there that doesn't start with "Step 1: Let's learn about dependency
trees!"

~~~
atom-morgan
Maybe they want to use existing hardware?

~~~
Zyst
Why is parent getting down voted, not wanting to spend a couple hundred bucks,
specially outside of the US where a couple hundred bucks can be what you make
in a month, is a perfectly valid reason.

~~~
mikestew
Well, I obviously didn't down vote it. But if that were a consideration it
should have been mentioned, along with what that existing hardware is. Hence
my question, because as-worded the motivation comes across as just an allergy
to Apple logos.

~~~
untog
No it doesn't. It simply asks for something that will work on a platform other
than those owned by Apple. It's an entirely reasonable request, and I'm
baffled that people on a web site called "Hacker News" are suggesting
otherwise.

------
greggman
Swift Playgrounds looks great but I'm surprised no one has mentioned the
frustration that Apple is shipping something on iPad that other developers
have been banned from making since iPad shipped

From the Swift Playground website:

> Send your code to a friend’s iPad using Mail, Messages, or AirDrop

No other apps are allowed to do this because of the iOS Terms of Service
restrictions

~~~
steve_taylor
Codea has been around for a few years now. It lets you code iPad apps on the
iPad using Lua. You can even export the project to Xcode so you can eventually
deploy your creations to the App Store. And this is certainly not the only
iOS-based coding environment. It looks like Apple has knowingly made an
exception for this use case because it's not the type of thing they had set
out to prevent with their rules around loadable code. Apps like Codea bring a
lot of value to the platform.

[http://twolivesleft.com/Codea/](http://twolivesleft.com/Codea/)

~~~
greggman
The terms of service only disallow downloading code. As long as codea only
allows copying and pasting code it's not breaking any terms

You can see this is how they handled it

[https://bitbucket.org/TwoLivesLeft/core/wiki/CopyingCode](https://bitbucket.org/TwoLivesLeft/core/wiki/CopyingCode)

Swift Playground doesn't seem to have that limit which arguably makes Swift
Playground a whole lot better and arguably anti-competitive

------
binarysolo
Aww, this is basically a really slick version of Stanford's 1st CS106A (intro
CS) assignment, Karel the Robot!

(After some googling, apparently it goes way back:
[https://en.wikipedia.org/wiki/Karel_(programming_language)](https://en.wikipedia.org/wiki/Karel_\(programming_language\))
)

------
liveshops_
I've been hobby-trying to learn swift on Udemy for a few months. I'm going to
try this out. (I'm 35!).

------
eggy
It seems nice and polished like most Apple products. I'll try it out more, and
then with my baby girl when she's a bit older. Apple needed to start
addressing the software end a bit more.

For me, I guess having started in 1979 with a Commodore PET and basic and
assembly, it doesn't have the appeal. I tried Kotlin a year ago, and Swift
looks identical to it to me. I believe in the gamification concept, I just
think it is from an adult's view on what they think a child likes, which I
guess is inescapable unless you do constant targeting studies and updates. In
the end, have children design what children like with an adult's skills at
hand to realize it.

I use Codea, Pythonista and now Continous (.NET/F#/C# on an iPad Pro) [1]. I
can write add-ons and actions for my iPad apps in Pythonista (Editorial and
others) to extend them. I am a polyglot and Scratch is not something I would
use to teach my kids, not for any enumerable reasons other than I tried, and
it didn't appeal to my kids after the first animation demo program. I know it
has been somewhat popular. My older teenage children fared better with
Processing, Racket, Minecraft, Arduino and plain Python.

One that has caught my attention, and I will show my youngest child is NetLogo
[2]. It is a modeling environment for researchers, business people, and well,
basically adults, but it is self-contained, comes with tons of examples, and
will be valuable in the future in learning modeling. It's a lot of fun too!

NetLogo's three-tabbed unified interface has the GUI simulation up front, an
Info/Documentation page second, and a Code tab. The Code is a variation of
Logo. Short programs, and easy syntax with immediate gratification of watching
your simulation run. Now just some more kid-friendly examples, and you're off
to the races and a PhD in the Mathematical Sciences and Modeling!

[1] [http://praeclarum.org/post/147003028753/continuous-c-and-
f-i...](http://praeclarum.org/post/147003028753/continuous-c-and-f-ide-for-
the-ipad) [2]
[https://ccl.northwestern.edu/netlogo/](https://ccl.northwestern.edu/netlogo/)

------
mobiuscog
I was really looking forward to letting my daughter (and wife, who was
interested) in using this.

Then I realised it won't work on their iPad (4th Gen with Retina) - which runs
everything fine, and there's no need to uprade it.

So there we go - they won't be using this.

------
spraak
I am not (yet) familiar with this app, but I do like to suggest to any new
(young or old) programmers to give Racket along with the book 'Realm of
Racket' a try. It's a simple enough programming language to get a good
foundation with important principles, but also can take you nearly as far as
you want.

Edit: For those who downvoted my comment here, I'd really be curious to know
why.

~~~
Watabou
Maybe I'm wrong, but I don't think starting out with parenthesis based
programming language is the best starting point for new programmers. You'll
probably just scare them. I'm saying this with my huge love for Scheme. Of
course, if you're already programming and want to learn/try something
different, Haskell or Racket, or any other functional language is a great
option.

What makes Swift Playground so compelling is that it seems to be specifically
tailored towards new programmers, with the way it teaches -- it provides basic
information about Swift, and does not overload information at the reader at
once. And even existing programmers can make use of it because it's just a
Swift playground (part of Xcode) underneath.

I think Swift Playground is genuinely fun as you can manipulate an object on
an iPad. It's pretty much like playing a game in that sense. That's something
you just can't get out of reading a book. It makes it that much more
approachable.

If you show kids or even new programmers Swift Playgrounds along with
something like Learn You a Haskell or Realm of Racket, or even tell them about
Scratch, which do you think they would gravitate towards more?

~~~
spraak
Hm, again I haven't tried it - I don't have an iOS device that can run it -
does it actually use Swift syntax? This is only anecdotal (anecdata) but both
my friend and partner (both 27) are learning to program for the first time
using Racket, who both barely know what a 'web browser' is and they're both
finding it really easy to pick up, and even have started 'thinking in lists'.
It also was my first programming language..

But anyways, I'm excited to give this app a try - I'm always glad to see more
tools to help people get started.

~~~
Watabou
I wasn't really directing all of what I said to you, but just commenting about
Playgrounds versus other resources in general.

And yes, it uses real Swift syntax which is its main goal, according to the
"Platforms State of the Union"[1] talk at WWDC this year.

[1]:
[https://developer.apple.com/videos/play/wwdc2016/102/](https://developer.apple.com/videos/play/wwdc2016/102/)

~~~
spraak
Very cool, thanks for explaining :)

------
toodlebunions
Wish it were a bit more like HyperCard in its scope.

------
ontouchstart
I did a quick test on my iPad after I read this. I am posting my experience on
twitter.

[https://twitter.com/ontouchstart/status/753709980239466497](https://twitter.com/ontouchstart/status/753709980239466497)

~~~
zouhair
Please no more vertical videos.[0]

[0]:
[https://www.youtube.com/watch?v=Bt9zSfinwFA](https://www.youtube.com/watch?v=Bt9zSfinwFA)

~~~
ontouchstart
Yes, I learned that after the first video. :-)

(The second one is a trim from the same original.)

------
nixen
This looks cool... I wish there were a macOS/OSX version, don't have an ipad,
have a couple macbooks (and hackintosh) though.

------
denfromufa
Does swift work on androids, windows, chromebooks, RPi, consoles? What is the
cheapest iOS device that would support swift for kids?

------
naveen99
Looks a lot like lightbot. Better, but would have been nice if they gave some
credit to lightbot.

iPad swit playground preview video :
[http://www.apple.com/swift/playgrounds/](http://www.apple.com/swift/playgrounds/)

Lightbot: [https://lightbot.com/](https://lightbot.com/)

~~~
naveen99
Edit parent: i guess there are other older tools as well, following the
reference to karel by binarysolo :

[https://codehs.com/](https://codehs.com/)

[https://en.wikipedia.org/wiki/Guido_van_Rob](https://en.wikipedia.org/wiki/Guido_van_Rob)

[https://en.wikipedia.org/wiki/AgentSheets](https://en.wikipedia.org/wiki/AgentSheets)

------
lowken10
I can't wait to teach my eight-year-old how to code using Swift Playgrounds...

